[ANN] Rearranger plugin - new version 4.0.x

The plugin
- rearranges (reorders) class and class member declarations according to a user-specified order and/or method call hierarchy;
- generates section-marking comments;
- provides several controls for spacing within and between methods and classes; and
- permits the user to manually rearrange items.

This is primarily a bug fix release.

1) Fixed bug: Adding a rule when none was previously selected caused an ArrayIndexOutOfBounds exception.

2) Cancelling an edit no longer acts as if OK were pressed.

3) Interface method rule now allows comment fill string capability.

4) Preview ("Confirm before rearranging") shows expanded comments (with "fill string" operation performed.)

Version 4.0.1 works with the retail version of IDEA (4.5.x); version 4.0.2 is built for the EAP (Irida).

29 comments
Comment actions Permalink

Dave,

What about adding folding support to rearranger? I would like to easily
fold all methods in one section between comments.

0
Comment actions Permalink

Hi Mike,

Can you elaborate? By 'folding,' do you mean you'd like to keep a consecutive group of methods (somehow identified by comments) together -- so that the group would be placed wherever the first method of the group would go according to the rules?

Perhaps you could give me an example.

-Dave

0
Comment actions Permalink

Dave,

I would like the folding "-" near every comment insterted by Rearranger,
so that I can fold all members up to the next comment. It's sometimes
desirable to fold all overrides. Or initialization routines.

0
Comment actions Permalink

I think I understand. Are you talking about the "Confirm before rearranging" dialog? You would like comments (if shown in the tree) to be a "folding" node, containing everything up to the next comment, if I understand you correctly.

I attached a snapshot of a sample confirmation dialog. The "FIELDS" Comment precedes 7 rules for various types of fields. Next is the "STATIC METHODS" comment.

You would like those 7 rules to be children of (not siblings of) the "FIELDS" Comment entry in the tree, correct?



Attachment(s):
rdialog.PNG
0
Comment actions Permalink

Mike:

Are you talking about folding actual code (in the editor), or rules (in Rearranger settings, preview dialog, or Live Rearranger dialog)?

In thinking about it more, it seems like you want to fold the code in the editor. I'm not sure how to do that from a plugin but I can find out.

-Dave

0
Comment actions Permalink

The "extracted methods" algorithm skip methods extracted from interface
implementing methods. They all end in the "other methods" sections,
instead of below - f.ex - the method they were extracted from.

Alain

0
Comment actions Permalink

With RC5 (3431) I get the following exception while writing/reading config file

Error during dispatching of java.awt.event.MouseEvent[MOUSE_RELEASED,(105,170),button=1,modifiers=Button1,clickCount=1] on dialog59: org.jdom.output.XMLOutputter.(Ljava/lang/String;Z)V java.lang.NoSuchMethodError: org.jdom.output.XMLOutputter.]]>(Ljava/lang/String;Z)V
at com.wrq.rearranger.settings.RearrangerSettings.writeSettingsToFile(RearrangerSettings.java:701)
at com.wrq.rearranger.configuration.RearrangerSettingsPanel$13.actionPerformed(RearrangerSettingsPanel.java:564)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:159)
at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:27)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:139)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:153)
at java.awt.Dialog$1.run(Dialog.java:515)
at java.awt.Dialog.show(Dialog.java:536)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:34)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:35)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:722)
at com.intellij.openapi.options.ex.ControlPanelSettingsEditor.b(ControlPanelSettingsEditor.java:65)
at com.intellij.openapi.options.ex.ControlPanelSettingsEditor.access$900(ControlPanelSettingsEditor.java:78)
at com.intellij.openapi.options.ex.ControlPanelSettingsEditor$MyActionButton$1.mouseReleased(ControlPanelSettingsEditor.java:0)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:159)
at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:27)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:139)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:153)
at java.awt.Dialog$1.run(Dialog.java:515)
at java.awt.Dialog.show(Dialog.java:536)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(DialogWrapperPeerImpl.java:34)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapperPeerImpl.java:35)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:722)
at com.intellij.ide.actions.ShowSettingsUtilImpl.showControlPanelOptions(ShowSettingsUtilImpl.java:30)
at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(ShowSettingsUtilImpl.java:23)
at com.intellij.ide.actions.ShowSettingsAction.actionPerformed(ShowSettingsAction.java:0)
at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(ActionButton.java:117)
at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent(ActionButton.java:34)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1774)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:159)
at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:27)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:139)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)

0
Comment actions Permalink

Dave,

Do you have any plan on providing a project level config like the built-in code style?
To me this is the most needed feature.

Thanks again for such great plugin

Jacques

0
Comment actions Permalink

For ages, the R. plugin has been badly corrupting my code as frequently
as 1 every 2 or 3 calls.

What happens: the first line is splitted, and import statements are
inserted:

Example (not a real case, but close enough)

package com.ravet.project.ma <<----


broken here

import java.util.* <<----


was inserted

nonthe moon; <<----


end of the line is here
.....


Alain



0
Comment actions Permalink

Alain,

There has only been one other report of this bug, and I can't reproduce it. I think it depends on the source code and your configuration; specifically I think it has to do with spacing options, and odd arrangements of braces and/or comments in the source. Could you possibly send me your configuration and source file?

Thanks,
-Dave

P.S. I have been out of town for several weeks, but will upload a new version of Rearranger with the XML configuration bug fixed when I return.

0
Comment actions Permalink

Dave,

Here is my 'options' file.

As for the source, it happens to me in every single project, so I guess
you could try in on your code as well.
Note: I also use the Tabifier plugin all the time, .. in case it matters;

Alain



Attachment(s):
options.zip
0
Comment actions Permalink

Alain,

As I said, I think it depends not only on your settings but also on something "odd" in your source code. It does not happen on my source code, or (as far as I know) most people's source code. In the past, related bugs appeared when multiple close braces were on one line, or comments separated close braces, or other permutations of comments, open/close braces, and new line characters (or lack thereof).

Is it possible for you to send me one source file? If not, I can possibly debug it using a trace file, but it would involve more work for both of us.

Thanks,
-Dave

0
Comment actions Permalink

Dave

The code below triggers the problem with Rearranger's default config and
the formatting options I sent you.

Alain


Before:
-


package com.ravet; public final class Foo { private static Foo __instance = new Foo (); public static Foo getInstance () { return __instance; } } ]]>


After:
-


]]>
package com.ravet;

public final class
oo
{
// -


FIELDS -



private static Foo __instance = new Foo ();

// -


STATIC METHODS -



public static Foo getInstance () {
return __instance;
}
}
</code>


0
Comment actions Permalink

Alain,

Sorry for the delay. The zip file you provided (containing your configuration) appears to be corrupted. Winzip says, "Cannot open file: it does not appear to be a valid archive."

Can you upload it again? It's small enough that it doesn't need to be zipped, I suppose.

-Dave

0
Comment actions Permalink

Dave

>The zip file you provided (containing your configuration) appears to be corrupted. Winzip says, "Cannot open file: it does not appear to be a valid archive."

>

It my entire options directory, zipped with MacOS X. I could unzip it
without any problem, and I've been exchanging zip files with Windows
users before.

Anyway, here is my code formatting option xml file, uncompressed.

Alain




Attachment(s):
alain.xml
0
Comment actions Permalink

Thanks, Alain. This one I could read. :) However, it isn't the one that contains Rearranger settings. Those are in the config/options/other.xml file under the tag: ]]>

0
Comment actions Permalink

Dave

>..it isn't the one that contains Rearranger settings.
>

As I wrote earlier, the problem occurs with the Rearranger's default config.

Alain

0
Comment actions Permalink

Alain, I apologize, I overlooked that detail in your previous message. However, now I'm puzzled. The Rearranger (unlike the Tabifier) makes no use of any configuration outside of its own. Do you suspect your code style (or other non-Rearranger) settings affect the outcome? Or do you suspect that running Tabifier and Rearranger together may be a problem?

I have repeatedly tried rearranging the simple source you sent me with 5.0 and default Rearranger settings and cannot reproduce the problem.

I guess the next step then is to trace the plugin's behavior. Do this by adding the following to IDEA's bin/log.xml:

]]>

Then try rearranging your simple source. (Log shouldn't be too big since nothing will be moved.) If the bug is intermittent, it would be interesting to see two logs, one for successful rearranging and one for the bug.

Another thing that confuses me is that the Rearranger does nothing with the "header" (package & imports, if any). It lumps everything in the document up to the first class definition into a single MiscellaneousTextEntry object, which is just emitted unchanged into the new document. The plugin builds a new document by appending chunks of text to a string buffer, and the header is appended as a whole. It's hard to see how anything (such as "import java.util.*;") could be inserted into the middle of the header.

Your original message indicated that the bug was that the package statement was broken, and import statements were inserted. The "Foo" example you sent is different; here nothing is wrong with the package statement, but the class name is mangled. I can see an opportunity for Rearranger to replace

withif there was a bug in the respacing logic. It seems the bug is more general than you initially described; package statement or class name can be corrupted. Can you clarify?

Thanks for your patience and your help!
-Dave

0
Comment actions Permalink

Dave Kriewall wrote:

Another thing that confuses me is that the Rearranger does nothing
with the "header" (package & imports, if any). It lumps everything

Your original message indicated that the bug was that the package
statement was broken, and import statements were inserted.


I can confirm this - this sometimes happens to me. Unfortunately, it's
almost impossible to reproduce. Just know I had a class that triggered
this, but on repeating/fixing/repeating this a few times, the behaviour
was gone!
It's very odd, (and quite infrequent in my case) but definitely
something happens to the 'header' during rearranging...

Regards,
Edwin

0
Comment actions Permalink

Dave

>.. now I'm puzzled.
>

I am too: I tried rearranging the code sample I sent you, and it works
fine...
As Edwin noticed, it's almost impossible to reproduce reliably, even in
one same session, on one same PC.


>Do you suspect your code style (or other non-Rearranger) settings affect the outcome?
>
I don't exclude that possibility as my options cause me some other
formatting troubles.
If you could try once more to uncompress the zip file I sent, and try to
use it on your code for a while, I think it would be the safest
procedure to have you see it happening with your own eyes.


One candid - stupid ? - question: could IDEA start
formatting/layouting/optimizing import on the modified code while you
are still "sending" it to the editor?


Alain


(an unrelated problem occured when I tried saving my config:
org.jdom.output.XMLOutputter.(Ljava/lang/String;Z)V java.lang.NoSuchMethodError: org.jdom.output.XMLOutputter.]]>(Ljava/lang/String;Z)V
at
com.wrq.rearranger.settings.RearrangerSettings.writeSettingsToFile(RearrangerSettings.java:701)
at
com.wrq.rearranger.configuration.RearrangerSettingsPanel$13.actionPerformed(RearrangerSettingsPanel.java:564)
at
javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1882)
at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2202)


0
Comment actions Permalink

Same here.
Maybe there is also an interaction with the Copyright plugin. Alain, Edwin are you using it?

Jacques

0
Comment actions Permalink



>Maybe there is also an interaction with the Copyright plugin. Alain, Edwin are you using it?
>

>

No, I don't.

Alain.

0
Comment actions Permalink

I'll take the easy one first. The configuration-save problem you saw with the XMLFormatter is fixed in the version I'm about to upload.

I am suspecting that there must be a timing issue between the plugin and IDEA (as you suggested), or perhaps the document isn't really "committed". My plugins all commit the document being worked on, examine the PSI tree, and in the case of the rearranger resubmit a completely new document in place of the old one. Without a plugin log of improper behavior, I can't say whether the problem is in constructing the new document (based on taking strings from certain character offsets in the old document) or in the replacement of the old document with the new. In either case, it sounds like a bug in IDEA itself.

Anybody from JB have a suggestion on how to track down this bug? Is it possible that IDEA is doing some document modifications (like import optimization) while my plugin is processing the old document?

-Dave

0
Comment actions Permalink

I sometimes have a problem, that moving a line (using the built-in
feature) creates broken lines. The next try it works as expected.

Maybe it has something to do with PSI not being refreshed correctly?

Tom

0
Comment actions Permalink

Jacques Morel wrote:

Same here.
Maybe there is also an interaction with the Copyright plugin. Alain, Edwin are you using it?


Yes, I am. But - I think (but am not 100% sure) I've seen the
package-statement-corruption on files without a copyright statement as
well. I'll remove the plugin, and see what happens. (But the problem was
intermittent anyway...)

Regards,
Edwin

0
Comment actions Permalink

Alain, Jacques, Thomas,

Please download version 4.3.1; it should fix the package statement corruption.

Jacques, I am thinking of adding project-level settings, now that you brought it to my attention. Are you expecting both application- and project-level settings, like code style (both global and per-project)?

-Dave

0
Comment actions Permalink

Dave, as always, thanks for the excellent plugin. I just have one wish:
please add an option to invoke Layout Code after rearranging a class.
Thanks in advance.

Tom

0
Comment actions Permalink

I believe the builtin codestyle handling is great. I strongly suggest that you follow it.
It allows to have a set of standard codestyles so you don't have to start from scratch for every new project.
It allows also to share a codestyle transparently across team members (I would think that the project level settings need to be stored in the project file).
Now the question is, should it be made available on a per module basis? It might be an edge case not worth doing if it is too hard.

Thanks for such a great plugin Dave!

Jacques

0
Comment actions Permalink

Easy Money THIS IS AN INVESTMENT OPPORTUNITY FOR SERIOUS PEOPLE ONLY!!! HOW TO TURN $6 INTO $6,000!!!!!!
READING THIS COULD CHANGE YOUR LIFE IT CHANGED MINE... I found this on a bulletin board and decided to try it. A little
while Back, I was browsing through newsgroups, just like you are now, and Came across an article similar to this that said you could
make Thousands of dollars within weeks with only an initial investment of $6.00! So I thought, Yeah right, this must be a scam, but like
most of Us, I was curious, so I kept reading. Anyway, it said that you send $1.00 to each of the 6 names and address stated in the
article. You Then place your own name and address in the bottom of the list at ..6, And post the article in at least 200 newsgroups.
(There are thousands) No catch, that was it. So after thinking it over, and talking to a few People first, I thought about trying it. I
figured: what have I got to Lose except 6 stamps and $6.00, right? Then I invested the measly $6.00. Well GUESS WHAT!! Within
7 days, I started getting money in the mail I was shocked! I Figured it would end soon, but the money just kept coming in. In my
First week, I made about $25.00. By the end of the second week I had Made a total of over $1,000.00! In the third week I had
over $10,000.00 And it's still growing. This is now my fourth week and I have made a total of just over $42,000.00 and it's still
coming in rapidly. It's certainly worth $6.00, and 6 stamps. I was in a bad economic state before I found this Article... I didn't
believe this really worked until I ACTUALLY started Getting mail from all over the world... I bought everything I needed... This idea
came in the right time exactly :) Let me tell you how this works and most importantly, why it Works....Also, make sure you print a
copy of this article NOW, so you Can get the information off of it as you need it. I promise you that if you follow the directions exactly,
that you will Start making more money than you thought possible by doing something so Easy! Suggestion: Read this entire
message carefully! (print it out or Download it.) Follow the simple directions and watch the money come in! It's easy. It's legal.
And, your investment is only $6.00 (Plus postage) IMPORTANT: This is not a rip-off; it is not indecent; it is not Illegal; and it is
virtually no risk - it really Works!!!! If all of the following instructions are adhered to, you will Receive extraordinary dividends.
PLEASE NOTE: Please follow these directions EXACTLY, and $50,000 or More can be yours in 20 to 60 days. This program
remains successful Because of the HONESTY AND INTEGRITY of the participants. Please continue its success by carefully
adhering to the instructions. You will now become part of the Mail Order business. In this business Your product is not solid and
tangible, it's a service. You are in the Business of developing Mailing Lists. Many large corporations are happy To pay big bucks
for quality lists. However, the money made from the Mailing lists is secondary to the income which is made from people like You
and me asking to be included in that list. Here are the 4 easy Steps to success: STEP 1: Get 6 separate pieces of paper and write
the following on each Piece of paper; PLEASE PUT ME ON YOUR MAILING LIST..along with your name and address. Now get 6
US $1.00 bills and place ONE inside EACH of the 6 pieces of Paper so the bill will not be seen through the envelope (to prevent
Thievery). Next, place one paper in each of the 6 envelopes and seal Them. You should now have 6 sealed envelopes, each with
a piece of Paper stating the above phrase, your name and address, and a $1.00 Bill. What you are doing is creating a service.
THIS IS ABSOLUTELY LEGAL You are requesting a legitimate service and You are paying for it! Like most of us I was a little
skeptical and a Little worried about the legal aspects of it all. So I checked it out with the U.S. Post Office (1-800-725-2161) and
they Confirmed that it is indeed legal! Mail the 6 envelopes to the following addresses:
1) Stephen DeLong - 11682 Hoskins St., Huntington Beach, CA 92649
2) Mike Watt - PO Box 129 Roy City, UT 84067
3) Mike Fogaren Jr. - 5 Waterbury Lane, Easton MA 02356
4) David Barth - 1662 Cypress East Avon, Ohio 44011
5) Michael Zicarelli - 230 Erie Rd Vermilion,Ohio 44089
6) Samuel Corrales – 3200 N 75 St #17 Scottsdale, Az 85251
STEP 2: Now take the ..1 name off the list that you see above, move the
Other names up (6 becomes 5, 5 becomes 4, etc...) and add YOUR NAME as Number 6 on the list. STEP 3: Change anything
you need to, but try to keep this article as Close to original as possible. Now, post your amended article to at Least 200
newsgroups. (I think there are close to 24,000 groups) All You need is 200, but remember, the more you post, the more money
you Make! This is perfectly legal! If you have any doubts, refer to Title 18 Sec. 1302 & 1341 of the Postal lottery laws. Keep a
copy of these steps for yourself and, Whenever you need money, you can use it again and again. PLEASE REMEMBER that
this program remains successful because of the HONESTY AND INTEGRITY of the participants and by their carefully Adhering
to the directions. Look at it this way. If you are of Integrity, the program will continue and the money that so many others Have
received will come your way. NOTE: You may want to retain every name and address sent to you, either On a computer or
hard copy and keep the notes people send you. This VERIFIES that you are truly providing a service. (Also, it might be a
Good idea to wrap the $1 bill in dark paper to reduce the risk of mail Theft). So, as each post is downloaded and the directions
carefully Followed, six members will be reimbursed for their participation as a List Developer with one dollar each. Your name
will move up the list Geometrically so that when your name reaches the ..1 position you will Be receiving thousands of dollars
in CASH!!! What an opportunity for only $6.00 ($1.00 for each of the first Six people listed above) Send it now, add your own name
to The list and you're in business! -


DIRECTIONS FOR HOW TO POST TO NEWSGROUPS----


STEP 1) You do
not need to re-type this entire letter to do your own Posting. Simply put your cursor at the beginning of this letter and Drag your
cursor to the bottom of this document, and select 'copy' from The edit menu. This will copy the entire letter into the computer's
Memory. STEP 2) Open a blank 'notepad' file and place your cursor at the top of The blank page. From the 'edit' menu
select 'paste'. This will paste a Copy of the letter into notepad so that you can add your name to the List. STEP 3) Save your new
notepad file as a .txt file. If you want to do Your postings in different settings, you'll always have this file to go Back to.
STEP 4) Use Netscape or Internet explorer and try searching for various Newsgroups (on-line forums, message boards,
chat sites, discussions.) (Just example you log on any search engine like yahoo.com, google.com, Altavista.com, excite.com
then you search with this subject millionaire Message board? or money making message board? or employment message
Board? or money making discussions? or money making forum? or business Message board? etc. You will find thousand &
thousand message board.) STEP 5) Visit these message boards and post this article as a new Message by highlighting the
text of this letter and selecting paste From the edit menu. Fill in the Subject, this will be the header that Everyone sees as they
scroll through the list of postings in a Particular group, click the post message button. You're done with your First one!
Congratulations...THAT'S IT! All you have to do is jump to Different newsgroups and post away, after you get the hang of it,
it Will take about 30 seconds for each newsgroup! **REMEMBER, THE MORE NEWSGROUPS YOU POST IN,THE MORE
MONEY YOU WILL MAKE!! BUT YOU HAVE TO POST A MINIMUM OF 200** That's it You will begin receiving money from
around the world within Days! You may eventually want to rent a P.O.Box due to the large amount Of mail you will receive.
If you wish to stay anonymous, you can invent A name to use, as long as the postman will deliver it. **JUST MAKE SURE ALL
THE ADDRESSES ARE CORRECT.** Now the WHY part: Out of 200 postings, say I receive only 5 replies (a Very low example).
So then I made $5.00 with my name at ..6 on the Letter. Now, each of the 5 persons who just sent me $1.00 make the MINIMUM
200 postings, each with my name at ..5 and only 5 persons Respond to each of the original 5, that is another $25.00 for me, now
Those 25 each make 200 MINIMUM posts with my name at ..4 and only 5 Replies each, I will bring in an additional $125.00! Now,
those 125 Persons turn around and post the MINIMUM 200 with my name at ..3 and Only receive 5 replies each, I will make an
additional $626.00! OK, now Here is the fun part, each of those 625 persons post a MINIMUM 200 Letters with my name at ..2 and
they each only receive 5 replies, that Just made me $3,125.00!!! Those 3,125 persons will all deliver this Message to 200
newsgroups with my name at ..1 and if still 5 persons per 200 newsgroups react I will receive $15,625,00! With an original
Investment of only $6.00! AMAZING! When your name is no longer on the List, you just take the latest posting in the newsgroups,
and send out Another $6.00 to names on the list, putting your name at number 6 Again. And start posting again. The thing to
remember is: do you Realize that thousands of people all over the world are joining the Internet and reading these articles
everyday?, JUST LIKE YOU are now!! So, can you afford $6.00 and see if it really works?? I think so... People have said,
"What if the plan is played out and no one sends you The money? So what What are the chances of that happening when there
Are tons of new honest users and new honest people who are joining the Internet and newsgroups everyday and are willing to
give it a try? Estimates are at 20,000 to 50,000 new users, every day, with thousands Of those joining the actual internet.
Remember: PLAY FAIRLY and HONESTLY, And this will really work. Good Luck to you all !!!!!!!!!!!!!!!!!!!!

0

Please sign in to leave a comment.