text:
Prepared by Robert L. Cirillo, Jr., MD of the Department of Radiology, University of Wisconsin Hospitals and Clinics, Madison, WI.
A 64-year-old female presented with a 2-week history of intermittent episodes of abdominal pain and rectal bleeding. Past medical history is remarkable for years of asymptomatic ulcerative colitis. A colonoscopy was performed, followed by a double contrast barium enema (figures 1 and 2).
Filiform polyposis of the colon
Double contrast barium enema showed numerous slender filling defects in the colon, typical of filiform polyposis. Colonoscopy with biopsies revealed multiple inflammatory polyps throughout the colon with normal appearing intervening mucosa. Biopsy also showed mild chronic mucosal inflammation and edema without significant glandular distortion or fibrosis.
Filifform polyposis is a rare sequela of inflammatory bowel disease, especially Crohn's disease and ulcerative colitis. The term was originally described by Appelman et al1 and consisted of a characteristic radiographic appearance of numerous slender, finger-like or filiform defects in the colon with a normal haustral pattern. These mucosal lesions are composed of submucosa covered by normal or minimally inflamed mucosa. The surrounding mucosa may be normal, although acute or chronic inflammatory changes may be present. The filling defects have been described as vermiform, worm-like, spaghetti-like, or as resembling the stalk of a polyp without the head.2 The transverse colon and descending colon are the most common location, although the polyps can be seen in any portion of the large bowel with the exception of the rectum.1,3 There have also been reported cases in the stomach and, rarely, in the small bowel.4 Filiform polyps of the colon may be misinterpreted as unusual villous adenomas or small carcinomas on colonoscopy. It is of particular importance to differentiate the lesion from carcinoma in long-standing ulcerative colitis or familial adenomatous polyposis. However, there is no known association between filiform polyposis and the development of carcinoma.
The pathogenesis of filiform polyposis is uncertain, although it has been speculated that a previous history of inflammatory disease with long periods of quiescence is involved. 1,2 The polyps seem to proliferate between two adjacent inflamed, ulcerated zones. The development of the polyps is comparable to the reparative process and formation of inflammatory pseudopolyps seen in ulcerative colitis. Pseudopolyps of ulcerative colitis consist of islands of inflamed, edematous mucosa and granulation tissue that layers between denuded and ulcerative areas; while filiform polyps consist of a submucosa core with blood vessels and smooth muscle fibers. The submucosa of filiform polyps is elevated and pulled into the formation of a stalk due to the proliferating and regenerative epithelium. Thus, filiform polyps are different from the typical pseudopolyps of ulcerative colitis, since pseudopolyps consist of regenerating mucosa that stands out only because the surrounding mucosa is ulcerated. However, both filiform polyps and pseudopolyps polyps are seen in the quiescent phase of ulcerative colitis and Crohn's disease.
Filiform polyps usually appear as thin, straight filling defects resembling the stalks of polyps without the heads. The polyps can range in size from 1.5 to 3.0 cm in length and up to 0.5 cm in diameter. The projections can occur as solitary polyps or as diffuse polyposis distributed over large areas of the colonic mucosa. In some cases, a radiating or branching pattern can be identified, particularly at the tip of the polyps. 2
These lesions can be confused with unusual villous adenomas, small carcinomas, or mucus threads on barium. The projections can arborize and fuse at their tips and thus form mucosal bridges that can trap fecal material and lead to the formation of a large fecalith, which can cause obstruction. These obstructions have been confused with carcinoma. 5,6 Bleeding can also be encountered in patients with filiform polyposis. If identified, the bleeding is likely to originate from the intervening inflamed mucosa rather than from the polyps themselves, although the polyps do have a rich vascular component. In most cases, when these polyps are identified, there is usually no radiologic evidence of acute colitis and these polyps may be the first due to the presence of inflammatory bowel disease.
Filiform polyposis is a rare form of pseudopolyposis associated with ulcerative colitis, Crohn's disease, and granulomatous disease that is formed by a nonspecific mucosal and submucosal reaction to previous severe inflammation. 1-3 It is important to recognize that filiform polyposis is a benign, radiographically characteristic form of inflammatory polyps that should not be mistaken for a neoplastic familial polyposis syndrome. Filiform polyposis alone is not an indication for surgical resection, but complications, such as acute massive hemorrhage 5 or intestinal obstruction, 6,7 may necessitate surgical intervention.
1. Appelman HD, Threatt BA, Ernst C, et al: Filiform polyposis of the colon: An unusual sequela of ulcerative colitis. Am J Clin Path 62:145-146, 1974. Abstract.
2. Zegel HG, Laufer I: Filiform polyposis. Radiology 127:615-519, 1978.
3. Spark RP: Filiform polyposis of the colon. First report in a case of transmural colitis. Digestive Dis 21:809-814, 1976.
4. Bray JF: Filiform polyposis of the small bowel in Crohn's disease. Gastrointest Radiol 8:155-156, 1983.
5. Renison DM, Forouhar FA, Levine JB, Breiter JR: Filiform polyposis of the colon presenting as massive hemorrhage: An uncommon complication of Crohn's disease. Am J of Gastro 78:413-416, 1983.
6. Antonow DR, Gebhard RL, Dykosld RK, Sumner HW: Filiform polyposis in Crohn's colitis mimicking toxic megacolon. Dig Dis Sci 26:1051-1055, 1981.
7. Goldenberg B, Mori K, Friedman IH, et al: Fused inflammatory polyps simulating carcinoma and ulcerative colitis. Am J Gastroenterol 73:441-444, 1980.


text:
A collection of news and information related to 1st Source Corp. published by this site and its partners.
Top 1st Source Corp. Articles
Displaying items 45-51
Tenant: South Bend's Chase Tower needs city's help
Notre Dame student forced on harrowing robbery ride to ATM
Suspect in Notre Dame student robbery arrested, released
Story | Sep 30, 2011 | 2:06 PMSOUTH BEND — A man accused of robbing a University of Notre Dame senior and forcing him to drive to an ATM to take out money was booked into the St. Joseph County Jail Thursday but released today. The suspect was released after the St. Joseph... -
Bank customers promise to bolt in wake of fees
Man holding wad of cash takes ride from South Bend woman
Story | Oct 6, 2011 | 1:40 PMSOUTH BEND — A 57-year-old South Bend woman told police she was "very shaken" after a man reportedly forced his way into her car last week and asked to be driven to a location on the city's west side. The incident last Friday marks the... -
Vigil attendees embrace Mishawaka girl who lost family in crash
Gary man arrested in Michigan City bank robbery

subset: commoncrawl


text:
Search or enter an item number:
Sorry, the option you have selected is out of stock Please see alternativesor let us email you when it's back in stock
Unfortunately this product is not available in the options that you've selected
This product is not available in the options that you've selected
Up to 50% off Service Guarantee – Online Exclusive
We'll fix it, normally within 2 days, or send you a replacement if we can't
Terms and Conditions apply. Service Guarantee Explained
Further information on our service, complaints and claims can be found in the Terms and Conditions
Certain things in the house you simply cannot be without. Look after your new items with our essential Service Guarantee and relax knowing that with just one call:
In addition to this:
Service Guarantee does not include some situations, for example; accidental damage, and any wilful act or neglect. It is not an insurance product. Service Guarantee includes the manufacturer's guarantee period.
Up to 50% off Service Guarantee terms and conditions
This price is available exclusively online. Please note that the Service Guarantee price shown on the product page already includes any online discount. This price is only available online and when you purchase in conjunction with a protected product. Where multiple discounts apply, each discount will be applied consecutively to the reduced price. This offer is available on selected lines only.
Spread the cost further
Choose our lowest weekly price and pay just £ per week for for this item
Interest bearing payment options shown are examples only and will be charged at your applicable interest rate
With our interest free credit you could get this item from just £ per week and never pay more than £.
This means you could get this item from just £ a week interest free. See below..
Get the things you want now and pay nothing for up to 12 months.
With a Littlewoods Account you can spread the cost to suit you. Select from the following payment options at checkout.
Mahogany finish. 3 pyrex glass dishes. Removable dish holders (enables use of own serving dishes). 3 heated shelves. Wrap-round sliding tops. Full length doors. On/Off neon light. Weight: 33kg.


text:
SOUTH ELGIN, ILL. — Members of the third generation in place at Hoffer Plastics Corp. share the passions of their grandfather, Robert A. Hoffer Sr.: strong links to community and employees; and dedication to moving the industry ahead technologically, while honoring its past.
Plastics News' experts discuss trends impacting the recycling of plastic materials analyzing market conditions, opportunities, threats, regulatory activity, and sustainability trends' impact on supply. View analysis of leading recyclers, resin price and production trends, and recycling rates as well as perspectives from industry thought leaders regarding market trends.
Learn moreAccess data on 180 processors, including most recent and previous fiscal year process sales, total corporate sales, number of plants, presses and employees, as well as products manufactured and end markets served.
Learn moreFebruary 23, 2014 - February 26, 2014Plastics News Executive Forum 2014
April 1, 2014 - April 2, 2014Plastics Financial Summit
May 6, 2014 - May 8, 2014Plastics in Medical Devices 2014
September 10, 2014 - September 12, 2014Plastics Caps & Closures 2014
More Events


text:
Park City Utah's Hottest Real Estate Neighborhood
Wednesday, July 31st, 2013Park City Real Estate prices have been trending up for the past year or two now (we here at YouInParkCity.com called the market bottom around February of 2012). Some areas are seeing prices rise much faster than others.
Summer generally sees an increase in sales of the low to middle price point single family homes in Park City and this year has been no exception. Areas with easy access to Salt Lake City as well as local Park City amenities are in the greatest demand.
A few of the areas that we generally see heat up during the summer include Silver Springs, Park Meadows, Trailside Park, and Jeremy Ranch, Pinebrook and Prospector. The first half of the year shows Trailside pricing up by 23%, Park Meadows up by 25%, and Pinebrook up by 15%. The variables of the home sizes and age make the relatively small number of homes sold a year ago have the ability to skew the numbers, so while prices are definitely up, home values have not increased by these amounts.
The Snyder's Mill area of Silver Springs though may actually have seen this type of increase. While the Park City Board of Realtor statistics show only a 7% rise in prices for the Silver Springs area, sales in Snyder's Mill represent one of the hottest neighborhoods in Park City. This year has 4 of the top ten highest sold prices that have ever been paid for a home in the Snyder's Mill subdivision of Park City. Three of the homes have sold recently are the 2nd, 3rd and 4th highest per square foot values that have ever been paid in the Snyder's Mill area. Current pricing and sales are eclipsing the peak pricing from 2007. When the subdivision was originally built in the early 1990's, homes sold for as little as $90/sq ft. Tastefully remodeled homes in Snyder's Mill are now selling for over $300 per square foot.
The combination of a well-kept neighborhood in a central location with easy access to Park City (historic as well as the new area at Kimball Junction) and pricing in the sweet spot of the Park City real estate market ($500K-$800K) make Snyder's Mill one of the hottest real estate neighborhoods in Park City, UT.
For information on buying or selling in Snyder's Mill or any Park City area neighborhood contact a real estate professional with YouInParkCity.com (888)968-4672.


text:
Spend your advertising budget smarter. Your ads where you want them and where they work best. We place your ads where you'll find new customers. Why pay for anything else?
Wouldn't it be great if you could stop spending money on advertising that doesn't work? Wouldn't it be even better if you only had to pay for the advertising placements you want, and only pay exactly what it's worth to you?
That's what we do for you. We pore through hundreds of thousands of advertising opportunities every second to find the exact placements that will reach your target audience. We do this all day, every day, and in real-time. That's smarter advertising.


text:
New Sky Safari Links Four Properties By Plane
Elewana Afrika, a group of luxury camps and lodges in Northern Tanzania, has announced a new way to see all of their four properties during one seven-night adventure. The Sky Safari package uses a private nine-seat luxury Cessna aircraft to fly guests between the properties. The package includes the flights, all accommodations, all meals, all drinks, game drives, bush walks, excursions, private airport transfers and laundry.
Arusha Coffee Lodge, Tarangire Treetops Lodge, The Manor at Ngorongoro and Serengeti Migration Camp are small camps that exist in harmony with their environment: in a coffee plantation in Arusha, adjacent to the Ngorongoro Crater within the 1,500 acre Shangri-La estate, close to the baobab and marula trees of Tarangire and alongside the Grumeti River in Serengeti.
Arusha Coffee Lodge, set on the edge of the town of Arusha, is a boutique style lodge with 30 plantation-style villas. Tarangire Treetops is located within the 85,000-acre Lolkisale Conservation Area, a private reserve bordering Tarangire National Park and guests stay in 20 comfortably furnished tree houses putting them in close proximity to other tree residents, such as owls and bush babies. The Manor at Ngorongoro has 20 cottages with open fireplaces and the main building features fireplace lounges, formal dining room, dining conservatory, bar, private wine cellar, library, home theatre, snooker room, massage room and horse stables. Serengeti Migration Camp has 20 tents overlooking the Grumeti River. Both Tarangire Treetops and Serengeti Migration Camp offer dining in the bush when weather permits. Rack rates for the full-inclusive Elewana Sky Safari start at $6,000 per person.


text:
Not logged in
Log in now
Create an account
Subscribe to LWN
Recent Features
Deadline scheduling: coming soon?
LWN.net Weekly Edition for November 27, 2013
ACPI for ARM?
LWN.net Weekly Edition for November 21, 2013
GNU virtual private Ethernet
Non-nullable pointers may or may not be a good thing. Either way, argument by assertion doesn't add anything to the debate.
If you want to know what Java cleaned up, check out: http://yosefk.com/c++fqa/defective.html
The big mistakes Java's designers made were copying the C++ inheritance model (http://asserttrue.blogspot.com/2009/02/inheritance-as-ant...), relying too much on threads as a concurrency mechanism, and reinventing a lot of wheels in a misguided effort to be platform-independent.
GCC 4.6.0 released
Posted Mar 28, 2011 18:33 UTC (Mon) by daglwn (subscriber, #65432) [Link]
C++ has plenty of warts. No C++ user or designer will tell you otherwise. But the C++ inheritance model is not broken. Java did take out all the good parts of C++. That's why it feels like an incomplete language.
Posted Mar 28, 2011 19:52 UTC (Mon) by cmccabe (guest, #60281) [Link]
What "good parts" of C++ did Java take out?
I seem to be no more knowledgeable after reading your post than before.
Posted Mar 28, 2011 21:10 UTC (Mon) by mpr22 (subscriber, #60784) [Link]
C++'s operator overloading lets me write arithmetic on ordered pairs of numbers in a civilized fashion. The fact that other idiots do strange, idiotic, crack-addled things with it is not, and will never be, sufficient to persuade me that it is not a good and valuable feature which improves the language of which it is a part.
Also, what is this C++ FAQ that Yossi keeps ranting about? I've never read it, it has never occurred to me to look for a C++ FAQ, and I can't imagine why one would look for a C++ FAQ.
Posted Mar 28, 2011 21:11 UTC (Mon) by Trelane (guest, #56877) [Link]
Posted Mar 31, 2011 15:37 UTC (Thu) by mister_m (guest, #72633) [Link]
Posted Mar 28, 2011 21:15 UTC (Mon) by daglwn (subscriber, #65432) [Link]
Multiple inheritance Fully generic templates Operator overloading
Just to name a few.
> If you think Yossi Kreinin "doesn't understand C++," then can you point > out an actual factual error he makes?
Ok, here's one chosen at random:
> Templates are mostly applicable to containers or smart pointers, which > can contain or point to almost anything. When the constraints on the > input are less trivial, most of the time you either don't really need > polymorphism, or you are better off with dynamic polymorphism
This is completely wrong. In fact one often wants to favor static polymorphism over dynamic polymorphism. Of course, one has to understand the tools to make the proper decision.
Posted Mar 28, 2011 21:55 UTC (Mon) by cmccabe (guest, #60281) [Link]
> Multiple inheritance
Java classes can implement multiple Interfaces. This effectively accomplishes the same thing as multiple inheritance without the big problems of MI in C++.
By the way, most experts recommend that you never use C++'s multiple inheritance support (unless you are inheriting from abstract base classes).
> Fully generic templates
Java has generics. They're not implemented quite the same as C++ templates, but they accomplish the same thing.
> Operator overloading
Frankly, I think operator overloading is confusing and ugly. It's a Perl-style "let's save 5 seconds of typing now, but spend 50 minutes scratching our heads a few months later over what this code REALLY does."
> > Templates are mostly applicable to containers or smart pointers, which > > can contain or point to almost anything. When the constraints on the > > input are less trivial, most of the time you either don't really need > > polymorphism, or you are better off with dynamic polymorphism > This is completely wrong. In fact one often wants to favor static > polymorphism over dynamic polymorphism. Of course, one has to > understand the tools to make the proper decision.
I am looking at some C++ code right now. I can tell you that 90% of the uses of templates are STL containers and smart pointers! I don't know what your definition of "mostly" is, but 90% meets my definition.
Let's take the next sentence. "Most of the time you are better off with dynamic polymorphism." I think if you look at most C++ programs, you would see more use of classes and virtual functions (dynamic polymorphism) than templates (static polymorphism). So this sentence seems to be true as well.
I think your brain translated what Yossi said into "templates suck, don't use them." But that's really not what he said at all. He just said other methods are, and should be, used more often than templates. Templates have their place. I've said this before and I'll say it again-- templates are really the only improvement C++ made over C.
Posted Mar 29, 2011 1:05 UTC (Tue) by mtall12 (guest, #73924) [Link]
Sorry, that's a non-argument. Using the same logic I could say that using the "traditional" function call of foo(a,b) is confusing and ugly, because I'll need to spend 50 minutes deciphering what foo() does.
Operator overloading is a very useful shorthand for function calls that can make the code far more readable and hence easier to maintain (translation: less bugs). This is especially true when writing scientific applications (though certainly not limited to them). With a decent matrix library (eg. Armadillo or ITPP), C++ allows things like:
Let's also not forget that through C++ templates one can implement expression optimization, where operations like (0.1*B + C) can be turned into one loop, thereby providing execution speeds generally not doable in Java (ie. without specialized functions).
Posted Mar 29, 2011 1:11 UTC (Tue) by HelloWorld (subscriber, #56129) [Link]
> By the way, most experts recommend that you never use C++'s multiple inheritance support I just recommend reading this: http://www.parashift.com/c++-faq-lite/multiple-inheritanc...
> Java has generics. They're not implemented quite the same as C++ templates, but they accomplish the same thing. Except that they don't, as the introduction of generics broke the casting operator. You can cast something to ArrayList<Foo>, and even if that succeeds, what is returned from its get method may not be a Foo. This kind of fuckup is typical for Java.
> Frankly, I think operator overloading is confusing and ugly. It's a Perl-style "let's save 5 seconds of typing now, but spend 50 minutes scratching our heads a few months later over what this code REALLY does." In all languages with operator overloading I know of, applying an overloaded operator is nothing else than a simple function or method call. If this actually makes you scratch your head 50 minutes, you just shouldn't be programming at all.
Posted Apr 3, 2011 22:34 UTC (Sun) by cmccabe (guest, #60281) [Link]
Java's generics do have a lot of weird corner cases. Things that, as a C++ coder, I would expect to succeed, do not. One example is trying to make a copy of an arbitrary type T using a copy constructor.
Java's generics are flawed. Java itself is flawed. But then, so are many other languages.
> What "big problems" are you talking about? I suspect these "problems" are > merely something that is being made up by Java fanboys in order to defend > their emasculated language, because I've never seen an actual problem that > is fixed with Java's interface approach.
Honestly, I am just going to stop commenting or offering advice on programming languages at all. Even the most simple and basic advice always seems to touch off a flamewar.
Recently I advised someone to stop throwing raw "int"s as exceptions. Result: 15 minute discussion about maintainability, code clarity, stuff experts said, the difficulty of adding all the catch blocks you need to client code, etc. At the end of it: "well, I'm going to keep doing it anyway." Luckily I will never have to maintain, or even see, that code because it's closed source and I don't work at that organization.
Posted Apr 4, 2011 19:10 UTC (Mon) by daglwn (subscriber, #65432) [Link]
That's a problem for a very specific case and even then it's not always a problem. It's more something to be aware of. It does not invalidate the utility of multiple inheritance. The mixin pattern is a primary example of how useful MI can be. It use it all the time.
> Honestly, I am just going to stop commenting or offering advice on > programming languages at all.
Advice is fine as long as it is relevant to the task at hand. General advice should not be used as a weapon or stocks.
Posted Apr 5, 2011 10:47 UTC (Tue) by HelloWorld (subscriber, #56129) [Link]
Posted Apr 5, 2011 20:38 UTC (Tue) by cmccabe (guest, #60281) [Link]
There are a lot of reasons for this. The first and most obvious reason is that it makes unit testing a lot easier. If I have a class which inherits from 3 other classes, I can't test that class without also testing the three base classes. I may not even be able to construct an instance of that class without providing a lot of irrelevant inputs-- file descriptors to open, memory to allocate, and so forth. On the other hand, it's easy to create an instance of a component and test just that component.
You can get around some of these problems by constructing "mock ups" of some of your class components. You see this a lot in Java code. But it's difficult, and even when executed successfully, it bloats the code.
Creating elaborate and deep inheritance hierarchies increases compile time and the coupling between components. The former chews up machine cycles when compiling (at least if you're using C++). The latter chews up human time when trying to maintain the code, no matter what language you're using.
This is related to the "midlayer mistake" that Neil Brown talked about earlier: http://lwn.net/Articles/336262/
Posted Apr 5, 2011 22:43 UTC (Tue) by HelloWorld (subscriber, #56129) [Link]
Posted Apr 5, 2011 23:24 UTC (Tue) by cmccabe (guest, #60281) [Link]
So Java interface classes and C++ abstract base classes are ok in my book. Mixins are bad, in my opinion.
I do like the way Golang handles runtime polymorphism more than the way C++ or Java do it, but you can only do it that way if you're using Go. :)
Posted Apr 7, 2011 16:42 UTC (Thu) by daglwn (subscriber, #65432) [Link]
In more concrete terms, an add expression is a binary operator. So is a subtract expression. Both are also associative, but only one is commutative. That's a useful thing to express in class hierarchies and using mixins is a great way to do it.
Posted Apr 8, 2011 17:57 UTC (Fri) by cmccabe (guest, #60281) [Link]
> In object-oriented programming languages, a mixin is a class that provides > a certain functionality to be inherited by a subclass, while not meant for > instantiation (the generation of objects of that class). Inheriting from a > mixin is not a form of specialization but is rather a means of collecting > functionality.
So it's not about relationships between types. It is about code reuse.
Bruce Eckel suggests a way of implementing mixins in C++ using templates:
I would suggest yet another: private inheritance.
Posted Apr 8, 2011 18:35 UTC (Fri) by daglwn (subscriber, #65432) [Link]
But in any case, I think the discussion leads us to a place where general MI is useful, even with the pitfalls. Pointers in C have a similar usefulness/pitfall tradeoff. I like the fact the C++ is flexible like this. I wish it were more flexible than it is! :)
Posted Apr 11, 2011 0:30 UTC (Mon) by cmccabe (guest, #60281) [Link]
Anyway, language design is an endless process. It really comes down to who what languages are most successful in the marketplace, and in the open source world. My philosophy is to use the right tool for the job.
Posted Mar 29, 2011 10:54 UTC (Tue) by jwakely (subscriber, #60262) [Link]
What about non-abstract empty bases? Should they never be used with MI?
What about std::ctype, std::codecvt, std::time_get and other facets?
What about std::iostream?
I guess I'll "never" be an "expert"
Posted Apr 2, 2011 0:10 UTC (Sat) by cmccabe (guest, #60281) [Link]
That's what I just said.
> What about std::iostream?
from a footnote in "Thinking in C++" by Eckel:
> Jerry Schwarz, the author of iostreams, has remarked to both of us on > separate occasions that if he had it to do over again, he would probably > remove MI from the design of iostreams and use multiple stream buffers and > conversion operators instead
> I guess I'll "never" be an "expert"
Try reading Effective C++, More Effective C++, and anything by Alexandrescu. Or you can go renegade and read the C++ FQA. No matter whether you agree with Yossi, you will learn a lot.
Posted Mar 29, 2011 15:47 UTC (Tue) by k8to (subscriber, #15413) [Link]
There is a very *deep* grasp of the language there, by someone who has had to implement aspects of it in production systems for many many years. You may not agree with the assessment, but to claim a lack of understanding only makes you look a fool.
Posted Mar 29, 2011 16:20 UTC (Tue) by mpr22 (subscriber, #60784) [Link]
Posted Mar 28, 2011 20:43 UTC (Mon) by HelloWorld (subscriber, #56129) [Link]
Primitive types are only a "problem" if you're the kind of person who alphabetizes his sock drawer.
Actually, Javas primitive types led to numerous problems. It made wrapper classes necessary, which in turn made autoboxing necessary as it's a PITA to use otherwise. And autoboxing leads to subtle bugs for example in conjunction with the :? operator. You also still can't say ArrayList<int>, making Java harder to teach and learn than necessary.
And there's another more subtle problem. Primitive types were introduced because using a heap-allocated object for every int variable seemed too costly at the time. But if you think about it, allocating ints on the heap wouldn't have been necessary. The Integer class is immutable, and if something is immutable, it doesn't matter if you pass it by value or by reference, so they could have made it so that integers are passed around by value instead of references to heap-allocated integers. The only reason that doesn't fly is that Integer is nullable while int is not. So, if the Java designers had thought properly about whether primitive types were really needed, they may have figured out that nullable values are a dumb idea.
Oh, and let's not mention the fact that Java still doesn't allow operator overloading (except for, somewhat bizarrely, the String class).
Perhaps most important of all, primitive types show that the Java designers just had no taste. Dijkstra was right when he said that elegance is not a dispensable luxury, but the Java designers clearly didn't grok that.
Non-nullable pointers may or may not be a good thing.
Posted Mar 28, 2011 22:41 UTC (Mon) by cmccabe (guest, #60281) [Link]
Google Go has primitive types. However, you can add methods to them exactly the same way that you can add methods to structures. So you can do:
type foo []int
func (f foo) DoSomething();
The fact that Java needs wrapper classes for this, and for other things, is a design limitation of Java, not of primitives themselves. It comes directly out of the inheritance-based design.
As far as "Java autoboxing" goes, I have always hated it. Hated it when they added it to the language, still hate it now. When the compiler starts implicitly generating functions for you like that, it's time to get out the barf bag.
> Nullable pointers are obviously a bad thing, as their effect of making > something optional can be trivially obtained without a special language > feature
Having a bool type is "obviously a bad thing," as you can obtain the same effect with ints. Oh wait, that argument is bogus.
This is just more "argument by assertion" on your part. I find NULL, or nil, or None, or whatever you call it, to be useful more often than it is not. And when I don't have it, I usually have to create some kind of special class value to represent "zero" which is usually just an annoyance.
The real WTF in Java is the lack of unsigned types, based no doubt on an argument similar to yours: it's "obviously a bad thing" to have uint32_t, because you can just use int64_t if you need 32 bits. Except for a little thing called efficiency, and who needs that?
RE: nullable pointers
Posted Mar 28, 2011 23:56 UTC (Mon) by nybble41 (subscriber, #55106) [Link]
Posted Mar 29, 2011 23:32 UTC (Tue) by neilbrown (subscriber, #359) [Link]
I can see some value in allowing a pointer to be declared non-nullable - a bit like 'const' in C, it might catch a few errors and it explicitly documents an intention so there could be is value (though I tend to find 'const' more annoying than helpful).
But when you really want a nullable pointer, as you do in a linked list or any tree data structure, arbitrarily not allowing one seems pointless.
Or am I misunderstanding something?
Posted Mar 31, 2011 3:46 UTC (Thu) by deweerdt (subscriber, #18159) [Link]
Posted Mar 31, 2011 10:48 UTC (Thu) by neilbrown (subscriber, #359) [Link]
If I understand the argument correctly, it goes like this:
1/ A null pointer is a known address that doesn't actually point to an object of the expected type. It points to something else, but should never be dereferenced. 2/ dereferencing such a pointer is not only wrong, but it would lead to results that are not predictable from examining the original source code. 3/ therefore, every attempt to dereference a pointer must be preceded by a test to see if the pointer is "NULL", and to raise an exception if it is 4/ (I'm guessing here, this wasn't explicit in the talk but is the only way that the rest makes sense) Performing that test was too expensive on hardware at the time, so they didn't perform the test, so programs behaved in hard-to-understand ways which had a substantial cost either in debugging time or dealing with incorrect or harmful results.
If I am right, then: A/ while it may have been a mistake then, it isn't relevant any more as any hardware with an MMU (which I think is everything these days) can easily check every dereference for 'NULL' and raise an exception, and B/ The "billion dollars" is almost certainly an extreme over-estimate. The real problem is programmers writing bad code. Some other technique than NULL (e.g. explicit sentinal objects) might have made some of the problems easier to detect earlier and so might have saved something, but I really don't think it is justifiable to place that much blame on the 'NULL' pointer. Some maybe, but not much.
So I see absolutely no problem in a modern language allowing a NULL pointer, though certainly supporting non-NULLable pointers is very appropriate. And every runtime should check for dereferences of NULL (preferrably in hardware) and raise and exception when it happens. But I'm sure they do.
Posted Mar 31, 2011 11:16 UTC (Thu) by paulj (subscriber, #341) [Link]
NULL pointers are a red-herring. If we're talking about C level languages, then a NULL pointer dereference is a *good* kind of mistake - it's a clear error and causes an immediate exception at runtime, as you say. Much, much more insidious in C-level-akin languages is stale pointers and code continuing to twiddle memory that no longer references the state it thinks it should. Give me an immediate segfault over bugs which only cause crashes later, in unrelated code, any day! Further, even in managed-runtimes and with non-nullable types, you *still* can have stale references that cause bugs (which can still be hard to debug, even if it manages to better protect state from being corrupted).
The problem is just so much more fundamental: The correct management of the lifetime of state, and the co-ordination of visibility of that state.
(Functional programmers would of course argue the problem is best solved by never sharing state, only ever copying and transforming it. Course, while that removes scope for many kinds of crash-causing bugs, it still can't remove higher-level, logical mistakes..).
Posted Mar 31, 2011 14:55 UTC (Thu) by deweerdt (subscriber, #18159) [Link]
Posted Mar 31, 2011 19:56 UTC (Thu) by HelloWorld (subscriber, #56129) [Link]
He explains later on why he added null, and what it boils down to is that he didn't know how to do better.
Posted Apr 1, 2011 3:58 UTC (Fri) by neilbrown (subscriber, #359) [Link]
For the moment however that is all we have, and to my mind it came across a lot like the proverbial dot-com-boom business plan which you might remember as: 1 - give stuff away for free 2 - .... 3 - profit.
In this case it is
1 - Invent the NULL pointer 2 - ... 3 - Cause a billion dollars of damage.
In both cases there is no clear link from the first step and the third step.
I can happily agree that Tony Hoare invented NULL, and I can happy agree that programmer errors that manifested as dereferencing a NULL pointer have had a large cost, but I cannot see how the one leads to the other. It would seem equivalent to blame Marie Currie for the current serious radiation problems in Japan. She coined the word "radioactivity" and radioactivity is causing serious problems and endangering lives. But it is hardly her fault.
Posted Mar 31, 2011 6:19 UTC (Thu) by wahern (subscriber, #37304) [Link]
I'm not exactly sure what is gained from removing generic null references entirely, though.
Posted Mar 31, 2011 11:00 UTC (Thu) by neilbrown (subscriber, #359) [Link]
Grouping them all under "Boolean" is thus confusing.
However this is no worse than the fact that '2' could mean inches or centimetres ... or kilograms or people or almost anything.
It is for this reason that Ada (and possibly other languages) allows "new integer" which defines a new type that behaves like integer but is not type-compatible with any other integer type. It is a concept that does have its place, but the extra book-keeping would probably drive most programmers crazy - even static typing seems to be out of favour with a lot of people these days (python? Perl?) and this extra type differentiation is like static typing on steroids.
You are correct of course that a generic NULL reference is not needed, but I fail to see that a typed NULL actually buys you anything at all...
I certainly agree that it is not clear what could be gained by removing generic null references.
Posted Mar 31, 2011 13:21 UTC (Thu) by HelloWorld (subscriber, #56129) [Link]
But when you really want a nullable pointer, as you do in a linked list or any tree data structure
abstract class List<T> { } final class ListNil<T> { } final class ListCons<T> { T elem; List<T> tail; }
abstract class BinaryTree<T> { } final class TreeNil<T> { } final class TreeCons<T> { T elem; BinaryTree<T> left; BinaryTree<T> right; }
arbitrarily not allowing one seems pointless.
Posted Mar 31, 2011 15:45 UTC (Thu) by mister_m (guest, #72633) [Link]
Posted Mar 31, 2011 16:00 UTC (Thu) by HelloWorld (subscriber, #56129) [Link]
Posted Mar 31, 2011 19:04 UTC (Thu) by mister_m (guest, #72633) [Link]
Posted Mar 31, 2011 20:36 UTC (Thu) by HelloWorld (subscriber, #56129) [Link]
Posted Apr 12, 2011 16:04 UTC (Tue) by oelewapperke (guest, #74309) [Link]
A tree would be defined like so :
abstract class TreeNode {} abstract class EmptyTreeNode extends TreeNode {} abstract class FilledTreeNode extends TreeNode { TreeNode first; TreeNode second; }
If you combine this with runtime polymorphism you can do something like this (won't work in Java, but I'm using java code anyway)
void processTreeNode(EmptyTreeNode et) {} void processTreeNode(FilledTreeNode ft) { // you might want to do something useful here processTreeNode(ft.first); processTreeNode(ft.second); // or here }
then simply call processTreeNode(tree), and the compiler would figure out whether to call the first or the second function.
I would love for java to support this though.
Posted Apr 1, 2011 3:47 UTC (Fri) by neilbrown (subscriber, #359) [Link]
A rose by any other name still has thorns, and a NULL de-reference by any other name still causes a run-time-exception or worse.
All values are "created out of thin air". They are abstractions which we create and use to try to model "real" things. Values that are useful we re-use. Values that are not, we forget. NULL turns out to be useful.
Your argument against NULL would seem to apply equally to the value '0'. It is an arbitrary magical value - that the Romans seemed to manage with out. It is a value of every (numerical) type, yet it doesn't support being the divisor in a division. We really should eradicate it - that would get rid of all divide-by-zero errors forever.
Of course, divide-by-zero errors are not caused by the availability of a 0 value, but by the misuse of that value. Similarly NULL pointer de-reference errors are not caused by the availability of a 'NULL' value, but by the misuse of that value.
Posted Apr 1, 2011 4:39 UTC (Fri) by HelloWorld (subscriber, #56129) [Link]
> "ListNil<T>" fills exactly the same role a "NULL" so what you have created is exactly a NULLable pointer, only with a different name and more complex syntax. No, it's not the same thing. As was pointed out multiple times by now, null references can show up everywhere, even in places where they don't make sense and where nobody ever intended or expected them to do. On the other hand, ListNil<T> objects are allowed only allowed where lists are allowed, and any sensible program that operates on lists expects those lists to end at some point (in eager languages at least).
> Your argument against NULL would seem to apply equally to the value '0'. No, 0 isn't something that somebody just made up. If you don't have 0, you can't add two integers as the only sensible result of adding x and -x is 0. So yes, the fact that you can't divide by 0 is a problem, but getting rid of that is hard. No such argument can be made for null. I also dislike the fact that null mixes up many different concepts that ought to be separate. null was used to represent optional values, empty lists, empty trees and probably all kinds of other things which don't have anything in common.
Posted Apr 1, 2011 6:06 UTC (Fri) by paulj (subscriber, #341) [Link]
I don't see how getting a ClassCastException is any better than a NullPointerException. Even though you've created a new type, neither you nor the compiler is any better position...
Posted Apr 1, 2011 8:22 UTC (Fri) by nybble41 (subscriber, #55106) [Link]
The advantages tend to be more pronounced in languages like Haskell, however, which have more advanced type systems which handle this sort of subtyping without any need for runtime casts. As you point out, in Java you would need to explicitly cast from List<T> to ListNil<T> or ListCons<T>, an operation which can fail in much the same manner as dereferencing a null pointer.
Posted Apr 1, 2011 13:33 UTC (Fri) by HelloWorld (subscriber, #56129) [Link]
Posted Apr 1, 2011 14:25 UTC (Fri) by paulj (subscriber, #341) [Link]
To my mind, having to go from checking the value of a reference to checking other properties of a composite object (the type, or a length attribute), and still being left open to runtime-exceptions (with a different name) if you forget, means you still are facing fundamentally the same problem.
Can the compiler maybe catch a couple more problems it wouldn't otherwise. Sure. Is it a silver bullet? Sadly, still no.
Posted Mar 31, 2011 13:29 UTC (Thu) by HelloWorld (subscriber, #56129) [Link]
Posted Apr 1, 2011 4:04 UTC (Fri) by neilbrown (subscriber, #359) [Link]
What do you think those programs would do there were no null pointers? There are various possibilities: throw an 'invalid type' error instead, enter an infinite loop, produce an incorrect answer, kill your cat....
One cannot know for sure, but I am certain that simply disallowing NULL pointers will not make incorrect programs correct except in a tiny minority of cases (if at all).
The thing that would have made the talk much more interested would be a description of what could have been done at the time which could have made a difference.... but I don't think there is anything.
Posted Apr 1, 2011 4:19 UTC (Fri) by HelloWorld (subscriber, #56129) [Link]
Posted Apr 1, 2011 8:12 UTC (Fri) by neilbrown (subscriber, #359) [Link]
What you are saying (I think) is that not only should the language provide a 'non-nullable' pointer type (which the compiler assures will never be NULL), but that where a nullable pointer is used, the language should require that there be an explicit test for NULL before dereferencing the pointer or assigning it to a non-nullable pointer.
That makes sense.
So you will never get a NULL dereference, and the compiler/runtime doesn't have to do implicit tests because tests are required to be explicit.
Posted Apr 1, 2011 12:46 UTC (Fri) by HelloWorld (subscriber, #56129) [Link]
Posted Apr 1, 2011 8:48 UTC (Fri) by jezuch (subscriber, #52988) [Link]
Yup. You learn Haskell and/or ML (and/or ...) and the case against null pointers becomes so obvious you don't even know how to explain it.
Posted Apr 1, 2011 9:12 UTC (Fri) by paulj (subscriber, #341) [Link]
If you specifically mean SEGVs, well that's very easy to explain: Haskell and functional languages generally do not have pointers.
Posted Apr 1, 2011 21:01 UTC (Fri) by mathstuf (subscriber, #69389) [Link]
safeHead :: [a] -> Maybe a safeHead [] = Nothing safeHead (a:_) = Just a
When calling safeHead, the caller must* check to see if a value was actually returned before using it. This can be done with fromMaybe:
fromMaybe sensibleDefault $ safeHead someList
* The caller can just use fromJust which raises an exception on a Nothing value, but that's the caller's burden at that point.
Posted Apr 5, 2011 6:27 UTC (Tue) by cmccabe (guest, #60281) [Link]
Posted Mar 29, 2011 2:39 UTC (Tue) by HelloWorld (subscriber, #56129) [Link]
The fact that Java needs wrapper classes for this, and for other things, is a design limitation of Java, not of primitives themselves.
Having a bool type is "obviously a bad thing," as you can obtain the same effect with ints.
Oh wait, that argument is bogus.
abstract class Option<T> { public abstract T get(); public abstract bool isPresent(); } final class None<T> extends Option<T> { public T get() { throw new Ouch(); } public bool isPresent() { return false; } } final class Some<T> extends Option<T> { private final T t; public Some(T t) { this.t = t; } public T get() { return t; } public bool isPresent() { return true; } }
Posted Mar 29, 2011 5:34 UTC (Tue) by cmccabe (guest, #60281) [Link]
I'm well aware that you can build a nullable pointer out of a non-nullable one. C++ has boost::optional which is kind of a nullable object, templated in a similar way. However, that technique is less efficient and more cumbersome than just using a regular pointer.
So far, you haven't presented any actual evidence that non-nullable pointers are helpful to programmers. Your whole argument depends on the idea that nullable pointers are somehow this huge source of bugs. But in my 10 years of C++ (and some Java) I haven't found this to be the case. I am much more worried about race conditions, implicit narrowing of numerics, and code that handles error conditions poorly than I ever will be about NULL pointers.
It's like trying to sell me insurance against stampeding elephants. I know that elephants can kill, but honestly, I'm not that worried about them. I have other things to worry about.
C++ has non-nullable pointers in the form of references. However, despite this fact, programmers continue to use pointers. Apparently either the advantages of a non-nullable pointer aren't that great, or the weight of legacy code is too heavy. I guess you're free to interpret it however you like.
When you look at static code analysis tools that people run in the real world, they tend to look for things like race conditions, uninitialized memory uses, double frees, and so on. You could imagine annotating your pointers with something like "attribute __nonnull", and using your tool to look for violations of that, but in practice, nobody bothers to do it.
Here's an example of such an implementation: http://jastadd.org/jastadd-tutorial-examples/non-null-typ...
Now is any big Java project using this stuff? If not, why not? These are the kind of questions we should be asking.
Please don't misinterpret what I'm saying. I'm not necessarily against non-nullable pointers, I'm just saying that the evidence presented here has not been persuasive.
Posted Mar 29, 2011 10:52 UTC (Tue) by nix (subscriber, #2304) [Link]
However, I get null pointer errors on a fairly regular basis, because GCC's nonnull attribute can only warn you if it can be sure a pointer is NULL, and if it's received from somewhere else it can't tell that. Whole-program compilation will help, but a lot of code is in shared libraries, and there, you have no recourse.
But if the *actual type* of the pointer was different (so the compiler could distinguish 'non-null pointer to object' and 'nullable pointer to object' even for external symbols) this error would largely disappear (as it does in C++ with references). However, this would require changing the C linkage model, and probably mangling names. Ain't gonna happen.
Posted Mar 30, 2011 7:13 UTC (Wed) by jrn (subscriber, #64214) [Link]
Posted Apr 1, 2011 17:51 UTC (Fri) by nix (subscriber, #2304) [Link]
Posted Mar 29, 2011 13:16 UTC (Tue) by HelloWorld (subscriber, #56129) [Link]
> Your whole argument depends on the idea that nullable pointers are somehow this huge source of bugs. But in my 10 years of C++ (and some Java) I haven't found this to be the case. I see programs crashing due to null pointer dereferencing almost every day, but maybe that's just me. And anyway, the bad effects of the null pointer mistake aren't limited to just bugs. As I said earlier, primitive types wouldn't have been necessary if null didn't exist. And I've seen people put null checks in all kinds of random places so if a null value shows up where it shouldn't have, the program won't even crash and allow you to debug it. Finally, what really bugs me about null is that it's so utterly arbitrary. There's no real reason for having this magical thing that is a value of every type, but supports almost none of the operations allowed for that type.
> C++ has non-nullable pointers in the form of references. However, despite this fact, programmers continue to use pointers. That's because you can't make a C++ reference refer to another object once you've initialized it. It's more like a final reference in Java than like an ordinary reference.
> Please don't misinterpret what I'm saying. I'm not necessarily against non-nullable pointers, I'm just saying that the evidence presented here has not been persuasive. Well, our experiences regarding null pointers seem to differ. I don't think there's much more left to say.
Copyright © 2013, Eklektix, Inc. Comments and public postings are copyrighted by their creators. Linux is a registered trademark of Linus Torvalds


text:
Support MGoBlog: buy stuff at Amazon
basketball preview
Preview: Wisconsin
WHAT | Michigan at Wisconsin |
WHERE | Kohl Center, Madison, Wisconsin |
WHEN | Noon Eastern, Saturday |
LINE | Michigan –2 (Kenpom) |
TV | ESPN/WatchESPN |
Right: Bo Ryan feels no remorse for ruining the game of basketball.
Michigan is playing to retake the #1 spot in the polls on Saturday, but to do so they must win at Wisconsin for the first time since 1999, when I was 12 and Y2K was a thing. Yeah, it's been a while.
Wisconsin plays the same ungodly slow tempo—dead last even in a slow conference—that you're used to seeing from Bo Ryan squads, but without the ruthless offensive efficiency of his recent teams—they're just eighth in the conference in that category, though they're holding down first in defensive efficiency.
Their highest-usage player is 6'6" forward Ryan Evans, a guy who's never been a stellar shooter but has fallen off a cliff this year, putting up a 43/9/43 2P/3P/FT split this year. That's, well, bad. On the good side, Evans is a very good rebounder, doesn't turn the ball over, and gets to the line frequently (though, again, 43% free-throw shooter).
While Evans takes more shots, the real scoring threats on Wisconsin come in the form of starting center Jared Berggren—a 55% shooter inside the arc who can step out and hit the occasional three—and freshman sensation Sam Dekker, who comes off the bench and hits 51% of his twos and 41% of his threes. Berggren is also a force on the defensive end, while Dekker is easily the most talented player on the team.
6'1" guard Ben Brust provides most of the volume for Wisconsin's outside shooting—he's attempted 123 three-pointers this year, nearly double any other Badger, and is hitting them at a 39% clip. He's also a surprisingly good defensive rebounder and one of two main distrubutors for the Badgers on offense. The other is 6'2" guard Traevon Jackson, who is struggling: a 52:43 assist-to-turnover ratio isn't so good, and neither is shooting 39% from two and 28% from three.
Rounding out the starting five is 6'6" forward Mike Bruesewitz, extremely low-usage player and bane of copy editors everywhere. He shoots a remarkably efficient 66% inside the arc—again, in very low, often garbage-bucket usage—and a less stellar 30% from outside.
Wisconsin only goes seven or eight deep. Aside from Dekker, 5'11" guard George Marshall gets the most PT off the bench—he takes cares of the basketball and is a solid outside shooter. 6'11" big man Frank Kaminsky should see a few minutes—he's the best outside shooter among Wisconsin's bigs, but also a major downgrade on the boards.
Wisconsin currently stands at 16-7 overall, 7-3 in the Big Ten, with a signature road win at Indiana and KP100 victories over Minnesota, Illinois (twice), Iowa, Cal, and Arkansas. Aside from the Indiana game, however, they've struggled against top-tier opponents, and that includes losses at the Kohl Center against #23 Virginia and #15 Michigan State.
Four factors, conference only.
eFG% | Turnover % | Off. Reb. % | FTA/FGA | |
Offense | 45.5 (8) | 15.1 (2) | 31.1 (7) | 31.4 (6) |
Defense | 42.7 (1) | 16.4 (10) | 27.6 (1) | 27.6 (5) |
The numbers paint a pretty clear picture here. Wisconsin is a mediocre (at best, really) offensive team, but their issues are mitigated somewhat by never turning the ball over. On the other side of the court, they're a shutdown unit, allowing the fewest attempted threes and the lowest three-point percentage in the conference while also ceding just a 43.5 2P% against. Like Michigan, they don't force many turnovers but are extremely proficient at keeping opponents from getting second-chance shots.
LONG TWOS ARE THE DEVIL'S WORK. Wisconsin is going to try to grind the game out, force Michigan into late shot-clock situations, and limit them to one shot per possession. Given Wisconsin's ability to rebound defensively, Michigan is going to have to make sure their initial shot is a quality one—chuck up a bad one, and you're probably not getting another chance. This would be a bad game for Trey Burke heroball, especially given the extremely limited number of possession there should be in this game.
Let Evans do his thing. Hack if necessary. Wisconsin is a pretty crappy offensive team in large part because their highest-usage player is doing a pretty terrible job of efficiently getting the ball in the basket. If Ryan Evans wants to play his own game of heroball, by all means, go for it. It helps that if he beats his man, hacking him puts a 43% shooter on the free-throw line. Michigan would much, much prefer Evans is the focal point for Wisconsin instead of Dekker or Berggren.
Work the pick and roll. Wisconsin doesn't give up many looks from outside at all, so Michigan has to find a way to get to the basket. The P&R was much-improved against Ohio State and appears back to being rather unstoppable; in this game, it has both the benefit of getting guys to the hoop and hopefully drawing Berggren—a great shot-blocker—away from the paint.
Michigan by 2
Wisconsin's defense is scary, especially since they rarely cede the outside shot. However, they really don't have much going on offense, and Michigan has... Michigan's offense. This game will almost certainly take years off your life, but I think the good guys pull it out in the end.
UMHoops preview. Maize & Brew preview. I did a preview Q&A with MadTown Badgers, as well (yes, there's some confusion there as to where I work, but I'm a big fan of MnB too). You can find my answers to their questions here, and below the jump, check out what Andy Coppens has to say about Wisconsin's chances.
[HIT THE JUMP, yo]
Preview: Ohio State
WHAT | Ohio State at Michigan |
WHERE | Crisler Center, Ann Arbor, Michigan |
WHEN | 9:00 PM Eastern, Tuesday |
LINE | Michigan –8 (Kenpom) |
TV | ESPN/WatchESPN |
Right: Pest.
Michigan gets the chance to avenge their first defeat of the season tonight when Ohio State comes to Crisler, where they will be greeted by the sun. Or possibly Michigan's maize-on-maize jerseys. Either way, I can't look at them long enough to tell the difference.
Anyway, Brian previewed this Buckeye outfit in detail just a couple of weeks ago, so I'll spare much of the redundancy and point you in that direction.
Since Ohio State last played the Wolverines, they've gone 4-1, with their lone loss coming by three at the Breslin Center. In that game, Deshaun Thomas scored scored 28 points on 10-of-20 shooting. None of his teammates had more than five points, and non-Thomas Buckeyes combined to shoot 9-of-27 from the field. While Thomas didn't lead the team in scoring in recent wins over Penn State and Nebraska, this is still very much Deshaun Of The Dead, and now there's a movie poster and everything:
MGoIllustration, obvs.
So, yes, the situation is still the same. Thomas is the best pure scorer in the league, perhaps the country. Aaron Craft and Shannon Scott are stellar perimeter defenders, not-so-stellar shooters. Lenzelle Smith Jr. is a good defensive rebounder and the only guy outside of Thomas who's a real threat with his outside shot. Sam Thompson is a pogo stick who shouldn't ever shoot outside of zero feet. Amir Williams (the starting center of late) and Evan Ravenel will both do good center things—rebound, block shots, defend well—while not getting a whole lot of post touches. Thomas will be tasked with carrying the offense while the rest will play obnoxiously good defense, and it's that latter bit that gave Michigan a whole heap of trouble the first time around.
Since they last played, OSU has the aforementioned loss at Michigan State, comfortable home wins over Iowa and Wisconsin, and road wins over doormats Penn State and Nebraska—the latter got a bit hairy at parts, but the Buckeyes held on for a seven-point margin. They sit tied with Michigan and Michigan State for second in the Big Ten behind Indiana; winning this game is pretty important for Michigan, obviously.
Four factors, conference only:
eFG% | Turnover % | Off. Reb. % | FTA/FGA | |
Offense | 50.3 (5) | 19.4 (9) | 25.8 (10) | 31.8 (6) |
Defense | 43.6 (2) | 17.8 (8) | 28.4 (3) | 23.2 (1) |
Ohio State's offense is well below elite, producing the fifth-ranked offensive efficiency in the conference—nearly 18 points per 100 possessions behind Michigan. There's no one area offensively in which they really stand out (for good or bad) unless you count Deshaun Thomas as an area.
Defensively, however, this is the top-ranked unit in the conference and #9 nationally. They're allowing Big Ten opponents to shoot just 43% on twos and 30% on threes, though the latter number seems fluky—they're 10th in the conference at 3PA/FGA allowed, which is a stronger indicator of their three-point defense. The interior guys block a ton of shots, and despite that aggressive approach the Buckeyes keep opponents off the free-throw line better than any other Big Ten team.
Find a way to get the pick-and-roll working. Michigan's loss at Ohio State came in large part because the Wolverines could not find a way to get the bread-and-butter play working. Utilizing Aaron Craft's quickness and aggressiveness, the Buckeyes "locked the rails" against Trey Burke, pinning him to the sideline and keeping him away from the middle of the floor:
The key here won't so much be Burke as it will the bigs—if McGary/Horford/Morgan can slip a few of those picks or flip the pick to catch OSU off guard, they can create some easy buckets and force the Buckeyes to go back to the drawing board. If Craft gets hit with a cheap foul or two that he wouldn't get in Columbus, that would be nice, too.
Always, always account for Thomas. In the first game, Glenn Robinson III got lost a few times defensively and allowed Thomas to get open looks, which he of course knocked down. Robinson is coming off his worst game of the year—on both ends of the court—against Indiana, and he can't afford a repeat performance given his matchup. Michigan will likely give him plenty of help, but there can't be communication errors or lapses in concentration—Thomas will take advantage just about every time.
Aim for the head. Walking Dead enthusiasts know what I'm talking about.
Michigan by 8
I'll never doubt you again, KenPom.
Preview: Indiana
WHAT | Michigan at Indiana |
WHERE | Assembly Hall, Bloomington, Indiana |
WHEN | 9:00 PM Eastern, Saturday |
LINE | Indiana –6 (Kenpom) |
TV | ESPN/WatchESPN |
Right: Victor Oladipo is terrifying, frankly.
One team stands between Michigan and sole control of the Big Ten, not to mention a likely perch atop both national polls. That team, of course, is Indiana, whose lone losses have come in overtime against Butler (neutral-site) and at home in a textbook Wisconsin slugfest.
Indiana's national player of the year candidate is seven-foot center Cody Zeller, an offensive force thanks to deft touch around the basket (69% on FGs at the rim, per hoop-math), decent mid-range shooting, one of the highest drawn foul rates in the country (7.0/40 min.[!]), and stellar offensive rebounding. He's also a very good defensive rebounder who provides a solid shot-blocking presence. He'll be a huge test for a Michigan team that should be without Jordan Morgan, their best on-ball defender among their big men.
Indiana's other national player of the year candidate is 6'5" wing Victor Oladipo, a brutally efficient shooter—making 69% of his twos and 18-of-34 threes—who hits the offensive glass nearly as frequently as Zeller. Oh, and he's also one of the best defenders in the nation at any position, boasting the #12 steal rate in the country along with his fair share of blocks. The big question for this game is who Oladipo will guard. Will Crean match him up with Trey Burke, in an effort to stymie Michigan's pick-and-roll game like Ohio State did with Aaron Craft? Or does that create too many other matchup issues, leading Crean to put him on Tim Hardaway Jr. or even Nik Stauskas? That largely depends upon what they do with...
...6'0" shooting guard Jordan Hulls, one of the most efficient offensive players in the country thanks to his dead-eye outside shooting (48.1% from three, where he takes 64% of his shots). His lethal shot adds much the same dimension to Indiana's offense that Stauskas's does for Michigan—never, ever help off of Hulls—but on the other end of the floor he's something of a liability. Indiana has three options defensively thanks to his shortcomings, which guarantee he won't match up with Burke: (1) play Oladipo on Burke and hope Hulls can hold his own against Stauskas, (2) go to a 2-3 zone, which they've done to middling success before and could go south in a hurry against Michigan's shooters, or (3) bite the bullet and lessen his minutes in favor of his more defensively proficient backups.
6'9" power forward Christian Watford isn't the most complete player, but he does a few things very well—namely, shoot threes (48%), get to the line, and hit the defensive boards. Watford drives Indiana fans a little crazy, however, because he's prone to inconsistency, hasn't developed an offensive game inside the arc (42% from two), and isn't a great defender. He'll be an interesting matchup for Glenn Robinson III—if Watford loses track of GRIII on the defensive end, there could be fireworks.
Freshman point guard Yogi Ferrell is living up to his five-star hype, though the numbers may not suggest as much. While he isn't a great shooter and has been prone to freshman mistakes (including seven turnovers in the last two games), he runs the offense well and plays very solid defense, especially for a freshman. Ferrell isn't afraid to step up in big moments, either—if the game is on the line, expect the ball to at least start in his hands.
Like Michigan, Indiana doesn't use their bench too often, nor do they go very deep. 6'7" wing Will Sheehy is the only bench player to crack 40% of IU's available minutes (he's at 54%). Sheehy is a solid shooter both inside and outside the arc and gives Crean the option to go with a bigger lineup. 6'4" wing Remy Abell is in much the same mold. The Hoosiers will rarely go beyond the seven players above, especially in a game of this magnitude.
Indiana has eight wins against KP100 opponents but are somewhat lacking in the signature win department: their nine-point home win over Minnesota is looking less impressive by the day, while their best road win came at Iowa (they did beat #26 Georgetown in overtime at a neutral site). Their two losses, covered above, were upsets but by no means embarrassing ones.
Four factors, conference play only:
eFG% | Turnover % | Off. Reb. % | FTA/FGA | |
Offense | 53.3 (2) | 19.9 (10) | 39.2 (2) | 52.1 (1) |
Defense | 44.3 (3) | 22.0 (1) | 32.8 (8) | 27.9 (5) |
This may be the ultimate "something has to give" game. On offense, Indiana does two things extremely well outside of shooting the basketball: rebound and draw fouls. Michigan is #12 nationally in defensive rebounding and the best team in the country at keeping opponents off the free-throw line.
On the other end, Indiana's forte is forcing turnovers, a huge key for getting their offense going. What does Michigan do better than any team in the conference? Not turn the ball over, naturally. The team that is able to play their game is going to win, plain and simple.
Get Hulls off the court. While Sheehy and Abel are solid players, Hulls adds a completely different dimension to Indiana's offense by forcing defenses to respect his outside shot and being able to create that shot off the dribble—he's More Than Just A Spot-Up Shooter™, which is what makes him so dangerous. Indiana is going to have to hide him defensively, however, so if Michigan can identify that matchup and exploit it until Indiana is forced to choose between getting firebombed and taking one of their main offensive weapons off the court, that's a huge advantage for Michigan. If Hulls ends up on Stauskas, which is what I expect, I bet you'll see Stuaskas in a lot of pick-and-roll situation, where he's lethal even when he doesn't have a six-inch size advantage.
Stay out of foul trouble up front. This was a key for Horford and McGary against Northwestern and they combined for just four fouls, but the Wildcats aren't familiar with the concept of a post presence, let alone one as dangerous as Cody Zeller. This is not the game for Michigan to try and survive with Max Bielfeldt playing 15-20 minutes.
Stay aggressive, guards. That said, Michigan would like to find a way to get some easy points in transition, and they've been able to do that lately with Trey Burke being far more aggressive defensively. Burke's going against a freshman point guard who's been prone to turnovers, so I'd love to see him continue to attack the ball and try to fluster Ferrell into mistakes. The team that can hold onto the ball while getting out in transition should win this game, so along those lines...
Hold onto the damn ball. Self-explanatory.
Michigan by 1
With all due respect to KenPom, Cody Zeller, Victor Oladipo, the voodoo of Assembly Hall, and everything else favoring Indiana, I have to go with Michigan for one simple reason: the matchups. When Indiana has the ball, Michigan at least knows which of their starters is going to match up with each of Indiana's: Burke on Farrell, Stauskas on Hulls, Hardaway on Oladipo, Robinson on Watford, Horford/McGary on Zeller. Whether they'll be greatly effective is another issue, but at least the matchups make sense.
On the other end, Indiana has a huge problem, and that problem is slowing down the Burke/Hardaway/Stauskas triumvirate when two of their starting guards are each 6'0" tall—a freshman and a defensive liability, respectively. I don't think Indiana will be able to stay in a zone, not against Michigan's shooters, and that means either living with a terrible matchup (likely Hulls on Stauskas) or benching one of their best offensive weapons.
In a game with two teams this good, even at Indiana, I think that's enough to swing the result in favor of the good guys.
UMHoops preview. UMHoops First Look with all of the advanced stats I wish I had access to. Maize n Brew preview.
Preview: Northwestern
WHAT | Northwestern at Michigan |
WHERE | Crisler Center, Ann Arbor, Michigan |
WHEN | 6:30 PM Eastern, Wednesday |
LINE | Michigan –19 (Kenpom) |
Right: A Google image search for "Bill Carmody" tells you everything you need to know about the Northwestern basketball experience.
Northwestern got the preview treatment before this month's game in Evanston, so this will be short and sweet.
The Wildcats will still be without Drew Crawford, but Reggie Hearn—who missed the first Michigan game with an ankle injury—is back in the lineup. Hearn is easily Northwestern's best scorer, shooting 56.6% from two and 36.8% from three, with a low turnover rate to boot.
Bill Carmody has made one other lineup change since the earlier meeting, moving 6'2" guard Tre Demps into the starting lineup. Demps doesn't do much but shoot, and he doesn't do that too well: he's at 41.3% inside the arc and 32.7% from deep, and in his first two starts went just 4-for-17 from the field.
The rest of the rotation remains the same. Dave Sobolewski is a solid point guard who can hit down outside shots and surprise with the occasional drive to the bucket. 6'8" forward Jared Swopshire can step out and knock it down from outside; he's the team's best rebounder, though that's not saying much. Seven-footer Alex Olah is a decent distributor from the post but he's struggled mightily to put the ball in the hoop—especially in Big Ten play—and his rebounding numbers are extremely underwhelming for a player his size.
Guard Alex Marcotullio is the main option off the bench. He takes nearly all of his shots from downtown, where he's shooting... 28.8%. Oh.
The Wildcats have played seven games since losing at home to Michigan, going 3-4 over that stretch. They've notched a couple impressive conference victories, beating Illinois on the road by 14 and Minnesota at home by seven, while also taking care of Penn State on the road. Losses came at Minnesota (by 18), at home against Iowa (by 20) and Indiana (kept it within a respectable eight), and their last game was a 15-point road loss to Nebraska.
Four factors, conference play only:
eFG% | Turnover % | Off. Reb. % | FTA/FGA | |
Offense | 46.2 (7) | 17.0 (6) | 24.2 (11) | 43.7 (2) |
Defense | 48.9 (8) | 19.9 (3) | 41.6 (12) | 39.9 (10 |
Northwestern is a terrible, terrible rebounding team, and that should be enough to seal a loss given that they'd do well just to keep pace with Michigan's shooting. They do launch more three-pointers than any other team in the conference, so if they go on a Purdue-in-the-first-half tear things could get a little uncomfortable.
Stay out of foul trouble. Jordan Morgan will almost certainly sit this one out, so Michigan gets a little thinner up front. While Morgan is great at avoiding fouls, Mitch McGary and Jon Horford aren't so much, and Northwestern is getting to the line frequently in Big Ten play. Against a team that rebounds as poorly as the Wildcats, the Wolverines should be fine if they have to play Max Bielfeldt for long stretches, but I'm sure John Beilein would rather not test that hypothesis.
Key on Hearn. Hearn is the one guy on Northwestern that can consistently score both inside and outside. It'll be up to Hardaway or Stauskas to make sure he doesn't get open looks from three; when he drives, Michigan's bigs shouldn't hesitate to slide over and help—Olah is hitting just 50% of his shots at the rim, so helping off of him isn't a bad idea.
Michigan by 19. Even without Morgan, Michigan should dominate on the glass, so unless the Wolverines go ice cold and the Wildcats can't miss, this should be a comfortable victory at home.
UMHoops preview. Maize 'n Brew preview.
Sippin' On Purple's preview is magnificent, so long as you're a Michigan fan:
Even though Northwestern doesn't help heavily, Northwestern has a tendency of losing shooters: Hey, it's Nik Stauskas! Announcers like to mention that he's "not just a shooter!", because he sometimes does other stuff effectively, but that's like saying Rambo isn't "just an unkillable death machine" because he has lines of dialogue.
The rest continues in a similar vein. Rodger declares he's be pleased with a close loss.
Preview: Illinois
WHAT | Michigan at Illinois |
WHERE | Assembly Hall (NTAH), Champaign, Illinois |
WHEN | 6:00 PM Eastern, Sunday |
LINE | Michigan –9 (Kenpom) |
TV | Big Ten Network |
Right: Let's all agree not to discuss anything John Groce did last year.
After a brutal second-half collapse in 2011-12 cost head coach Bruce Weber his job, Illinois started the 2012-13 campaign 12-0 under new head man John Groce. Instead of a storybook turnaround, however, it's been déjà vu for the Illini, losers of five of their last eight games with a brutal stretch ahead (Michigan, @ MSU, Wisconsin, Indiana, @ Minnesota).
6'4" guard Brandon Paul reprises his role as the team's leading scorer, and he's much more efficient than he was last year, shooting 49.6% from two and 34.1% from three while getting to the line frequently. Paul is at his best when he's attacking the basket, though he takes half his shots from beyond the arc; Michigan would probably prefer to keep him on the perimeter. Defensively, Paul is actually the team's second-best rebounder—Groce asks his guards to hit the glass hard, and as you'll see there's a good reason why.
Point guard Tracy Abrams distributes the ball well and is a solid shooter inside the arc, but he's struggled with turnovers and is just 17-for-60 on three-pointers. Joining him and Paul in the starting backcourt is 6'3" gunner DJ Richardson, who's already launched 141 threes (against 62 twos) this year but is hitting them at just a 32.6% clip. Richardson is mostly content to spot up and shoot—both his assist and turnover rates are quite low.
6'6" wing Joseph Bertrand is the team's best defensive rebounder and most efficient shooter, hitting at 59.1% inside the arc and 38.5% from outside. He's got a lower usage than any of the three guys above, however, and as a result is the Illini's fourth-leading scorer.
6'11" center Nnanna Egwu is the object of fascination for somehow being an atrocious defensive rebounder, posting a paltry 12.1% rate despite being, again, six-foot-eleven. Egwu is a non-factor as a scoring threat, though he at least manages to pick up a decent number of offensive rebounds, but does provide a shot-blocking presence defensively.
The rest of the Illini big man rotation doesn't exactly strike fear in the hearts of opponents, either. 6'9" forward Tyler Griffey takes over half his shots from three and is a rebounding non-factor on both ends. 6'8" backup Sam McLaurin shoots just 44% from two and has posted an astounding 7.1% defensive rebound rate—lower than Trey Burke and Caris LeVert.
The only other backup to see significant time is wing Myke Henry, an offensive black hole (2.9% assist rate vs. 20.6% turnover rate) who's hitting just 34.5% from two and 32.3% from three.
Illinois built that 12-0 against a slew of cupcakes and huge wins over #28 Butler (by 17 on a neutral court) and #12 Gonzaga (by 11 on the road), as well as KP100 triumphs over USC and Georgia Tech. The last month hasn't been kind, however. Their first loss came by nine to #36 Mizzou, they were upended by seven at Purdue, and then—after blowing out Ohio State at home—they suffered three consecutive blowout losses to Minnesota, Wisconsin, and Northwestern, the third a 14-point home loss. Illinois is coming off a 20-point home win over Nebraska, but, well, that's Nebraska.
Four factors, conference play only:
eFG% | Turnover % | Off. Reb. % | FTA/FGA | |
Offense | 44.6 (9) | 19.4 (8) | 33.3 (5) | 32.2 (7) |
Defense | 48.7 (8) | 21.4 (1) | 33.2 (10) | 44.0 (11) |
You can see why the wheels have come off this season: Illinois isn't shooting the ball well in Big Ten play and is coughing up the rock too much, and on the other end their forced turnovers are offset by fouling all the time and giving up too may rebounds. Their offensive efficiency has dropped over ten points per 100 possessions in conference play, while their PPP allowed on defense has risen by nearly as much.
The Illinois live and die by the three, and right now they're dying: they take the third-most threes in the conference and are hitting just 24.8% of them. They're actually second-best in the conference at shooting inside the arc, but that hasn't been enough for a team that jacks up so many outside shots.
Protect the rock. Illinois gets a ton of blocks and steals, but otherwise their defense is underwhelming. If Michigan takes care of the basketball, they should win, but they could get into trouble in their outside shots aren't falling—the turnovers could come if they try to force their way to the basket.
Hands off. The Illini have the best free-throw percentage in the conference and a couple guys who can attack the basket in Paul and Abrams. With their shooting struggles, Illinois would love to get opportunities for easy points; thankfully for Michigan, they're still #2 in the country in free throw rate against. Playing like they've been playing should take care of this.
Run, run, run. Michigan can really open up this game if they're able to get out in transition, and there should be plently of chances off long rebounds when Illinois shoots (and misses) from outside. Illinois plays at a higher tempo than most Big Ten teams, but that may not play in their favor—Nebraska had success (or at least kept Michigan close) by grinding the pace to a halt and refusing to let Michigan get out on the break.
Michigan by 9
With Illinois, there's always the fear that they catch fire from outside—when they do, this team is capable of beating anyone. We saw against Purdue, however, that it takes more than a half-long hot streak from outside to beat Michigan, and the Illini haven't been able to sustain much of anything in conference play.
Preview: Purdue
WHAT | Purdue at Michigan |
WHERE | Crisler Center, Ann Arbor, Michigan |
WHEN | 7:00 PM Eastern, Thursday |
LINE | Michigan –17 (Kenpom) |
TV | ESPN/WatchESPN |
Right: From 2010: "Purdue is redesigning their mascot, after many complaints about scared children." Incredibly, this did not go well, and the old Pete is still terrorizing young and old alike.
Purdue came to Ann Arbor for last year's Senior Night and spoiled Michigan's chances at an outright Big Ten title. While this Michigan outfit has markedly improved from last year's version, the Boilermakers have gone in the opposite direction without Robbie Hummel, Lewis Jackson, and Ryne Smith.
6'2" guard Terone Johnson, Purdue's leading scorer, takes over 27% of the team's shots when he's on the floor, and they aren't all good ones: according to hoop-math, 52% of his shots are two-point jumpers, of which he makes just 33%. He's a decent finisher around the basket and can knock down threes (35.2%), but shot selection is obviously an issue, one exacerbated on a team lacking viable shot creators. His overall efficiency is salvaged somewhat by a healthy number of assists and a low turnover rate, at least.
Freshman starting point guard Ronnie Johnson has much the same statistical profile as older brother Terone—right down to 52% of his shots being two-point jumpers, of which he makes 33%—except with a high turnover rate. Oh, and he's shooting 3-for-26 on three-pointers this year. Efficient, he is not.
Rounding out the starting backcourt is 6'5" guard Raphael Davis, though he's only playing about 35% of the team's minutes. Davis is one of the team's most effective shooters, hitting 56% of his twos and going 5-for-13 from downtown, and he's also a solid defensive rebounder. For some reason, he doesn't play more—I'm guessing because he also struggles with turnovers.
6'5" senior DJ Byrd is listed as a guard/forward but spends nearly all his time on the perimeter—70% of his shots come from beyond the arc. After hitting 43% of his threes last year, Byrd is down to 36.5% this season as defenses are able to devote far more attention to him. He's not much of a rebounder on either end despite playing the four at times.
Seven-footer AJ Hammons has quietly put together one of the best freshman campaigns in the conference, averaging a hair over ten points in 23 minutes per game while doing solid board work on both ends. He's very effective around the basket, where he hits 75% of his shots, but like the Johnson brothers often settles for too many two-point jumpers—those comprise 56% of his shots, and he's hitting them at a 35% rate. On the defensive end, Hammons is a very good shot-blocker and a major reason why Purdue boasts the conference's best two-point defense (39.3 2P% allowed).
6'3" sixth man Anthony Johnson is not related to the two starters of the same name, but he joins the low-efficiency party anyway, connecting on 42.7% of his twos and 24.2% of his threes. Forwards Jacob Lawson, Donnie Hale, and Travis Carroll provide good size off the bench (all are in the 6'8"-6'9" range). Lawson is a stellar defensive rebounder and decent finisher around the hoop. Carroll doesn't hit the defensive boards hard but rebounds well on offense and has started the season 15-for-21 from the field. Hale doesn't rebound at all and has hit 27 of his 69 shots this year, so naturally he gets more minutes than Carroll and is a higher-usage player than Lawson.
The Boilermakers went just 7-6 in non-conference play, with their lone KP100 win coming on the road against #65 Clemson. Other games against KP100 teams didn't go so well, with losses to Bucknell and Xavier at home and Villanova and Notre Dame at neutral sites. They also lost at Eastern Michigan, a team Michigan destroyed to the tune of 39 points.
Purdue does have a 3-2 record in the Big Ten, including a seven-point win at home over Illinois, but wins over Penn State and Nebraska are nothing to write home about. Michigan State crushed them by 23 at Breslin, while Ohio State pulled away late at Purdue for a ten-point margin.
Four factors, now conference-only (small sample, yes, but numbers are equally skewed by various cupcakes on the non-conference schedule):
eFG% | Turnover % | Off. Reb. % | FTA/FGA | |
Offense | 45.4 (8) | 16.3 (4) | 35.6 (3) | 30.4 (8) |
Defense | 43.7 (3) | 15.7 (12) | 32.5 (8) | 24.8 (2) |
Offensively, Purdue doesn't shoot the rock well, but they manage a just-below-average offense thanks to offensive rebounding and not turning the ball over. They're hitting their threes in Big Ten play (37.7%) but the numbers inside the arc are ugly (42.6%) and they've been terrible from the line (54.4 FT%(!)).
Strong interior defense has been a constant for the Boilermakers, as their impressive 2P% against has held steady from non-conference to conference play. Big Ten opponents have caught fire from outside, but Purdue actually allows the second-fewest attempts in the conference, so that is likely a fluke.
Don't give Byrd open looks. The only way I see Michigan losing this game is if Purdue catches fire from downtown, and Byrd is their best outside shooter. He's seen his shooting percentage plummet (albeit from "ridiculous" to merely "quite good") now that defenses don't have to worry about Robbie Hummel and Ryne Smith lighting them up from the outside; if Michigan devotes the same level of attention as Purdue's previous opponents, they should be able to limit his output.
Forego post touches. Brian has covered in detail why Michigan doesn't need to try and establish their post players as back-to-the-basket scoring threats, and with Hammons patrolling the paint this isn't the game to try and do that, anyway. Expect the centers to spend much of the night setting picks as the Wolverines try to draw Hammons away from the basket—if they can get a few ticky-tack fouls on him, that's a bonus.
Cede the jumper to anyone named Johnson. The numbers speak for themselves. Michigan should be able to get their transition game going given the volume of jump shots that Purdue usually misses. Terone Johnson pulling up from 18 feet, as he is wont to do, is about as likely to result in a Michigan basket going the other way as it is one for Purdue.
Get Stauskas going again. Just for my own sanity, it'd be nice to see Mr. Swag crack 50% from downtown after struggling in the last couple games.
Michigan by 17.
I'll stick to KenPom here with that kind of a margin. As stated above, Purdue's proclivity for taking—and missing—the worst shot in basketball should spark more than a couple fast break opportunities. If Michigan can find a way to score inside the arc—and we're talking about the nation's best offense by a decent margin here—they should be able to run away with this one.
UMHoops preview. Maize & Brew preview. Purdue perspective from Hammer & Rails:
As much as I would love to say I have a good feeling about this game (and I kind of do), realistically it is hard to see us winning this. Maybe later on in West Lafayette if everything goes right Purdue can stun them, but we're asking a team that is still very young to go into Ann Arbor and knock off one of the best teams in the country. I think it only happens if Hammons stays out of foul trouble while delivering a 20-10-5 game, Davis or TJ also has a big game, and Purdue hassles them into an uncharacteristically bad game.
BoilerTMill predicts a 15-point Michigan win despite the admitted optimism.


text:
Patients & Visitors
Medical Services
Find a Doctor
Patient Portal
Patients and Visitors
Patient Rights and Responsibilities
Patient Rights and Responsibilities
Your Patient Rights
Robinson Memorial Hospital recognizes its ethical responsibility to both the patients and the community it serves. To fulfill this responsibility, we strive to conduct all our clinical and business practices in a manner that ensures that the care, treatment and services we provide you are based on your assessed need and that we accurately portray our ability to meet those needs. We want you to know your rights as a patient so you can feel safe and be a full participant in the decisions made regarding the care, treatment and services you receive.
As our patient, you have the right to:
Reasonable responses to your requests and needs for treatment or service, within the hospital's capacity, its stated mission and applicable law.
Care that is considerate and respectful of your personal dignity; this includes consideration of spiritual, psychosocial and cultural variables and other special needs that might affect your illness, pain, suffering and recovery.
Safe, effective, quality care, as well as information regarding the outcomes of care, including unanticipated events. Obtain from physicians and other direct caregivers relevant, current and understandable information concerning diagnosis, treatment, treatment alternatives and prognosis to facilitate your involvement in care decisions.
Know the identity of physicians, nurses and others involved in your care, as well as when those involved are students, residents or other trainees.
Accept medical care or to refuse treatment to the extent permitted by law and to be informed of the medical consequences of such refusal.
Obtain information on advance directives and formulate advance directives. To appoint a surrogate to make health care decisions on your behalf to the extent permitted by law. To have your advance directives documented in your medical record, and to know provision of care is not conditional on the existence of an advance directive.
Review procedures on decision-making and hospital-wide policies on withholding of resuscitative services from patients and forgoing or withdrawing of life-sustaining treatment.
Have your guardian, next of kin, or legally authorized responsible person exercise, to the extent permitted by law, the rights described on your behalf if you have been found incompetent in accordance with law; found by your physician to be medically incapable of understanding the proposed treatment or procedure; unable to communicate your wishes regarding treatment; or are an unemancipated minor.
Receive the visitors you designate, without restrictions on the basis of race, color, national origin, religion, sex, gender identity, sexual orientation or disability. To deny or withdraw consent for a specific visitor at any time.
Information about the hospital's patient rights, policies and procedures for the resolution of any patient complaints.
Participate in the consideration of ethical issues arising from your care and education for you and your caregivers on ethical issues in healthcare.
A full explanation of any restrictions placed on your communications. Any such restriction will be based on therapeutic effectiveness as appropriate and determined by your doctor in consultation with you or your surrogate decision maker.
Be informed of any human experimentation or other research/education projects affecting your care or treatment.
Security, personal privacy and confidentiality of medical information.
Expect all communications and records pertaining to your care will be treated as confidential by the hospital, except in cases where reporting is permitted or required by law, such as public health hazards or suspected abuse.
Access information contained in your medical record, within the limits of the law.
Ask and be informed of the existence of business relationships among the hospital, educational institutions, other health care providers, or payors that may influence the patient's treatment and care.
Reasonable and appropriate continuity of care when appropriate and to be informed by physicians and other caregivers of available and realistic patient-care options when hospital care is no longer appropriate.
Resolve dilemmas about care decisions, including end-of-life decisions.
To have your pain level acknowledged, assessed and managed on a regular basis; and to receive education about the benefits and side effects of pain management.
Patient Portal
Key Phone Numbers
Visiting Hours
Wheelchair Assistance
Wi-Fi at Robinson Memorial Hospital
Robinson Memorial Hospital
Robinson Medical Arts Building
Robinson Professional Center
Robinson Health Center at Aurora
Robinson Health Center at Brimfield
Robinson Health Center at Garrettsville
Robinson Health Center at Kent
Robinson Health Center at Mantua
Robinson Health Center at Streetsboro
Robinson Rehab Center and Sport Clinic - Kent
Robinson Health Affiliates, Inc.
Robinson Healthcare Partners
Best Places to Work
Continuing Medical Education
Speakers' Bureau
Robinson Memorial Hospital
6847 North Chestnut Street
Ravenna, Ohio 44266
(330) 297-0811
Contact Us
About Robinson
Terms & Conditions
Privacy Policy
Site Map
For Employees


text:
Review for The Day Michael Jackson came to town!
The Day Michael Jackson came to town!
(#) nutella 2007-01-21 09:23:40 AM
Love it! We are so creative :-)
You won't see stories with a lower score when you browse or search. Log in to adjust filter.
Featured Story
Kryptonian Wizard
by Isebas (PG-13)The night before turning 17 Harry discovers that he is adopted, and an ALIEN. Harry finds out he is ...
In: Harry Potter
Site Stats
- Authors: 278537
- Stories: 39857
Recent Stories
I am No one. Who are you? Are you someone, who's No one too?
by DeJaSins (G)Do you know what it's like to be invisible?
In: Poetry
If You Want
by therealgloria (PG-13)"I've got a band. We've been lookin' for a couple of girls to dance on the sides of the stage....
In: Guns n' Roses
by Noizchild (R)Fourth one of my series, "Ghost Doll." Anna's past nightmares come back to haunt her out of the blue...
In: Yami no Matsuei
Venus Butterfly
by Noizchild (R)Fifteenth book in "Ghost Doll." One confession in San Diego, California from Anna's aunt, Allison, w...
In: Yami no Matsuei
Demolished Happiness
by Car_Drive_Flashbacks (G)blah oueljfnwe blah. OUDLGJF n;ld. Sorry the rhythm jumps everywhere. I was in class and my mind was...
In: Poetry


text:
I only drew Donald Trump for my Zombie Walk of Fame series to see exactly how he would look with his face being blown off… Check in at my website for new zombifications daily as we count down to Halloween 2011! Click HERE for the entire stream of the countdown!
(Source: dregstudios.com)


text:
Learn how you can train your brain to heal your body
Neurofeedback is a type of biofeedback that focuses on the brain and central nervous system.
Like other forms of biofeedback, it enables you to change your physiological activity—in this case, brainwaves—in order to enhance your health and well-being. Neurofeedback uses electroencephalography (EEG, a common diagnostic tool in neurology) to "feed back" information to your brain.
How Does Neurofeedback Work?
Neurofeedback identifies brainwave patterns associated with negative symptoms and provides feedback that encourages the production of more positive patterns—such as slowing down brainwaves, speeding them up, or acting on excitatory/inhibitory pathways.
Unlike conventional biofeedback, in which you concentrate and willfully try to change physiological reactions, you're not "telling" your brain to calm down or rev up. This therapy focuses more or less on a subconscious level.
What Is a Typical Treatment Session Like?
Before treatment begins, you usually undergo a quantitative EEG that "maps" the electrical activity in your brain and identifies patterns that are likely causing symptoms.
When you undergo neurofeedback, electrodes are applied to your scalp that monitor the brain's electrical impulses and transmit them to a computer. Then you simply sit back and watch a program on the computer screen.
If you're focused and relaxed, you'll enjoy the images and sounds on the computer. When your attention wanders or you become anxious, the pictures and sounds fade in and out until your brain gets back on track.
Sessions last about half an hour and are repeated as needed, usually six to 20 times, or as long as it takes for you to normalize brainwaves on your own.
Brain entrainment may also be used during neurofeedback sessions. This involves wearing special glasses that employ blinking lights to guide your brain toward specific wavelengths. The end result is an enduring sense of profound calmness and well-being similar to meditation or deep relaxation.
What Conditions Is Neurofeedback Good For?
Neurofeedback treats a variety of diverse conditions, including, but not limited to:
- Addiction
- Anxiety
- Autism
- Cognitive problems
- Depression
- Epilepsy
- Fibromyalgia
- Impulsivity
- Insomnia
- Migraines
- Post-traumatic stress disorder
- Tinnitus
Learn more about how we use neurofeedback at the Whitaker Wellness Institute.
More Dr. Whitaker Advice on Clinical Therapies
Enjoy What You've Just Read?
Get it delivered to your inbox! Signup for E-News and you'll get great content like you've just read along with other great tips and guides for Dr. Whitaker!
Meet Dr. Whitaker
For more than 30 years, Dr. Julian Whitaker has helped people regain their health with a combination of therapeutic lifestyle changes, targeted nutritional support, and other cutting-edge natural therapies. He is widely known for treating diabetes, but also routinely treats heart disease and other degenerative diseases. More About Dr. Whitaker
Dr. Julian Whitaker's Favorites
Glucose Essentials (30-day supply)
Item# GES
Ensure healthy blood sugar, balanced insulin levels and all-day energy.
Restful Night Essentials (30 day supply)
Item# RNE
Get a restful, recharging night's sleep -- tonight and every night.
Vision Essentials® (30-day supply)
Item# VES
18 powerful, clinically-researched nutrients for total eye health
Forward Plus Daily Regimen® (60 packets, 30-day supply)
Item# REG (Packets)
Make GREAT HEALTH your top priority with the advanced nutritional foundation in Forward