text:
A place to be (re)educated in Newspeak
Sunday, June 24, 2007
Constructors Considered Harmful
Of course, the problem is that constructors don't work very well all. Understanding why helps to understand what "object oriented" really means, and why it is important.
Constructors come with a host of special rules and regulations: they cannot be overridden like instance methods; they need to call another constructor, or a superclass constructor etc. Try defining mixins in the presence of constructors - it's tricky because the interface for creating instances gets bundled with the interface of the instances themselves.
The basic issue is a failure of abstraction, as Dave Ungar put it in his OOPSLA keynote in 2003.
Suppose we have a constructor C(x) and code that creates objects by calling it. What happens if we find that we actually need to return an instance of a class other than C? For example, we might want to lazily load data from secondary storage, and need to return some sort of placeholder object that behaves just like a C, but isn't? What if we want to avoid reallocating a fresh object, and use a cached one instead?
So it's clear that you don't want to publicize your constructors to the clients of your API, as all they can do is tie you down.
The standard recommended solution is to use a static factory. This however, does nothing to help the other victims of constructors - their callers. As a consumer of an API, you don't want to use constructors: they induce a tight coupling between your code and specific implementations. You can't abstract over static methods, just as you can't abstract over constructors. In both cases, there is no object that is the target of the operation and a conventional interface declaration cannot describe it. The absence of an object means that constructors don't have the benefits objects bring - dynamic binding of method calls chief among these. Which is why constructors and static methods don't work well, and incidentally, aren't object oriented.
Having dismissed constructors and static factories, it seems we need to define a factory class whose instances will support an interface that includes a method that constructs the desired objects. How will you create the factory object? By calling a constructor? Or by defining a meta-factory? After how many meta-meta-meta- .. meta-factories do you give up and call a constructor?
What about using a dependency injection framework (DIF)? Ignoring the imbecilic name, I think that if you're stuck with a mainstream language, that may be a reasonable work around. It requires a significant degree of preplanning, and makes your application dependent on one more piece of machinery that has nothing to do with the actual problem the application is trying to solve. On the positive side, it helps guarantee employment for software engineers. That said, it's important to understand that DIFs are just a work around for a deficiency in the underlying language.
So why not get rid of constructors and have a class declaration create a factory object instead? Well, Smalltalk did just that a generation ago. Every time you define a class, you define the factory object for its instances. I won't explain the Smalltalk metaclass hierarchy here. Suffice to say that it is a thing of beauty, resolving a potential infinite regress with an elegant circularity.
Despite this, Smalltalk still does not provide an ideal solution for creating and initializing instances. While it preserves abstraction, it does not easily enable the class to ensure that every instance will always be properly initialized, or that initialization will take place only once. To be sure, these are difficult goals, and Java, despite enormous efforts and complexity focused on these goals, does not fully achieve them either. However, it comes close - at the cost of abstraction failure brought about by the use of constructors.
So can we do better? Of course. The solution combines elements of Scala constructors (which are cleaner than Java constructors) with elements of the Smalltalk approach.
Scala defines a class as a parametric entity, with formal parameters that are in scope in the class body. The class name, together with its formal parameters, define the primary constructor of the class. This allows the instance to initialize itself, accessing the parameters to the constructor without exposing an initialization method that can be called multiple times on an instance. The latter is one of the problems in Smalltalk.
We use a similar device to provide access to the constructor parameters from within the instance. However, we require that the class provide a method header for its primary constructor. Instead of creating instances by a special construct (constructor invocation) as in Java or Scala, we create them via method invocation. The class declaration introduces a factory object that supports the primary constructor as an instance method.
Because we create objects only by invoking methods on other objects, we preserve abstraction. We can create objects by invoking the constructor method on a parameter. We can always define alternative factory objects that support the same constructor method with different behavior, and pass them instead of the class. Furthermore, using a message based programming language, references to the class' name are always virtual, and can be overridden.
Unlike Smalltalk, the factory class is not a subclass of the superclass factory class. This prevents the possibility of calling superclass constructors and thereby creating partially initialized objects (doing this requires special effort in Smalltalk - one has to manually override the superclass constructors so that they fail; this is tedious and error prone, and not done much in practice).
I know I should be writing examples to make this all clear. However, this post is getting long, so that will wait for another post. I'll be speaking about some of this work next month a the dynamic language workshop at ECOOP. By then, I imagine I'll put out some examples of what we've been doing these past few months.
37 comments:
- James said...
I'll be speaking about some of this work next month a the dynamic language workshop at ECOOP. By then, I imagine I'll put out some examples of what we've been doing these past few months.
Well that makes me want to go to ECOOP
(http://2007.ecoop.org/)... no wait, I am going: it's just that I'm going to miss the DL workshop. Botheration!
- Ricky Clarkson said...
Perhaps the real problem with the factory is the term 'static method', possibly an oxymoron. Lisp has top-level functions that can be redefined. They're not static as in early-bound, but they are equivalent to static methods in other ways.
If you replaced a constructor with a static method/function, but one that could be redefined, I think that would be reasonable.
In Java, aspects can emulate this, apparently.
- Stefan Schulz said...
@Ricky: You would have the same problems as in Smalltalk, where you have to override all instance creating class methods of all superclasses to keep control over the construction process. Or would you restrain calling only those static methods locally defined?
Most of the factory issues in Java are IMO due to Java's inability wrt. Meta-object programming. I had a short entry in my blog* on Meta-Interfaces for Java to tackle things like static (factory) methods without changing the Java class model, but this would, of course, only be a workaround.
I'm quite nosy about a different approach for creating instances.
- Jonathan Allen said...
> Suppose we have a constructor C(x) and code that creates objects by calling it. What happens if we find that we actually need to return an instance of a class other than C?
Do a global search and replace, if it becomes necessary. Code isn't written in stone, it can be changed easily. Why do you think it's called "software".
> So it's clear that you don't want to publicize your constructors to the clients of your API, as all they can do is tie you down.
Yea, especially if the consumers have the audacity to inherit from one of you classes. Better make all of your method non-virtual as well just to be on the safe side.
> As a consumer of an API, you don't want to use constructors: they induce a tight coupling between your code and specific implementations.
So does referencing the library that contains it.
- Ricky Clarkson said...
Stefan, I began an experiment in my own code a few years ago, wherein I stopped subclassing. It's ongoing, and has led me to think that subclassing harms reusability (for a start, mixins would do a better job for most of the use cases).
I don't quite understand your question - to 'swap out' the implementation of a function I would do something akin to:
(let ((make-point make-debug-point))
. (test-making-points))
..where make-point is the factory, and make-debug-point is an altered version of that, say, with extra logging. Then, any calls to make-point inside test-making-points will call make-debug-point.
When you say to do a global search and replace, do you really mean global? Can you search and replace on all your clients' code?
It's much easier to change code after it has been loaded into an environment (depending on the environment), than to change the source code.
"So does referencing the library that contains it"
Not so much. A constructor is more than a binding to a method name, it's a binding to a particular class name, whereas a static factory method is just a method - it can compatibly be changed to return an instance of a subtype.
- hlovatt said...
Why not have a **single** **private** Java like constructor and allow traits to specify static methods that must be present but can be hidden and **must** have a default implementation. If you had a Scala like syntax for the private constructor you could then write code like:
trait MyInt {
__static MyInt instance( Integer i ) {
____return MutableInteger.instace( i );
class ImmutableInt( Integer i ) implements MyInt {
__public static Foo instance( Integer i ) {
____return this( i );
final MyInt i = MyInt.instance( 1 );
To keep it all nice and OO static could be a field that is a singleton instance automatically created, i.e. static used like Java is just sugar. Like you do in Scala using Object.
- Greg Jorgensen said...
Some of your criticisms are specific to Java or some set of languages, but not to all OO languages. Constructor aren't inherited so of course they can't be overriden. Some example code illustrating the problems would help.
Are these real-world problems or just abstract complaints? Lots of people have used C++, Java, and other OO languages to build real applications, so while constructors may have some annoying properties I don't think they are a fatal flaw, or even harmful.
Constructors are intended to initialize an object after it is created but before it is used by other code. They are not a good place to put a pile of code. When I hear complaints about how limiting constructors are my first reaction is that the programmer is trying to do too much in the constructor.
It seems that the issues you bring up could be solved by writing an empty constructor and adding a method to your class to do the complex initialization. You'd have to call it explicitly after creating the object, but that's an idiom you could get used to, or roll up into a static factory function in the class.
- riffraff said...
I don't understand why multiple initialization is a problem, eve if I understand why non-method constructors may be. If the problem with Smalltalk's #new is that it relyes on a public initializer that can be called multiple times isn't it enough to just follow the python & ruby approach?
Just make the allocation (allocate/__new__) and initialization (initialize/__init__) methods not accessible from outside of the object, leaving only the constructor/factory (Class#new/Class.__call__).
Zero complication and solves everything., no?
- Ricky Clarkson said...
"Lots of people have used C++, Java..."
I would hope that C++ and Java aren't the pinnacle (1/2==0 can't be the best we can do). Also, go back 20 or 30 years and you could say "lots of people have used goto liberally and built real software", or "lots of people have killed other people and gone on to live out a full and happy life" and make just as little sense.
"my first reaction is that the programmer is trying to do too much in the constructor"
Look beyond your first reaction - Gilad is not talking about the contents of constructors.
- Joao said...
I enjoyed this article, thanks!
My experience in the latest years has been with Ruby and this year with JavaScript. In Ruby we have a classical model with mixins which work fine, but I've used a custom alternative in Ruby which has not been very developed yet.
Still on JavaScript, it's interesting to use a Hash which passes the parameters to the constructors of objects, so it does not enforce a parameter order or even a minimum set of parameters necessarily. Douglas Crockford promotes this usage with Hashes as parameters when one has multiple parameters or even when one is forward looking, indeed. :-)
Like him, I've come to like it as well, while in Ruby I've tended to use standard parameter filling as Ruby kind of enforces the checking which can come in handy sometimes, while in JavaScript there's even less checking anyway.
I want to tell you that people are having lots of fun with JavaScript using a similar model to mine. People in JavaScript mix "objects" all the time, for instance. And some inheritance frameworks are appearing in JavaScript. I have my own as well which is very practical in nature and at its core has some standardized configuration of classes' objects, as it's a repetitive process. And in every class I have what I called a "gut" variable which holds the inner variables/methods of the class, even though "gut" is public (and has a horrid name to remind me of not relying on it too much on external classes. hehe).
- Cedric said...
Hi Gilad,
You should know better than speaking to an audience of developers and not showing them any code samples :-)
Please show some code, because as far as I've seen, none of Smalltalk or Scala solve any of the static factory deficiencies that you pointed out. I would love to be proven wrong.
As for the static factory, it's actually quite easy to make it play nice with polymorphism and make it overridable so that it will return subclasses (possibly mocks or specialized versions) of the same class, and I'm quite sure you already know that, so I don't think that your description of the Java weakness is justified.
But let's see some code so we can be sure we are talking about the same thing.
Looking forward to your follow-up.
- Cedric said...
The problem with Hash-initialized constructors is the loss of static typing, which makes the code more error prone. A better approach is to fully support named parameters so that the compiler can enforce type safety. And by the way, this can be easily emulated in Java with the following, albeit very rarely used in Java, idiom:
new Window().background(RED).width(200).height(100);
- Stefan Schulz said...
I would actually prefer a builder approach, so at initialization time you can be safe to have all the variables needed. E.g.:
The problem I see with the initialization-method idiom and the above code is to not being able to ensure completeness for construction.
With factories, the factory itself usually is a kind of builder class having a no-arg-constructor. The whole factory-class approach would be unnecessary, if one could define classes or class interfaces (which would enable definition of factory methods).
Sorry, a bit late: in Smalltalk, if your superclass defines new: for creating an instance, subclasses would have to override new: to control it being called (otherwise the superclass class-method will be called due to full inheritance). As there is no constraint on how to name a class method that creates an instance, the number of such methods accumulates, and changes to a class in midth of a hierarchy by adding a new constructor method could cause problems.
If one sees inhertiance as being harmful, though, maybe a new language not allowing inheritance but mixins for reuse might work better?
- Greg Jorgensen said...
"I would hope that C++ and Java aren't the pinnacle (1/2==0 can't be the best we can do). Also, go back 20 or 30 years and you could say "lots of people have used goto liberally and built real software", or "lots of people have killed other people and gone on to live out a full and happy life" and make just as little sense."
Didn't your mother teach you better manners than that? And didn't you learn the forms of rhetoric in school?
"Look beyond your first reaction - Gilad is not talking about the contents of constructors."
Great, that clears everything up. Thanks!
- Andrew Dalke said...
Define "mainstream object oriented programming". There's C++, Java, C# then ... what? Python? Ruby?"
If you consider Python a mainstream language then there are several corrections to your comment.
- the Python constructor does not need to call the superclass constructor.
- "What happens if we find that we actually need to return an instance of a class other than C?" Then either 1) make C be a function. There's no special "new" syntax required so you can't tell if "C" is a class constructor or a factor function. Or 2) change how __new__ works, which is the special method to create object instance, later followed by the __init__ which usually does the initialization. Oops, and should also mention 3) use a special metaclass.
If the problem is "C++" or "Java" or "C#" constructors considered harmful" then say so. Or perhaps it's that "function calls and class instantiation should be the same". But the problem is not general to OO systems, that I can tell.
- Ricky Clarkson said...
gregjor, I don't consider it bad manners to point out that something makes no sense.
Gilad said: "Suppose we have a constructor C(x) and code that creates objects by calling it. What happens if we find that we actually need to return an instance of a class other than C?"
I don't see how he's talking about the contents of the constructor. He's talking about the limitation that a constructor cannot control its own return type or whether it actually instantiates anything or not (perhaps it should reuse an existing instance, etc.). In other words, a constructor is too low-level. A static method is more flexible.
- Paul Hammant said...
I co-lead PicoContainer (Java), and I've just chatted to Rod-Johnson (co-leads Spring Framework) and we've never heard of a 'so-called' DIF as an acronym nor 'Dependency Injection Framework' as a collective term for PicoContainer, Spring, Guice, Hivemind etc. It might be a newer term, coined since 2003 when we met (in small committee) and coined the term 'Dependency Injection' and its relation to Inversion of Control (IoC).
Your article makes good points about Ctors being final, and unspecified contractually, but nobody has a problem with this. They are discerning as to when to use new, a factory, or a DIF (oops!). Outside of the DI world, ServiceLocator and friends can provide alternate impls if thats what you really need. The aforementioned frameworks also provide nice AOP style ways of intercepting instantiation for all sorts of shenanigans.
- Gilad Bracha said...
1) "We've never heard of .. DIF as an acronym".
I believe you. I used an acronym, since Dependency Injection is such a mouthful. You yourself noted how slipped into using the acronym it your post, so I assume you acknowledge the value of a pithy way of referencing the concept.
I believe I've seen "Dependency Injection framework" elsewhere, so I'll just take credit for the acronym.
Since you take credit for the term "Dependency Injection" itself, maybe you can explain what dependencies are being injected? It seems they are being eliminated, not injected. Or maybe you are eliminating them by lethal injection :-)
2. "Nobody has a problem with this". Well, I do. And I think others do as well. The fact that you can get around these problems with enough machinery and planning doesn't mean the situation is ideal, or even good. Maybe you've seen this charming video:
Ruby certainly has its own problems, but clearly *somebody* is less than enamored with the Java way of doing things.
- Gilad Bracha said...
Your meta-interfaces proposal is definitely a step in the right direction. There were several similar suggestions over the years. No doubt you can find them in Sun's bug database - things like "static methods in interfaces" etc. Alas, even though I was pretty positive about some of them, we never pushed them through.
- Bob said...
Hi, Gilad. I don't know if you remember me from the closure meetings or not, but I created Guice. We understand and agree fully that DIFs (and most patterns for that matter) are just workarounds for language deficiencies. Such is life, at least until you release your next language. ;)
If you haven't gotten a chance to look at Guice yet, please check out my talk. I caught your "software as a service" talk at Google a few months back and was surprised by how many of the philosophies Guice shares.
- Gilad Bracha said...
Hi Bob,
Nice to hear from you again. I knew you had done Guice (Thanks to Neal Gafter's blog, I think). Now I watched your talk as well. The issues of separate compilation, modularity, loose coupling are indeed themes that come up over and over. My interest in message based programming languages is tied to this - it makes everything loosely coupled. More later.
- Greg Jorgensen said...
Here's what doesn't make sense:
Gilad said: "Suppose we have a constructor C(x) and code that creates objects by calling it. What happens if we find that we actually need to return an instance of a class other than C?"
Constructors in Java, C++, and most other languages don't return an object or a reference to an object; the return type is void. The new operator (or its equivalent) creates the object, then calls the constructor to initialize the object. The plain fact that constructors are optional clearly shows the difference between creating an object and optionally initializing it.
I don't see how he's talking about the contents of the constructor. He's talking about the limitation that a constructor cannot control its own return type or whether it actually instantiates anything or not (perhaps it should reuse an existing instance, etc.). In other words, a constructor is too low-level. A static method is more flexible.
Another interpretation is that someone is not understanding what constructors are for. Constructors (and destructors) are hooks that the object create/destroy mechanism of the language calls; they are not required. Since constructors don't create objects in the first place, arguing that they aren't very good at it is, as you say, nonsense.
I agree that in some circumstances factory functions that create objects are better than the new/constructor combination. And factories can be implemented as static class functions. No argument there. But pointing out that in some cases factory functions make the most sense doesn't demonstrate that constructors are flawed or "harmful."
- Ricky Clarkson said...
You cannot make a call to 'new X()' return a Y, where Y extends X. You can make a call to X.newInstance() return a Y. That's how constructors are inflexible. Put one in your API and you make it hard to change implementation details later.
- Stefan Schulz said...
@Ricky: The problem with using a factory method is that you cannot subclass properly. To create an instance of the super class being properly initialized, the subclass must somehow be able to create an instance of itself where the inherited features are properly initialized, too. And it obviously cannot call the superclass' factory method.
Of course, one could argue that inheritance is considered harmful. But in that case, Constructors wouldn't matter anymore, as it becomes mandatory to use factory classes/methods who "know them all".
- Ricky Clarkson said...
One of the reasons that I consider subclassing bad in Java is the dependency on superclass' constructors. I don't know whether you've (Stefan) ever done OO-like code in C. You can subclass by creating a struct (the subclass) that has another struct as its first member (the superclass), directly, not a pointer, and then you can cast pointers to instances of the subclass to be instances of the superclass.
Java and C++ work in a similar way, but you can't see that so easily. In other words, all subclassing is is the embedding of one object in another (not composition, as no pointer is used). If you altered this model somewhat so that subclassing actually did use a pointer, then I don't see a reason why you couldn't 'subclass' an arbitrary object returned from a factory method. I'm not sure that the word subclass would apply there (subobject?).
The superobject could be passed via the constructor, even as part of an anonymous class:
public class Sub extends !Super
. . public Sub(Super soup)
. . {
. . . . new(soup);
. . }
new soup()
. . blah
where soup is a reference to the superobject.
I might experiment with this in Lisp sometime - it's quite a good language for language experimentation.
- Greg Jorgensen said...
You cannot make a call to 'new X()' return a Y, where Y extends X.
Right. That's what 'new Y()' is for. None of that has anything to do with constructors per se, though, because 'new X()' can't return an instance of type Y whether class X has a constructor or not.
You can make a call to X.newInstance() return a Y.
Right... we agree that factory functions are the usual solution to the problem you're describing, and that factory functions can be written as static methods of a superclass.
That's how constructors are inflexible. Put one in your API and you make it hard to change implementation details later.
I'm still not persuaded that this has anything to do with constructors. I agree that constructors in most languages create a dependency on the superclass that you may not want, but that's an implementation detail. Not all languages require a call to the superclass constructor or make one for you, like Java does.
The frustration Gilad expressed in the original post seemed to be about inflexibility when instantiating objects. The issues you are raising are more akin to the fragile base class problem. Both are inherent limitations of OO languages.
- Ricky Clarkson said...
"Right. That's what 'new Y()' is for."
new Y() doesn't help if your callers are calling new X(), but you want them to get a Y.
"I'm still not persuaded that this has anything to do with constructors."
Gilad seemed to make two main points - that calling constructors is inflexible, and that the model of having to call the superclass constructor is bad. You seem to have misunderstood me on the former, or missed Gilad on it. That's the only point I've been talking about. We probably agree on that one.
- Unknown said...
This looks to be a problem of class-based OO, not prototype-base. I like the smalltalk way because is just objects and messages, the constructor is just a method of and object. It is true that you cant ensure proper initialization (is up to you) or that initialization occurs only once, but that is because the initialization is a method not some special portion of code. I dont care living with these problems.
You are right when you talk about the factory class is a subclass of the superclass. I think that they shouldnt be relate by inheritance.
Great post!
- Unknown said...
Seems to me the real problem is where and how should we do composition and at what level. Java constructors and classes seem like assembly language type constructs. If we could have something higher level for composition, then we could do more metaprogramming.
- Bruce Wallace said...
All the above are programming technique specific objections...mine are more general. See
For the Java/Class vs Javascript/prototype stuff, check out ExistentialProgramming.com
- Gilad Bracha said...
Hi Bruce,
Yes, my objections are programming technique related. I tend to take a technical view of these issues and always have - even 20 years ago, when I was more enamored of philosophy than I am today.
I find that philosophy is what we use when we haven't a clue. Philosophy is in constant retreat as science expands its reach, and true understanding replaces sophisticated speculation. Physics has pretty much subsumed natural philosophy, for example. Philosophy can lead to real insight, but it happens very rarely.
So, if you can formulate interesting programming constructs, idioms or methodologies based on philosophy, more power to you.
I read your posts with interest, but I don't think you're there yet.
- shelby said...
Gilad is making the correct point that in best design practice composable modules (i.e. APIs) should expose abstract interfaces but not their concrete classes. Thus new becomes impossible, because there is no concrete class to instantiate. Apparently Gosling realized this.
Static factories in abstract interfaces can accomplish this with type parametrization.
Gilad Bracha wrote:
The standard recommended solution is to use a static factory [...] You can't abstract over static methods
Static methods can be abstracted (over inheritance) with type parametrization, e.g.
interface Factory<+Subclass>
newInstance() : Subclass
where the + declares that Factory can be referenced (assigned) covariantly due to Liskov Substitution Principle. The + is unnecessary in the above example, but exists in the syntax generally to perform checking against LSP.
Thus any API can abstract over any publicly exposed Factory[T] by associating them privately with instances of Factory[IheritsFromT].
On the topic of concrete implementation inheritance and constructors, the Scala-like mixins can handle this, because external parameters for constructors are not allowed in a trait implementation. Thus each mixin is detached from the external inheritance order. I have taken this a step further in my design for Copute, because I force the separation of purely abstract interface and purely concrete mixin implementation, thus every mixin has to inherit from an abstract interface and can only be referenced as a type via that interface, i.e. concrete mixins are not types in any scope other than the mixin declaration.
Very interesting read. I agree with problems outlined here but on the other side I don't get your solution to them. I don't know much about smalltalk metaclasses but definitely take a look at them soon.
But based on what I know about newspeak you we can do a following:
1. Make classes to be a first class values so we can abstract over classes used in particular module.
2. Make constructor to be a instance method of the class object instance.
Does I understand you correctly?
Side note: funny to say but it looks like javascript is the only mainstream language where you can implement a similar thing since every obejct is created throw function invocation and you can easily abstract over these functions.
Q: Does newspeak constructor allow you to return arbitrary object?
- Gilad Bracha said...
Hi Aliaksandr,
Yes, you understand things correctly it seems to me.
The solution described in the post is the Newspeak solution. You don't have to anything special in Newspeak. Each class has a primary factory which creates properly initialized instances of it.
The key thing is that the factory is always called as an ordinary method on an object which might be the class or it might be something else. You don't know if you are calling the primary factory or another class method or an arbitrary instance method.
- shelby said...
Gilad that is the unit function in the Monad or Applicative.
- Gilad Bracha said...
If by "that" you mean that unit acts as a constructor, sure. Indeed, monads can be viewed as objects that implement a particular interface and contract which you might call Monad or Bindable or Comprensible (as in "usable by comprehensions") or just AbstractCollection.
None of which justifies the religious awe in which they are held.
When my hate mail supply drains out, I might write this up. Or maybe better to have Erik Meijer explain this to people more politely than I do.
- DevOps said...
It was a great information and Its really worth reading it.
Python Training in Hyderabad
Python Training
Python Online Training
Python Online Training in Hyderabad
Python Institute in Hyderabad
Python Course in Hyderabad
About Me
Blog Archive
- ► 2010 (12)
- ► 2009 (14)
- ► 2008 (13)
- ▼ 2007 (10)


text:
powered by Caredove
advanced search
Meals on WheelsProvided at homeDelivers a nutritionally balanced noon hour hot meal by volunteers who provide a social contact and a safety check for the client. Special diets may be accommodated. Frozen meals may be available.
Rides & TransportationProvided at homeProvides door-to-door rides for seniors or adults who have a disability to attend medical and therapeutic appointments, social activities and perform other daily tasks such as shopping trips.
Telephone Reassurance & Safety ChecksProvided at homeProvides regularly scheduled phone calls to ensure the safety for those with health issues or who experience loneliness or depression.
Home Address
Search near a home address, city or postal code
25 William Street, Brantford25 William Street, Brantford
Find and book community health referrals online with Caredove.
To begin, specify your location, then select a search category.
To begin, specify your location, then select a search category.
Sign Up
Who is this for?
(requires sign in)

subset: commoncrawl


text:
More than 20 companies have so far purchased the tender documents, including Mitsui, Enel Green Power and China's HTG Development Group, as well as Egypt's El Sewedy Group and Heavy Industries Services Company (HISCO), the state-run New & Renewable Energy Authority (NREA) confirmed.
After a number of delays, the deadline is currently set at 30 July.
The land concessions will be awarded to the highest bidders above a minimum of 2% of the annual output.
Successful bidders will be able use the energy for their own needs or sell it to third parties over the national grid.
Egypt has 550MW of operating capacity, built with assistance from Denmark, Spain, Germany and Japan. It is now seeking to attract private sector investment in order to achieve its target of 7.2GW online in 2020.


text:
Spring Valley Auto Glass – What Should I know?
Simply put, this is glass that you would find in an automobile. Not too many know that in Spring Valley there are two major forms of auto glass. Each one is used on certain windows in the automobile. Both types of auto glass are more impact resistant and stronger than regular glass.
What Are the Different Kinds Of Windshield Replacement Spring Valley Services that are Available?
Laminated safety glass-this glass is generally used on a car's windshield. It is comprised of a couple of pieces of glass that has a slim layer of vinyl. The glass is then heated and pressed together in an autoclave, which is a type of oven. When this glass receives a tough impact it will shatter also but usually the shattered pieces will stick to the vinyl and not fall on the ground.
If the windshield just has a tiny vein or nick, the auto glass professional may be able to repair the tiny vein or nick to keep it from spreading further. The repair will generally take fewer than thirty minutes in Spring Valley. The vein or nick is cleaned thoroughly and dried. Resin is injected and a material like Mylar is used to hold it in place. The professional cures the resin by using an ultraviolet light.
Automotive Glass Replacement - How to Replace Car Glass
There is a general consensus that windshield replacement can actually be performed by almost anyone. The glass pieces that replace it in your car are specifically shaped, and sized, to fit the make, and model of car that you drive. Almost anyone can remove the old piece and install a new one. It would be nice if auto glass replacement was that easy to do, but the truth is that you need a professional to replace any broken panels in your vehicle.
If the glass that is replaced in your car is not replaced correctly, using the proper glass pieces designed for your car, then you are in danger of them breaking at any time. When the weather heats the panels and cools the panels if they are not properly installed they can break, or fall out of the vehicle. If this happens while you are driving the car, you, or your passengers could be injured.
When you are looking for someone to do this glass replacement, or windshield replacement, you need to ask the following questions.
• How much experience do they have?
• Do they accept my insurance?
• What types of glass can they replace?
• Where is their shop located?
• Will they come to my location to replace my glass?
• How soon can they do the work?
How Does Windshield Repair Work? - Auto Glass Repairs Explained
Were you aware that the windshield provides up to 30% of a vehicle's structural strength. In the event of a crash or rollover, the windshield supports the roof and assists the airbags in deploying. Maintaining the windshield will help to ensure safety while operating the vehicle.
In everyday driving conditions, a chipped windshield can quickly turn into a safety hazard if the chip cracks suddenly. It is impossible to determine whether a chip will crack and cause greater issue, but if it is a large chip, chances are it will eventually cause a crack if it goes unrepaired.
A chipped windshield does not mean that the windshield needs to be replaced, but the chip should be repaired as soon as possible. There are several reasons why windshield chips should be repaired rather than ignored:
Glass repair may not be covered by all car insurance policies; avoiding the need for full replacement is the best choice. Repairing a chipped windshield in relatively inexpensive, with do-it-yourself kits starting around $10. Many places offer windshield chip repairs while you are getting an oil change. This can be a convenient way to repair a chipped windshield while having other work completed on the car.
There is no way to know for sure how long a chipped windshield will go without cracking, however it is best to avoid taking chances and have windshield chips repaired as soon as you notice them.


text:
Everyone needs a place to live.
Billionaires seem to need more than one place, and are buying homes on top streets around the world for record prices, according to data from residential and commercial consultant Knight Frank published by Billionaire, a sister company of intelligence firm Wealth-X.
Property values on the most exclusive street have continued to rise in many instances against the backdrop of a recession that knocked as much as 40% off the price tags of global prime property, the data show.
"The appeal of super-prime property has rarely been higher," Liam Bailey, head of residential research at Knight Frank, said in a statement.
"Rising demand for the best properties in the best locations has been set against tight demand, with limited new supply."
According to a recent report released by Wealth-X and UBS, the total real estate holdings of the world's billionaires is estimated at $169 billion, which equates to an average of $78 million per billionaire.
(Check out the 10 Most Expensive Hotel Rooms in New York at ThinkAdvisor.)
Billionaires own an average of four homes, each with a worth of nearly $20 million, the report showed.
"The highest echelons of society grew their assets by over 5% last year according to our research, and at this level of wealth there are few forced sales of real estate," Tara Loader Wilkinson, editor-in-chief of Wealth-X and editor-at-large at Billionaire, said in the statement.
"The cachet of buying a trophy property on a famous street is clear. But annual price rises in many of these exclusive neighborhoods demonstrates that owners can increasingly afford to wait for an offer they can't refuse."
The 10 most expensive streets in the world were ranked on the basis of average price per square meter (10.8 square feet). Rises in price include currency fluctuations.
10. Avenue Montaigne, Paris
Average price per square meter: $26,000
Price change year on year: -3%
With a reputation as la grande dame of French high-fashion streets, the 350-year-old Avenue Montaigne has also become an exclusive residential neighborhood for France's wealthy and famous. Located in the 8th arrondissement in the Champs Élysées quarter, the avenue is steeped in cultural history, and is home to jewelers and upscale designers. It has also been the target of at least two sophisticated heists. In 2008, jeweler Harry Winston (located at number 29) was robbed of more than $108 million worth of diamond rings, necklaces and luxury watches, the avenue such robbery within two years for the store. The street is also home to upscale hotel Plaza Athénée.
9. Fifth Avenue, New York
Average price per square meter: $28,000
Price change year on year: +5.4%
New York's rich and famous have flocked to Fifth Avenue since the 1900s for its exclusive cachet and central location. The most expensive properties are those sold along the stretch between 59th and 96th streets, across from Central Park. In line with the recovering U.S. economy, prices here have soared more than 5% within the last year. The avenue is also one of the world's most expensive for shopping and commercial rents, featuring every top designer boutique, from Armani through to Ermenegildo Zegna. The street is home to America's most iconic landmark buildings and shopping centers, including the Empire State Building, Rockefeller Center and Saks Fifth Avenue.
8. Ostozhenka, Moscow
Average price per square meter: $29,000
Price change year on year: +3.6%
Ostozhenka is one of the oldest streets in Russia, and its most expensive. Art Nouveau buildings and famous landmarks, including the Kremlin, the Pushkin Museum and the Cathedral of Christ the Savior, line the street. Some of Moscow's most sought-after restaurants, including French/Japanese eatery Vanil at number 1 and Snobs at number 3, are located on Ostozhenka. Over the last decade, several prestigious housing units were built on the street, mostly small in size containing a limited number of apartments. The most expensive apartment ever sold on the avenue was a five-level property located in Crystal House for $48 million. A recent lack of new development has supported buyers' interest at a high level.
7. Romazzino Hill, Sardinia
Average price per square metre: $32,900
Price change year on year: stable
The Aga Khan turned the Costa Smerelda, Sardinia, into his holiday retreat in the 1960s, and billionaires have played there ever since. The region's most sought-after road, the winding Romazzino Hill, first made headlines after Italian industrialist Carlo de Benedetti sold his seafront Villa Rocky Ram for $149 million to a Russian buyer. Savills recently sold a two-bedroom apartment measuring approximately 656 square feet for an asking price $6.8 million on this street. Exclusive hotels located here include the Cala di Volpe and the Romazzino, both part of The Luxury Collection. A historical owner of this area is Saudi Arabian politician Ahmed Zaki Yamani.
6. Chemin de Ruth, Geneva
Average price per square meter: $37,000
Price change year on year: -5%
Chemin de Ruth is located in the heart of Switzerland's Cologny, close to the shores of Lake Geneva. The mansions on this stone-walled street come with more land than most other streets of Cologny, often with landscaped gardens and large swimming pools. Many properties overlook the lake, with views of the famous Jet d'Eau, the United Nations buildings and the headquarters of the World Economic Forum. The record price for a house on this street is $36 million. "There are a few very significant residences that are slowly being introduced to the market in a discreet manner," said Knight Frank's Bailey. "This is keeping the prices so high."
5. Paterson Hill, Singapore
Average price per square meter: $42,500
Price change year on year: +6.5%
The cul-de-sac Paterson Hill is widely considered the city-state's "Billionaire's Row." Prices here have jumped in the last year, largely because of currency fluctuations. Paterson Hill is located in the prestigious district 09, a residential area within close proximity to the Orchard Road Shopping Belt with its collection of designer boutiques and Michelin-starred restaurants. Various international schools are nearby. The most expensive condominium on this road is The Marq. In November 2011, it achieved a record price of $5,509 per square foot for a 3,003 square foot unit.
4. Boulevard du Général de Gaulle, Cap Ferrat, France
Average price per square meter: $79,000
Price change year on year: -5%
The highly exclusive peninsula of Cap Ferrat may be the most sought-after piece of land along the Mediterranean Côte d'Azur, resulting in its being the world's priciest non-urban location. Situated about nine miles from Monaco, the Cap has long attracted folks such as Brad Pitt and Angelina Jolie, Paul Allen and, in an earlier era, Charlie Chaplin. The Boulevard du Général de Gaulle loops around the peninsula, spotted with beachfront villas and luxury hotels, including the famous Grand-Hôtel du Cap-Ferrat. Rarely transacted waterfront properties with panoramic views over the Mediterranean tend to command the highest prices.
3. Avenue Princesse Grace, Monaco
Average price per square meter: $86,000
Price change year on year: +5%
Monaco, host to the F1 Grand Prix and the annual Monaco Boat Show, is a melting pot for Europe's super-rich. The principality's exclusive Avenue Princesse Grace winds along the sea front. At the peak of the property boom, prices on the street surpassed $135,000 per square meter. Since the recession, values have cooled to an average $88,000 per square meter, although Knight Frank believes they're on their way up again. Because of finite space, most developments on the avenue are now rental only, so recent constructions, such as the Mirabeau and number 21 Avenue Princesse Grace, command a premium. Knight Frank says many of these constructions are being bought off-plan as both an investment and a lifestyle option, as Monaco seeks to establish itself as a family destination.
2. Kensington Palace Gardens, London
Average price per square meter: $107,000
Price change year on year: +2%
Properties on the world's second most-expensive street change hands for as much as $195 million. The arrival of the Duke and Duchess of Cambridge at Kensington Palace has no doubt helped boost prices. This private, tree-lined avenue is home to the French, Russian and Japanese embassies, and some of the world's most famous billionaires. Indian-born steel tycoon Lakshmi Mittal owns number 9a and 18–19. His next-door neighbor at number 17 is Russian billionaire Roman Abramovich, owner of the Chelsea Football Club.
1. Pollock's Path, The Peak, Hong Kong
Average price per square meter: $120,000
Price change year on year: +10%
Pollock's Path, which overlooks Hong Kong Island and Victoria Harbor, is the world's most expensive street. The Peak has long been the stomping ground of Hong Kong's super-rich. Prices on neighboring Severn Road and Barker Road rival those of Pollock's Path, chic new developments on this winding path have pushed up prices. For example, Skyhigh, developed by Hong Kong movie star Stephen Chow at number 10–18 Pollock's Path, set a record in 2011 when apartment number 10 sold for $103 million. That same year, the former French Consulate at 8 Pollock's Path sold for $75 million.
– Check out these Top 10 lists from ThinkAdvisor:


text:
This is a follow-up from my blog post last month here on SQL Server Pro about utilizing common traditional reporting tools like Excel and Report Builder with the new SQL Server 2012 Tabular models. I've received a few notes about some confusion concerning the processes to publish PowerPivot-generated models and the Visual Studio SSDT-generated models to SSAS 2012. I was sent a question pointing to the currently empty Books on Line entry on the "Restore from PowerPivot" technique that I was advocating.
Related: SQL Server 2012 Business Intelligence Enhancements
So, it seems like a good idea to dive a little deeper into 2 methods to publish your tabular models into SSAS 2012, again without the benefit of SharePoint 2010. In my mind, SharePoint 2012 provides the cleanest and best mechanism to publish PowerPivot-generated models because all you have to do is Save-As and publish to your PowerPivot library and then both the model and the report, if you have any charts in your XLSX, will get published automatically for you. The fact that SharePoint stores the model as an in-memory SSAS cube is golden and saves you many of these steps. That being said, let's have at it without SharePoint and fill-in those blanks from the on-line help:
You've created a PowerPivot data model that you want to share so that your business can build reports from it. Users will be able to use any tool that can connect to SSAS through the Analysis Services client drivers, including Report Builder, Excel and Power View. You cannot publish it directly from a local client SSMS because SSAS will want to "restore" a database from PowerPivot, which means you need to transfer your XLSX to the server first.
- Share a folder from the SSAS server and add that shared folder to your local PC/laptop where you've created the PowerPivot Excel workbook
- Open SSMS and connect to the SSAS 2012 Tabular instance where you want to make this model available
- Right-click on the instance-level and select "Properties." Click "Show Advanced Properties" and change the directory value in the 1st entry for "AllowedBrowsingFolders" to the name of the local server folder where the PowerPivot spreadsheet now sits on the server.
- Enter a database name, which is what SSAS will name your "cube," and now SSAS will spin that up in memory as an in-memory model when users access it, using the server's resources, not your local laptop.
Microsoft no longer calls the Visual Studio templates and framework for BI developers as BIDS. It is now SQL Server Data Tools (SSDT). You can do the same things above with an interface that looks & smells just like PowerPivot. You start by choosing "Analysis Services Tabular Project" in Visual Studio, or you can start by importing the PowerPivot that you created above into Visual Studio to manage the model through SSDT. Compare these screenshots below from SSDT in Visual Studio to my previous PowerPivot model from last month here and you'll see that they are nearly identical. One big difference, though, is that you will use a server workspace in Visual Studio to store the model in memory for in-memory analytics when creating the models instead of on your local machine as is the case with PowerPivot.
- Right-click on your project in Solution Explorer and choose "Build." Check for errors in your model and correct any that you find
- Right-click on your project in Solution Explorer and select "Properties". Set your server name, instance name and database name (cube name)
- Right-click on your project in Solution Explorer and choose "Deploy"
When you deploy the model, you will see that same dialog box that you are familiar with in PowerPivot which processes the data from the source and then deploys the generated cube on your SSAS 2012 server.
This method is much cleaner than passing XSLX files from local machine to a server as stated in the PowerPivot scenario above. However, business users that do not have Visual Studio or are not comfortable in that environment may wish to stick in Excel. In that case, you can still import that Excel file into a Tabular Model Project in SSDT and deploy from Visual Studio instead of "Restore from PowerPivot" if you are a DBA and prefer this method to the first.
Whichever method you use, you now have an SSAS cube which you can manage by processing the cube manually, scheduling refreshes, partitioning, role-based security, etc., all of the things that traditionally went into managing multi-dimensional cube in SSAS pre-2012 and non-tabular. But your time to production just increased exponentially because of the ease of creating these models and because of PowerPivot.
I'll strive to lay-out those management processes in up-coming blog entries for SQL Server Pro BI Blog here in this space. But you should now see that this is another area where SharePoint 2010 comes in handy. You can set scheduled refreshes from your PowerPivot models in SharePoint that will automatically process data that was updated from your data sources, so that you don't need to manually generate jobs in SQL Server to do that.


text:
In an attempt to counter a surge in vehicle thefts, drivers in Dubai will face a fine of 300 Emirati Dirhams (about US$81) if police find their cars unattended with the engines running while parked.
It is apparently not uncommon in Dubai for a driver to simply let the car run while ducking into a store or bank or mosque, and it is also increasingly common for those idling cars to be stolen; at least ten percent of car thefts happen when the perp simply drives away with an empty idling vehicle.
Authorities also strongly recommend that drivers lock their doors when the vehicle is unattended and avoid carrying valuable papers or other items in their cars. No word yet on whether police also suggest that drivers use headlights after sunset and add more gasoline to the tank when it runs low.
Photo Credit: Åndrey


text:
Check BulbaNewsNOW for up-to-date Pokémon news and discuss it on the forums or in the Bulbagarden Discord server.
| Reversing the Charges
First broadcast
English themes
Japanese themes
Reversing the Charges (Japanese: ドッキリ!ビックリ!エレキッド!! Startling! Frightening! Elekid!! is the 154th episode of the Advanced Generation series, and the 428th episode of the Pokémon anime. It was first broadcast in Japan on December 1, 2005 and in the United States on October 7, 2006.
|Spoiler warning: this article may contain major plot or ending details.
On the way to the Battle Pike, Ash and his friends spot some strange and stormy weather nearby. What's more, an irritable Elekid is busy zapping all the local Pokémon! Pikachu and Phanpy try to stop Elekid, but in the confusion, May's Pokémon Egg lands on Elekid's head and Elekid gets away. Team Rocket finds Elekid—and the Egg—but Elekid zaps them too and now Mime Jr. is lost as well!
Ash and his friends find Mime Jr., who tags along as they search for May's Pokémon Egg. Meanwhile, Elekid continues to use its Electric-type moves on everyone who crosses its path. Lightning from that nearby storm has overcharged it, so now it has to release the excess energy. When Ash realizes what's going on, he has Pikachu charge up the same way. Now Pikachu is ready to battle with Elekid, which should drain enough energy to restore it to normal!
Team Rocket shows up with their latest robot, but James calls time-out so he can swap the Pokémon Egg for Mime Jr. Now it's back to stealing Pokémon! The robot is shielded against electricity and too tough for Phanpy to defeat, but Elekid and Pikachu team up for a super-powerful Thunder move that releases their extra charges and overloads the robot. Then Phanpy evolves into Donphan and sends Team Rocket on their way. With everything finally back to normal, our friends can continue their journey to the Battle Pike!
A bright and sunny day begins our adventure as Ash gently places his third Symbol into place. Max checks his PokéNav and tells them that the nearest facility is the Battle Pike, near Fuchsia City. May polishes her Egg with Phanpy watching nearby. They talk about the Egg and how long it took for Phanpy to hatch from one. May then lifts the lid on the container and gently places the Egg inside. A thunderous sound erupts as everyone looks overhead to sight an overpowering thunderstorm. A thunderbolt then sparks from the storm and explodes into the nearby mountainous region. Everyone dashes off into the distance towards the disturbance.
Coming out of the brush, Max sights several severely injured Pokémon which consists of Nuzleaf, Bellossom, and a few others. A strange sound comes from the bushes as they rush over to find an Elekid fighting an Exeggutor while May quickly queries its Pokédex data. Elekid starts rotating its arms at a high speed generating an enormous amount of energy and thrusts Exeggutor backwards. Going berserk, Elekid goes for another attack electrifying Exeggutor and knocking it unconscious. Ash attempts to stop Elekid but it just angrily launches a Thunder attack towards Pikachu. The attack is avoided as Pikachu retaliates with an Iron Tail. Elekid dodges this attack and attacks quickly, sending an electrifying charge throughout Pikachu. Pikachu then recovers from the attack and thrusts towards Elekid with Volt Tackle, but the attack fails and Pikachu gets pushed back by Elekid. Elekid then dashes towards him with a ThunderPunch but Phanpy intervenes and blocks the attack. Phanpy then performs a Rollout knocking Elekid backwards. This only angers Elekid more as its power greatly increases sending electrical bolts in every direction. Everyone dodges the attack but May drops her Pokémon Egg as Max takes a direct hit from the uncontrollable energy. Elekid then launches May's Egg into the air and on top of its head as it devastates the area destroying trees and terrain. The dust and smoke clears as Elekid has disappeared with May's Egg. After a few moments, May finally notices that Elekid has escaped with her Egg. Elekid tries to remove the Egg from atop his head but it is lodged between both of his ears.
Meanwhile, Team Rocket is walking down a path as Meowth spots an injured Scyther in the path ahead. Elekid walks across Team Rocket's path as they devise a plan to capture Elekid. This plan is thwarted as Elekid begins rapidly spinning its arms and sends Team Rocket blasting off into the sky with Mime Jr. being blasted in the opposite direction.
Elekid manages to remove the Egg from atop its head. Ash and everyone is searching for May's lost Egg as Team Rocket begins searching for Mime Jr.. Ahead in the path, Meowth spots the Egg that was lodged between Elekid's ears. While Jessie is excited with this find, James is still worried about Mime Jr..
Max then spots Mime Jr. in the path ahead heavily injured as Team Rocket sits atop a tree stump. James is increasingly worried about Mime Jr. and as soon as Jessie or Meowth mentions anything about the Egg, James fills with anger. Meanwhile, Ash and everyone is caring for Mime Jr. as it recovers from its injuries. Everyone is excited with Mime Jr.'s recovery as the search continues for May's Egg. Elekid crosses their path again as May notices that the Egg is not lodged between Elekid's ears now. Phanpy and Pikachu interrupt as Elekid begins the battle with a devastating ThunderPunch. Both Pikachu and Phanpy evade this attack as Phanpy responds with a Rollout, but is quickly sent flying backwards by Elekid's electrical energy. The battlefield erupts with a giant plume of smoke and dust with Elekid now gone from the area.
Team Rocket is still searching for Mime Jr. as an electrical disturbance sparks nearby and Elekid appears from the nearby underbrush. As James tries to dash towards Elekid, Jessie restrains him and Elekid dashes forward with another ThunderPunch sending Team Rocket blasting off again. In another location, everyone else is searching for May's Egg. Brock then recalls in the past with Pikachu being overcharged with electrical energy and notes that Elekid is in the same condition. A bolt of lightning erupts into the nearby ground as another bolt erupts from the sky and electrifies Pikachu. Pikachu begins the battle with a Thunderbolt as then a strange mecha comes thundering from the distance with Team Rocket setting the usual scene. May identifies that James has her Egg while James notices that May has Mime Jr.. James then rushes down as May and James trade for Mime Jr. and the Egg. James then returns to the mecha as a net is launched from the mecha with Pikachu dodging and electrifying the mecha.
The electrical charge is diverted as Phanpy rushes towards the mecha and thrusts into the mecha. Three bombs are then launched from the mecha as Phanpy deflects these with its Defense Curl. The mecha then attacks knocking Phanpy backwards while Elekid interrupts the battle. Elekid then tries to use Thunder as Pikachu then jumps atop Elekid and both Pokémon's Thunder is combined. The electrical gauge within the mecha slowly increases as Elekid and Pikachu increase the power which sends the mecha's storage power off the charts. As the meter reaches into the danger zone, Team Rocket's mecha explodes and is sent backwards. As the dust and smoke clears, Elekid's ailment seems to have been cured. Ash then tells Phanpy to use a Rollout attack to stop Team Rocket from obtaining Elekid and Pikachu but is sent flying backwards again. A mysterious light overtakes Phanpy's body as the evolutionary process begins to take place and Phanpy evolves into Donphan. Donphan then rolls towards Team Rocket one last time with this force knocking Team Rocket's mecha towards the ground. Donphan then finishes the battle with a Hyper Beam sending Team Rocket blasting off into the sky for their third and final time.
With Elekid now returned to normal, everyone gives Elekid an honorable departure as Ash inches ever so closer to the next big adventure.
Major events
- Ash learns that the next Battle Frontier facility is the Battle Pike near Fuchsia City.
- Ash's Phanpy evolves into Donphan and learns Hyper Beam.
- For a list of all major events in the anime, please see the timeline of events.
Pokémon debuts
- Pikachu (Ash's)
- Meowth (Team Rocket)
- Wobbuffet (Jessie's)
- Mime Jr. (James's)
- Phanpy (Ash's; evolves)
- Donphan (Ash's; newly evolved)
- Exeggutor
- Scyther
- Bellossom
- Elekid
- Seedot
- Nuzleaf
- This is the only episode in which Ash's Phanpy is voiced by Jamie Peacock.
- Donphan remains outside of its Poké Ball for the entire episode.
- This is the last episode so far that Ash's Pikachu uses Thunder.
- The last frame of the title card in the English dub is a frame of the original Japanese title card.
Dub edits
- James refers to Mime Jr. as "Mimey" at one point in the English dub. This nickname was already given to Delia's Mr. Mime.
In other languages
|Mandarin Chinese
|Tegen de stroom in
|Varauksellinen asenne
|European French
|Courant electrique
|מטען חורג
|Pericolo, alta tensione!
|Brazilian Portuguese
|Invertendo as Cargas
|Заряженый Элекид
|Latin America
|Cargas de electricidad
|Descargando electricidad
|En rejäl urladdning
|This episode article is part of Project Anime, a Bulbapedia project that covers all aspects of the Pokémon anime.


text:
Hare Fabric Placemat
COVID-19 - We have introduced extensive new procedures to ensure our staff & customers are safe. Read more
Nothing beats a cuppa tea and a biscuit moment, which is why we love this Peanut Butter Cookie recipe from Amelia Fre...Read more
This breakfast pizza recipe from Amelia Freer's book Simply Good For You makes us all want to eat pizza for breakfast...Read more
If you're looking for something fresh, tasty and easy to make, then this pasta sauce recipe from Amelia Freer's new b...Read more
Tastebuds at the ready, this Butterscotch Banoffee Pie is one for the family and ready in 6 minutes.Read more
To receive 10% off everything* and be the first to hear about our new collections and exclusive offers! (Privacy Policy)
*Excludes gift vouchers & sale items and cannot be used in conjunction with any other offer.
We look forward to sharing product updates, special offers and much more with you.Shop Now
Please use your code 2L7R-2122-9HJL at the checkout to receive 10% off your order.Shop Now
Crumbs...this website uses cookies (non edible I'm afraid!). By continuing to browse you are agreeing to our use of cookies.


text:
Facebook Users Are Negative and Very Depressed Lately, Here's Why
Scientists have discovered that seasonal depression and the economy are two of the largest factors that are affecting the way people express themselves on the popular social network.
According to Christy Hamilton, coordinator of the university health services "If it can't be associated with a normal change in life, we do see increased numbers in depression during the winter months," she said. And it also may seem that most people believe that our best economic days are behind us and the real emotion they are feeling is stress. "When we are overworked and still are having a hard time paying the bills we can't help but vent to our friends or lay blame on others."
Casper is known for it's long, drawn out winters. And while our unemployment isn't nearly as bad as other parts of the nation, we are still feeling the anxiety of having to work harder to make ends meet. It's a toxic combination that is spilling out all over Facebook with harsh comments against others or towards themselves, sad or thought provoking photos, and arguments that are displayed for everyone else to see.
"Negative attitudes are nothing new on Facebook, you can find it in any city around America", said John Rhyman, behavioral therapist at the University of Washington, "however, you might be seeing it more so in your area in the recent months due to the fact Facebook has only just recently (in the past two years) been adopted as an everyday form of communication and users in (our) network are starting to get comfortable with sharing their feelings. What they don't seem to realize is that now rather than sharing their emotions behind closed doors, they are now communicating in a wide open arena so now the negativity spreads much like a virus."
So how do we put a stop to all these Negative Nancy's, and keep yourself from becoming one? Here's a few tips:
Hide people on your feed- You don't have to unfriend a depressing person, just hide them on Facebook so you don't have to see their bad attitude.
Get Out- Even if it's cold outside, the sun still feels good and can brighten your mood. If that isn't enough, invest in a happy light for your office and home. Or perhaps spend your lunch break in a tanning bed.
Exercise- Step away from the computer, and hop on a treadmill. Just 30 minutes a day can melt away your stress and give your mood the boost it needs.
If you don't have anything nice to say, don't say it at all- Remember, your mood can affect not just you, but everyone in your Facebook network. If you just have to vent, do it away from the public eye and perhaps seek the help from a close friend or family member.


text:
FBI has released details of an international operation directed at curbing card crimes. The operation, which is said to be the largest aimed at curbing card crimes, lead to the arrest of 24 individuals in 13 countries among which, 11 are from US.
Carding crimes include stealing of personal information such as credit card details, social security numbers, bank account details etc. and using them or selling them in order to make money.
The operation was a result of a two year undercover operation lead by the FBI. Of the 13 arrested outside US, 6 are from United Kingdom, 2 from Bosnia and 1 each from Bulgaria, Norway and Germany, Italy and Japan.
Preet Bharara, Manhattan Attorney explained the crime in a press release,
"The allegations unsealed today chronicle a breath-taking spectrum of cyber schemes and scams. As described in the charging documents, individuals sold credit cards by the thousands and took the private information of untold numbers of people. As alleged, the defendants casually offered every stripe of malware and virus to fellow fraudsters, even including software-enabling cyber voyeurs to hijack an unsuspecting consumer's personal computer camera. To expose and prosecute individuals like the alleged cyber criminals charged today will continue to require exactly the kind of coordinated response and international cooperation that made today's arrests possible."
Janice K. Fedaryck, FBI Assistant Director in Charge also commented on the operation as follows,
"From New York to Norway and Japan to Australia, Operation Card Shop targeted sophisticated, highly organized cyber criminals involved in buying and selling stolen identities, exploited credit cards, counterfeit documents, and sophisticated hacking tools. Spanning four continents, the two-year undercover FBI investigation is the latest example of our commitment to rooting out rampant criminal behavior on the Internet."
FBI also conducted more than 30 searches and interviews as a part of the operation. The case is currently handled by the Complex Fraud's Unit.