CCW bug [SEVERE]

916 views
Skip to first unread message

Fluid Dynamics

unread,
Oct 25, 2014, 10:38:11 PM10/25/14
to clo...@googlegroups.com
Would somebody mind explaining to me why I just had CCW 0.28.1.STABLE001 hang with 100% CPU usage when I edited this line:

      :=                  (= v cr))))

to this:

      =                   (= v cr))))

and then hit control-S?

I do not ever want to see anything purportedly "STABLE" do something like that ever again, and that goes *one trillionfold* if it's IN THE MIDDLE OF A GODDAMN SAVE. What if my file had been corrupted, or truncated and only the first 42 bytes of the new version written thus far, or something like that at the moment when the hang started? Fortunately, in this instance that had not happened and the file seems to have been saved completely just *before* the hang. I might not be so lucky next time. That is why this cannot be permitted to happen again, and why therefore an explanation is required, and urgently, that I might be perfectly able to avoid triggering this severe, showstopping, and inexcusable bug again until such time as an 0.29.1 is published that has it permanently fixed.

Timothy Baldridge

unread,
Oct 25, 2014, 10:42:24 PM10/25/14
to clo...@googlegroups.com
"
What if my file had been corrupted, or truncated and only the first 42 bytes of the new version written thus far, or something like that at the moment when the hang started?"

So there's this new cool thing out there called a "version control system". One of the more popular programs in this category is known as git...check it out sometime, it'll help you relax when programming, knowing that previous versions of your file are only a few keystrokes away.

Timothy 

--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
“One of the main causes of the fall of the Roman Empire was that–lacking zero–they had no way to indicate successful termination of their C programs.”
(Robert Firth)

danneu

unread,
Oct 26, 2014, 1:04:49 AM10/26/14
to clo...@googlegroups.com
Fluid Dynamics wrote:
I do not ever want to see anything purportedly "STABLE" do something like that ever again 

There are a lot of things I do not ever want to see.

I don't want to see debt collectors or clojure stacktraces or my uncle Frank.

Unfortunately, demanding that I don't see them is not what moves the needle
towards eliminating them from my life.

Fluid Dynamics

unread,
Oct 26, 2014, 1:44:14 AM10/26/14
to clo...@googlegroups.com
On Saturday, October 25, 2014 10:42:24 PM UTC-4, tbc++ wrote:
"What if my file had been corrupted, or truncated and only the first 42 bytes of the new version written thus far, or something like that at the moment when the hang started?"

So there's this new cool thing out there called a "version control system". One of the more popular programs in this category is known as git...check it out sometime, it'll help you relax when programming, knowing that previous versions of your file are only a few keystrokes away.

That's not an excuse for IDEs to be crashing or otherwise wigging out in the middle of file saves. Besides, it's stupid to expect everyone to use a version control system, particularly just to ward against bugs that have no business existing in the first place. Using it as mere file insurance is like swatting a fly with a nuclear-tipped ICBM. And also requires a much higher degree of formality, ceremony, and general fiddling around than many people's projects warrant, either at all or at a sufficiently early stage. Really, you expect me to create an account and publish every little bit of code I play around with on github?

And then to top it off it wouldn't help that much if I saved much more frequently than I committed changes and then re-checked-out the code. And I do save much more frequently than I'd be willing to do that. I often save code that won't work, and even code that won't compile, and even code with unbalanced delimiters. Sometimes I write some function or big static map or vector or something out a line at a time, saving every couple of minutes or if I pause for any reason. I'm certainly not about to commit code in such a state to a VCS, let alone publish it where others can see it. I'm used to hitting control-S in almost any idle moment when editing just about anything, so as to be nearly up to the minute if anything goes wrong. But that does mean relying on application developers to at least make sure the file save command is stable!

Fluid Dynamics

unread,
Oct 26, 2014, 1:45:15 AM10/26/14
to clo...@googlegroups.com

Unfortunately, since I am not the CCW developer nor do I have the time or inclination to spend 3 months poring over and learning its code base to get up to sufficient speed to fix bugs in it myself, demanding that it not crash is all I can do to eliminate CCW crashes from my life.

Dave Della Costa

unread,
Oct 26, 2014, 2:07:16 AM10/26/14
to clo...@googlegroups.com
Here's the counterclockwise project home page, as far as I can tell:

https://code.google.com/p/counterclockwise/

Issue tracker:

https://code.google.com/p/counterclockwise/issues/list

Users google group:

https://groups.google.com/forum/#!forum/clojuredev-users

I think you'd get a lot more mileage by posting something there, and I
think you'd also get a better response if you could express the problem
you're having calmly (i.e., leave off the all caps and "goddamn save"
language). I also suspect the developers of CCW would be equally
horrified at your experience, and would probably love to have your help
in debugging it and fixing it, if you're willing.

Good luck resolving the issue--

DD
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+u...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to clojure+u...@googlegroups.com
> <mailto:clojure+u...@googlegroups.com>.

Fluid Dynamics

unread,
Oct 26, 2014, 2:19:12 AM10/26/14
to clo...@googlegroups.com
On Sunday, October 26, 2014 2:07:16 AM UTC-4, David Della Costa wrote:
Here's the counterclockwise project home page, as far as I can tell:

https://code.google.com/p/counterclockwise/

Issue tracker:

https://code.google.com/p/counterclockwise/issues/list

Users google group:

https://groups.google.com/forum/#!forum/clojuredev-users

I think you'd get a lot more mileage by posting something there,

Doubtful, since I didn't get anything really detailed like a stacktrace. And, I don't really feel much like inventing *yet another* user/pass for a likely one-off post to some place. If you want to maximize reporting through the formal system I recommend making the process as frictionless as possible but the general trend for the past decade has been the exact opposite (remember when bugs.java.com could be reported to anonymously, just point click type?)

This is a really weird one, when you think about it. How the heck does a programmer make a mistake that results in the *file save* function going into an *infinite loop*? At least it didn't go into an infinite loop filling my filesystem...

and I think you'd also get a better response if you could express the problem
you're having calmly (i.e., leave off the all caps and "goddamn save"
language).

No. When something comes within a hair's-breadth of not only costing a user unsaved changes, but even previously saved changes, nearly destroying data on the disk where it *should* be safe, then extra emphasis and urgent tones are emphatically called for.

Mark Engelberg

unread,
Oct 26, 2014, 2:50:15 AM10/26/14
to clojure
On Sat, Oct 25, 2014 at 11:19 PM, Fluid Dynamics <a209...@trbvm.com> wrote:
This is a really weird one, when you think about it. How the heck does a programmer make a mistake that results in the *file save* function going into an *infinite loop*? At least it didn't go into an infinite loop filling my filesystem...

You're making a pretty big assumption that the bug happened in the file save function.  By your own admission, the file was saved perfectly fine, so perhaps after the file was saved it triggered a screen refresh or a project reload or a rescanning of the files in your directory, or any number of things that could have hung due to something specific on your system like a lack of sufficient memory or some file locked by another process, or whatever. 

You're also making a big assumption that this is a bug in counterclockwise, and not a problem with Eclipse itself.  I wouldn't exactly call Eclipse a rock-solid development environment.

I understand why you feel freaked out, because it is extremely disturbing to potentially lose work, but there's not much of a foundation here for your fear that the integrity of your data was put at risk, at least, not any more so than any other random crash that can happen when using any modern IDE, or, say, a power outage or hard drive failure.

As others have said, source control is one of your best protections against many types of failure.  In the meantime, this definitely seems worth reporting, through proper channels, if you genuinely care about making the product better.  Although you say you only got a stacktrace, Eclipse logs a lot of information about what it is doing.  Laurent could probably guide you through the process of sending him a copy of the log so he can see exactly where the failure occurred.  Of course, if you don't really want to make counterclockwise better, then just move along and try a different development environment -- there are several to choose from.  In my experience, Emacs, as one of the oldest development environments, is one of the most stable environments I've ever used -- I've kept Emacs open for weeks without it ever glitching.  So if that's the most important thing for you, try Emacs.  Ultimately, I decided I just don't like Emacs, and now I'm a happy Counterclockwise user.

Jony Hudson

unread,
Oct 26, 2014, 8:41:05 AM10/26/14
to clo...@googlegroups.com
You should demand your money back. Oh, wait ...


Jony

Luc Préfontaine

unread,
Oct 26, 2014, 10:55:50 AM10/26/14
to clo...@googlegroups.com
a) you should rant about programmer(s). Exactly which one 'made a mistake' remains to
be proven.

b) Eclipse is a complex IDE, CCW runs on top of it as a plugin, it's at the mercy of the
other pieces it depends on to run correctly. Stating who made the mistake requires
some deep digging.

c) If you added other plugins to the base image from the CCW download site, you just
added more programmer(s) to the list above of potential 'culprits'.

d) If your project is in automatic build mode then it's a build issue, as soon as you save it
rebuilds. That is an order of magnitude more complex than saving a file.

e) your context is an important factor of stability/instability and that cannot be foreseen
by the 'programmer(s)' in every cases.

f) reporting the problem might be a pain in the ass to you but this how software improves.

You can yell as much as you can privately, it may help get the pressure down.
I often do :)

Publicly it's something else. You better be certain that it will help things rolling faster.
Here it's obvious that it does not help anyone, you the less.

When you are paying a huge amount of money, you can legitimately yell at your suppliier.
Most clients don't which is odd considering the pile of crap shipped by many
software suppliers.

In the open source world, you do not have this leverage and if you do not report the issue
nothing will ever happen to solve it.

Luc P.


> On Sunday, October 26, 2014 2:07:16 AM UTC-4, David Della Costa wrote:
> >
> > Here's the counterclockwise project home page, as far as I can tell:
> >
> > https://code.google.com/p/counterclockwise/
> >
> > Issue tracker:
> >
> > https://code.google.com/p/counterclockwise/issues/list
> >
> > Users google group:
> >
> > https://groups.google.com/forum/#!forum/clojuredev-users
> >
> > I think you'd get a lot more mileage by posting something there,
>
>
> Doubtful, since I didn't get anything really detailed like a stacktrace
> And, I don't really feel much like inventing *yet another* user/pass for a
> likely one-off post to some place. If you want to maximize reporting
> through the formal system I recommend making the process as frictionless as
> possible but the general trend for the past decade has been the exact
> opposite (remember when bugs.java.com could be reported to anonymously,
> just point click type?)
>
> This is a really weird one, when you think about it. How the heck does a
> programmer make a mistake that results in the *file save* function going
> into an *infinite loop*? At least it didn't go into an infinite loop
> filling my filesystem...
>
> and I think you'd also get a better response if you could express the
> > problem
> > you're having calmly (i.e., leave off the all caps and "goddamn save"
> > language).
>
>
> No. When something comes within a hair's-breadth of not only costing a user
> unsaved changes, but even previously saved changes, nearly destroying data
> on the disk where it *should* be safe, then extra emphasis and urgent tones
> are emphatically called for.
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@googlegroups.com
> Note that posts from new members are moderated - please be patient with your first post.
> To unsubscribe from this group, send email to
> clojure+u...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
--
Luc Préfontaine<lprefo...@softaddicts.ca> sent by ibisMail!

john walker

unread,
Oct 26, 2014, 12:00:42 PM10/26/14
to clo...@googlegroups.com
All of those are google pages, so you don't have to create another username or password combination.

Ed Maphis

unread,
Oct 26, 2014, 12:47:11 PM10/26/14
to clo...@googlegroups.com

Notepad is relatively bug free.

Fluid Dynamics

unread,
Oct 26, 2014, 2:26:10 PM10/26/14
to clo...@googlegroups.com
On Sunday, October 26, 2014 2:50:15 AM UTC-4, puzzler wrote:
On Sat, Oct 25, 2014 at 11:19 PM, Fluid Dynamics <a209...@trbvm.com> wrote:
This is a really weird one, when you think about it. How the heck does a programmer make a mistake that results in the *file save* function going into an *infinite loop*? At least it didn't go into an infinite loop filling my filesystem...

You're making a pretty big assumption that the bug happened in the file save function.  By your own admission, the file was saved perfectly fine, so perhaps after the file was saved it triggered a screen refresh or a project reload or a rescanning of the files in your directory, or any number of things that could have hung due to something specific on your system like a lack of sufficient memory or some file locked by another process, or whatever.

Most of those are I/O tasks which, if indefinitely impeded, would take the form of a 0% CPU use hang. What was actually observed, however, was the saturation of a core, which requires an actual infinite busy loop of some kind. (I terminated the process after about three minutes, by which time it was clearly not going to recover on its own. On the hardware at issue here, that represents well over half a trillion CPU instruction cycles. If a normally fast task has spun its wheels that much without making detectable progress, it's generally safe to assume it's permanently stuck. (Unlike something you expect to take such numbers of cycles and still eventually complete, such as intensive numerical or simulation work. By contrast, I can think of no task CCW should be expending hundreds of billions of cycles on. As with most document-editing tools it should be I/O bound, waiting on fresh user input the vast majority of the time and blocked waiting for platters to reach the right theta most of the *rest* of the time. The observed CPU saturated behavior is thus remarkably abnormal in context. I'll also note that the affected process was CCW itself, not the REPL server or any other component.)

Oh, and an addendum: although my files were thankfully intact when I restarted CCW, it did come up in a wonky state the fix for which was less than 100% obvious. All attempts to start a project REPL were just spitting out a red message "Invalid REPL" into a REPL tab, instead of starting a REPL and presenting it there. Fixing this required *closing the REPL tab entirely* and *then* acting to start a new REPL. This does not happen after a graceful close and restart. The command to start a new REPL should "just work". If there was some uncleaned-up cruft left over from the abnormal termination of the previous session, relating to the REPL, which closing the REPL tab cleaned up, then the command to start a new REPL should perform any such clean-up on an as-needed basis rather than just complain "Invalid REPL", although tasks that assume an *existing* REPL might reasonably do so.

Colin Fleming

unread,
Oct 26, 2014, 11:13:48 PM10/26/14
to clo...@googlegroups.com
Note that any of those operations you're talking about under the general heading of "I/O tasks" are very complex in a modern IDE, and there are a lot of seemingly unrelated code paths where a bug or some sort of unexpected condition might cause an infinite loop. And as a lot of people have noted, the fact that it's the CCW process doesn't rule out the fact that it could be anywhere in the Eclipse infrastructure. If you'd like a recent concrete example of this, check out Cursive issue #517, which turned out not to be a problem with Cursive at all, but a bug in the IntelliJ formatting engine totally unrelated to the apparent issue.

And as others have also noted, the best way to deal with this would be a polite issue in the CCW tracker. CCW obviously provides a lot of benefit to you and many others, I'm sure Laurent is a busy guy and CCW is more or less a labour of love for him - it doesn't seem like too much to ask.

Cheers,
Colin


--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com.

Phillip Lord

unread,
Oct 27, 2014, 5:05:55 AM10/27/14
to clo...@googlegroups.com
Fluid Dynamics <a209...@trbvm.com> writes:

> On Saturday, October 25, 2014 10:42:24 PM UTC-4, tbc++ wrote:
>>
>> "What if my file had been corrupted, or truncated and only the first 42
>> bytes of the new version written thus far, or something like that at the
>> moment when the hang started?"
>>
>> So there's this new cool thing out there called a "version control
>> system". One of the more popular programs in this category is known as
>> git...check it out sometime, it'll help you relax when programming, knowing
>> that previous versions of your file are only a few keystrokes away.
>>
>
> Besides, it's stupid to expect everyone to use a version control
> system, particularly just to ward against bugs that have no business
> existing in the first place.

Actually, no, it's not. Using a VC system is something that more or less
every programmer should do. Combined with backups which, no doubt you
do, it makes the possibility of loosing work through someone elses fault
quite remote. A VC with a number back-up save function on your IDE is
the way to go.


> Really, you expect me to create an account and publish every little
> bit of code I play around with on github?

Publication of code for VCS isn't really necessary. RCS which was
released in 1982 didn't require it (actually, didn't support it). With
the advent of DVCS, it's not needed now.


> Sometimes I write some function or big static map or vector or
> something out a line at a time, saving every couple of minutes or if I
> pause for any reason. I'm certainly not about to commit code in such a
> state to a VCS, let alone publish it where others can see it.

That's what rebasing is for, although I agree it doesn't avoid the
usefulness of a numbered backup.

Phil

Fluid Dynamics

unread,
Oct 27, 2014, 11:21:35 AM10/27/14
to clo...@googlegroups.com
On Monday, October 27, 2014 5:05:55 AM UTC-4, Phillip Lord wrote:
Fluid Dynamics <a209...@trbvm.com> writes:

> On Saturday, October 25, 2014 10:42:24 PM UTC-4, tbc++ wrote:
>>
>> "What if my file had been corrupted, or truncated and only the first 42
>> bytes of the new version written thus far, or something like that at the
>> moment when the hang started?"
>>
>> So there's this new cool thing out there called a "version control
>> system". One of the more popular programs in this category is known as
>> git...check it out sometime, it'll help you relax when programming, knowing
>> that previous versions of your file are only a few keystrokes away.
>>
>
> Besides, it's stupid to expect everyone to use a version control
> system, particularly just to ward against bugs that have no business
> existing in the first place.

Actually, no, it's not. Using a VC system is something that more or less
every programmer should do. Combined with backups which, no doubt you
do, it makes the possibility of loosing work through someone elses fault
quite remote. A VC with a number back-up save function on your IDE is
the way to go.
 
I'm not going through the ritual of check-in and check-back-out every single time I'd normally hit control-S. Too much friction, too much work-that-isn't-development.

> Really, you expect me to create an account and publish every little
> bit of code I play around with on github?

Publication of code for VCS isn't really necessary. RCS which was
released in 1982 didn't require it (actually, didn't support it). With
the advent of DVCS, it's not needed now.

Objection: relevance? The OP specifically suggested github,

> Sometimes I write some function or big static map or vector or
> something out a line at a time, saving every couple of minutes or if I
> pause for any reason. I'm certainly not about to commit code in such a
> state to a VCS, let alone publish it where others can see it.

That's what rebasing is for, although I agree it doesn't avoid the
usefulness of a numbered backup.

I don't even know what "rebasing" is. I'd much rather not have to either, not when my current workflow is fine for me just so long as my tools have the courtesy not to threaten to crash in the middle of a save. How many hours, weeks, or months of ascending some no-doubt-steep learning curve would be involved in following your recommendation? Would I be able to resume making forward progress on my actual project by Christmas, or would it be closer to Valentine's Day?

Yohan Pereira

unread,
Oct 27, 2014, 11:31:20 AM10/27/14
to clo...@googlegroups.com
On Mon, Oct 27, 2014 at 8:51 PM, Fluid Dynamics <a209...@trbvm.com> wrote:
> Objection: relevance? The OP specifically suggested github,

git != github

http://en.wikipedia.org/wiki/Git_(software)
http://en.wikipedia.org/wiki/GitHub

Timothy Baldridge

unread,
Oct 27, 2014, 11:45:47 AM10/27/14
to clo...@googlegroups.com
Whenever someone has suggested something (using git, submitting a bug report), you've replied (paraphrase) "meh, I can't be bothered". Okay, that's fine, is it also okay if we reply to your bug report with "meh, we can't be bothered"?

I'm sure many people here are willing to help with your problems if you're willing to meet them half way. That's how free software works. You've been given an IDE for free, people have spent their time making something they give away. All they ask is that you be willing to give a bit in return in submitting a bug report or doing a bit of investigation on your own. 

Timothy

--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Phillip Lord

unread,
Oct 27, 2014, 12:13:13 PM10/27/14
to clo...@googlegroups.com
Fluid Dynamics <a209...@trbvm.com> writes:

>> Really, you expect me to create an account and publish every little
>> > bit of code I play around with on github?
>>
>> Publication of code for VCS isn't really necessary. RCS which was
>> released in 1982 didn't require it (actually, didn't support it). With
>> the advent of DVCS, it's not needed now.
>>
>
> Objection: relevance? The OP specifically suggested github,

You don't have to publish with github either, but then you do have to
pay them.


>
>> Sometimes I write some function or big static map or vector or
>> > something out a line at a time, saving every couple of minutes or if I
>> > pause for any reason. I'm certainly not about to commit code in such a
>> > state to a VCS, let alone publish it where others can see it.
>>
>> That's what rebasing is for, although I agree it doesn't avoid the
>> usefulness of a numbered backup.
>>
>
> I don't even know what "rebasing" is.

Rewriting history. The general usage pattern is that you start a feature
branch, make 20 attempts to get it working before you get it right. Once
it's right, you squash your previous commits down so that just the
correct changes get in. In the process, you lose the intermediate
history, which is a) good because you have deleted all the junk, so it's
easier to read and b) bad because you have lost the history.


> I'd much rather not have to either, not when my current workflow is
> fine for me just so long as my tools have the courtesy not to threaten
> to crash in the middle of a save. How many hours, weeks, or months of
> ascending some no-doubt-steep learning curve would be involved in
> following your recommendation?
>
> Would I be able to resume making forward progress on my actual project
> by Christmas, or would it be closer to Valentine's Day?

That sort of depends on you. But, either way, you'll understand
rebasing, and you'll have some mighty tales to tell about the rebase vs
merge controversy. I've always found these go down very well at parties
or romantic dinners.

Phil



Alex Miller

unread,
Oct 27, 2014, 1:52:50 PM10/27/14
to clo...@googlegroups.com

On Monday, October 27, 2014 10:21:35 AM UTC-5, Fluid Dynamics wrote:
  
I'm not going through the ritual of check-in and check-back-out every single time I'd normally hit control-S. Too much friction, too much work-that-isn't-development.

Doesn't Eclipse already have a local file history version system built in that captures every save?

Fluid Dynamics

unread,
Oct 27, 2014, 3:15:38 PM10/27/14
to clo...@googlegroups.com
On Monday, October 27, 2014 11:45:47 AM UTC-4, tbc++ wrote:
Whenever someone has suggested something (using git, submitting a bug report), you've replied (paraphrase) "meh, I can't be bothered".

The former suggestion, especially, seems excessively heavyweight for the particular circumstances. Like suggesting I trade in my Miata for an armored Brinks van for driving to work, because of the small chance of crossing paths with terrorists along the way. While neglecting other considerations, such as the vehicle's top speed and fuel economy among other things ... not to mention whether it will still fit in my parking space. :)

Colin Fleming

unread,
Oct 27, 2014, 5:02:06 PM10/27/14
to clo...@googlegroups.com
IntelliJ definitely does this, and since it also saves automatically (on losing focus, or on events like running something, or on 5 secs of inactivity) you get a very fine-grained history. I love this feature, I don't miss manual file saving at all. It basically works like a lightweight automatic VCS.

Message has been deleted

Marcus Blankenship

unread,
Oct 28, 2014, 12:19:29 PM10/28/14
to clo...@googlegroups.com
Agreed.  I've been amazed at how kind this group has been, despite your attitude of disrespect toward them.  

On Tue, Oct 28, 2014 at 9:09 AM, Dylan Butman <dbu...@gmail.com> wrote:
From your attitude and lack of respect for the very knowledgeable, experienced, and respectful people here trying to help improve and understand the short comings in your current workflow, I'd say you might be walking to work in the near future. Parking's free that way.

--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--

Marcus Blankenship

CREO Agency: {Solutions Architect, Principal}

mar...@creoagency.com

541-805-2736

@justzeros

Colin Yates

unread,
Oct 28, 2014, 1:59:02 PM10/28/14
to clo...@googlegroups.com
+1. When I first read that post I thought he was joking!

Fluid Dynamics

unread,
Oct 28, 2014, 4:28:54 PM10/28/14
to clo...@googlegroups.com
On Tuesday, October 28, 2014 12:19:29 PM UTC-4, Marcus Blankenship wrote:
Agreed.  I've been amazed at how kind this group has been, despite your attitude of disrespect toward them.  

On Tue, Oct 28, 2014 at 9:09 AM, Dylan Butman <dbu...@gmail.com> wrote:
From your attitude and lack of respect for the very knowledgeable, experienced, and respectful people here trying to help improve and understand the short comings in your current workflow, I'd say you might be walking to work in the near future. Parking's free that way. 

Really? Because I'm not the one who accused someone of nonexistent "shortcomings" and then made the impotent threat to revoke someone's driver's license -- and then had his threatening post deleted by the moderator. Hmm. :)

Meanwhile, I think some people still have not grasped the scale of what I'm doing, namely how small it is. Small, experimental, limited to one person, and so forth. Version control, I repeat, would be MASSIVE overkill under the circumstances. It would make barely any less sense to reach for version control before writing a "hello, world" program.

IF the project grows enough and is successful enough, then I might consider creating a github account and basing it there. But right now things are NOWHERE NEAR that kind of state. I am unsure how else to try to communicate the fact of how small, unpublishable, and etc. it is at this stage, so I will probably give up on anyone here who still seems to think it's big enough, has enough developers, or whatever to benefit from version control. It's not. So far there's two files of combined size 1200 lines, most of them comment and docstring lines. There might be as many as 200 actual lines of Clojure in there so far. Using a version control system, and dealing with all of the associated ceremony and formalities, would be like renting a factory and setting up all of the process monitoring, conveyor belt equipment, robot arms, safety inspections, permits, and everything else attendant the use of such a facility, just to put together a high school shop project wooden birdhouse to hang from a tree in my own back yard. :) It would be like filing a flight plan with the FAA before going to the city park with a kite. Like getting in the car and driving to the house next door to visit the neighbors for coffee. Like bringing a map, compass, pack full of survival supplies, camp stove, satellite phone, avalanche beacon, ropes, pitons, and sturdy hiking boots to take a walk in NYC that crosses through Central Park. Like commissioning the Glomar Explorer to fish a ring out of a toilet bowl. Bringing lawyers and pages of CYA contract text to a negotiation with a Starbucks for the purchase of a latte. Taking out a business license and city zoning permit to open a kid's five-cent lemonade stand. Seeking an import license before bringing a couple of Disney T-shirts back from EuroDisney. Requiring a full credit check before loaning your neighbor a screwdriver. Using steel-reinforced concrete to build a sandcastle.

I trust everyone now gets the picture, and that any exception is named Sheldon Cooper? :)


J Irving

unread,
Oct 28, 2014, 4:35:46 PM10/28/14
to clo...@googlegroups.com
*plonk*

Dave Ray

unread,
Oct 28, 2014, 4:36:28 PM10/28/14
to clo...@googlegroups.com
Do the names Ken Wesson or Cedric Greevey mean anything to you? Just checking.

Marcus Blankenship

unread,
Oct 28, 2014, 4:36:41 PM10/28/14
to clo...@googlegroups.com
What I grasp is that you had a problem with free, open source software which has the version number of 0.29.0, and you were upset because that it crashed in a way which could have damaged your project.  Then others tried to offer solutions, which you felt were ridiculous (based on your analogies below).  I’m not sure what else to say.  I’ll not feed the flames anymore, but I stand by my original statement about the great kindness you have been shown, despite how you feel about it.



--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Best,
Marcus

Marcus Blankenship
\\\ Problem Solver, Linear Thinker
\\\ 541.805.2736 \ @justzeros \ skype:marcuscreo

Colin Yates

unread,
Oct 28, 2014, 4:39:57 PM10/28/14
to clo...@googlegroups.com
I think you are missing the point of the "backlash" (my word).

Nobody is arguing that the functionality (e.g. crash) you are seeing isn't troublesome. A few people tried to mitigate that by suggesting workarounds *whilst still accepting the functionality isn't sufficient*. I haven't read a single reply that said "No, that functionality is correct" or "no, this isn't particularly catastrophic".

The backlash is against your attitude - it was all "how dare the universe fail and disrupt my glorious plans. I demand you all stop immediately and fix this and be thankful I might consider using it again!". You could have approached this in so many ways, throwing your toys out of the pram isn't going to get you anywhere.

I am not even talking about Open Source and how you are on the cutting edge so these things happen etc., for me it is simply the "I demand" and "absolutes" and "I say jump, now do it" attitude - it is all so wrong.

Luc Prefontaine

unread,
Oct 28, 2014, 4:53:36 PM10/28/14
to clo...@googlegroups.com
Ka-plonk :)
--
Luc Prefontaine<lprefo...@softaddicts.ca> sent by ibisMail!

Charlie Griefer

unread,
Oct 28, 2014, 5:01:47 PM10/28/14
to clo...@googlegroups.com

On Oct 28, 2014, at 1:28 PM, Fluid Dynamics <a209...@trbvm.com> wrote:

Meanwhile, I think some people still have not grasped the scale of what I'm doing, namely how small it is. Small, experimental, limited to one person, and so forth. Version control, I repeat, would be MASSIVE overkill under the circumstances. It would make barely any less sense to reach for version control before writing a "hello, world" program.

IF the project grows enough and is successful enough, then I might consider creating a github account and basing it there.

As has been mentioned already, git != github.

Really, if the risk of losing your changes to this file are enough to warrant the tirade that you’ve been on, it’s enough of a risk to warrant doing a git init in the directory.

--
Charlie Griefer

“If there ever is a tomorrow when we’re not together, there is something you must always remember. You are braver than you believe, stronger than you seem, and smarter than you think." — Winnie the Pooh




Fluid Dynamics

unread,
Oct 28, 2014, 5:14:45 PM10/28/14
to clo...@googlegroups.com
On Tuesday, October 28, 2014 5:01:47 PM UTC-4, Charlie Griefer wrote:

On Oct 28, 2014, at 1:28 PM, Fluid Dynamics <a209...@trbvm.com> wrote:

Meanwhile, I think some people still have not grasped the scale of what I'm doing, namely how small it is. Small, experimental, limited to one person, and so forth. Version control, I repeat, would be MASSIVE overkill under the circumstances. It would make barely any less sense to reach for version control before writing a "hello, world" program.

IF the project grows enough and is successful enough, then I might consider creating a github account and basing it there.

As has been mentioned already, git != github.

Really, if the risk of losing your changes to this file are enough to warrant the tirade that you’ve been on, it’s enough of a risk to warrant doing a git init in the directory.

It's not "doing a git init" that concerns me. It's:
* Finding and installing yet another piece of software
* Learning at least the basic ins and outs of that piece of software
* Configuring it, since it sounds like commandline stuff that probably does not simply work OOTB without setting PATH and probably fiddling with other things
* Figuring out how to configure CCW to integrate with that other piece of software -- if that's even possible
* Manually mucking about checking out, copying the files into CCW's workspace, and later copying the files back out and checking in if not
* Extra steps around every file save or open, namely whatever is needed to do checkins and checkouts from version control.
* Dealing with whatever subset actually happens of the new things-that-can-go-wrong that get introduced by all this added complexity.

One warning flag already apparent is the very phrase "doing a git init in the directory" in your post. Sounds like I'd be having to do a lot more fiddling around at the command line than I currently do. Infinitely more, in fact, since the current amount is zero. :)

I remain wholly unconvinced that it's worth the hassle for a project this small.

Raoul Duke

unread,
Oct 28, 2014, 5:19:00 PM10/28/14
to clo...@googlegroups.com
> I remain wholly unconvinced that it's worth the hassle for a project this
> small.

personally i find your points persuasive; i hate going through that
stuff when i just wanted to finish a feature or whatever. still,
losing your code would suck a lot, and not having history can be a
frustrating thing sometimes, i've experienced.

i would hope that all developers already know and use some kind of
familiar vcs, even if it is just rcs on the same hard disk; at least
you get history then. the question to me is less "git or nothing" but
"vcs or nothing" to which i hope all devs vote for vcs.

if it is svn or a popular dvcs then you can probably get it hosted /
backed up with a cloud repro easily for free somewhere.

Dylan Butman

unread,
Oct 28, 2014, 5:22:03 PM10/28/14
to clo...@googlegroups.com
This still sounds like a case of "I haven't learned how to use git yet, and although that means I can't possibly understand how it might improve my workflow, I don't want to take the time to learn a fundamental piece of software that's used by the vast majority of the programming community." 

Dan Cross

unread,
Oct 28, 2014, 5:26:55 PM10/28/14
to clo...@googlegroups.com
Can we please stop feeding the troll?  Thanks.

Andy Fingerhut

unread,
Oct 28, 2014, 5:55:33 PM10/28/14
to clo...@googlegroups.com
I think root of the advice you are getting is "keep backups of important files".

If you don't keep backups of important files, you are asking for trouble, even if every piece of software on your computer has no bugs.

Andy

Fluid Dynamics

unread,
Oct 28, 2014, 6:20:01 PM10/28/14
to clo...@googlegroups.com
On Tuesday, October 28, 2014 5:19:00 PM UTC-4, raould wrote:
> I remain wholly unconvinced that it's worth the hassle for a project this
> small.

personally i find your points persuasive; i hate going through that
stuff when i just wanted to finish a feature or whatever. still,
losing your code would suck a lot, and not having history can be a
frustrating thing sometimes, i've experienced.

CCW's local history seems more than adequate for my needs in that area, combined with occasional HDD backups. But is reliant on CCW's save feature not being capable of scribbling all over the file and leaving the local history data in a corrupted state, of course. :)

Fluid Dynamics

unread,
Oct 28, 2014, 6:21:11 PM10/28/14
to clo...@googlegroups.com
On Tuesday, October 28, 2014 5:22:03 PM UTC-4, Dylan Butman wrote:
This still sounds like a case of "I haven't learned how to use git yet, and although that means I can't possibly understand how it might improve my workflow, I don't want to take the time to learn a fundamental piece of software that's used by the vast majority of the programming community." 

I have a full understanding of the benefits of version control, including that they don't scale down to a project this small, at least not when overhead from additional ceremony around commonplace actions like file save is considered.
 

Sam Raker

unread,
Oct 28, 2014, 8:36:09 PM10/28/14
to clo...@googlegroups.com
I version everything. I don't version something because it's huge, or important, or shared, or even worth sharing. I version because Git is an important and widely-used tool, and because it's better than regular saving. You've already downloaded and learned at least one programming language, you've already downloaded and learned how to use at least one IDE. One more tool is not a crippling burden. 

Alan Moore

unread,
Oct 28, 2014, 8:50:11 PM10/28/14
to clo...@googlegroups.com

CCW's local history seems more than adequate for my needs in that area, combined with occasional HDD backups.
 
This is a great idea - I was going to suggest it myself. I sometimes make backup copies of small project directories such as yours just using cp -r myproject myproject.bak - rinse, repeat, works great! No need for source control for toy projects.

But is reliant on CCW's save feature not being capable of scribbling all over the file and leaving the local history data in a corrupted state, of course. :)


My guess is that you can trust CCW's save - it is probably not even implemented by CCW in the first place. That functionality is probably provided by the eclipse platform, but that is just a guess.

Take care.

Alan

Fluid Dynamics

unread,
Oct 29, 2014, 12:41:10 AM10/29/14
to clo...@googlegroups.com

And if the hang I saw is also provided by the eclipse platform? ;)

Laurent PETIT

unread,
Oct 31, 2014, 2:24:04 PM10/31/14
to clo...@googlegroups.com
Hello,

I'm the main CCW developer.
I have double checked the source code, and can confirm that the save mechanism is handled by Eclipse. So one can expect it to be as stable as every other save action performed in the Eclipse IDE.

There are a number of listeners that are triggered after the Save action has completed.  It's most probably after the save, and presumably inside one of those listeners, that the hang occured.

A central goal of CCW is to be as stable as possible. So if you are able to describe how to deterministically reproduce the issue, then please create an issue and put the description there. Also, if you can attach the workspace's .metadata/.log file, I can take a look at it. 


Please try to adopt a neutral language, leaving out the sarcasms and implicit/explicit injonctions, etc. Those are totally inappropriate. Being a "user" of a "service" does not give you the right to act like that. To that matter, it is even irrelevant that the service is paid for, or free. I know not everybody is equal with regards to how to best communicate, but it can be learned. Listen to the advices given in this thread.

Cheers,

Laurent






2014-10-26 3:38 GMT+01:00 Fluid Dynamics <a209...@trbvm.com>:
Would somebody mind explaining to me why I just had CCW 0.28.1.STABLE001 hang with 100% CPU usage when I edited this line:

      :=                  (= v cr))))

to this:

      =                   (= v cr))))

and then hit control-S?

I do not ever want to see anything purportedly "STABLE" do something like that ever again, and that goes *one trillionfold* if it's IN THE MIDDLE OF A GODDAMN SAVE. What if my file had been corrupted, or truncated and only the first 42 bytes of the new version written thus far, or something like that at the moment when the hang started? Fortunately, in this instance that had not happened and the file seems to have been saved completely just *before* the hang. I might not be so lucky next time. That is why this cannot be permitted to happen again, and why therefore an explanation is required, and urgently, that I might be perfectly able to avoid triggering this severe, showstopping, and inexcusable bug again until such time as an 0.29.1 is published that has it permanently fixed.

--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.



--
Laurent Petit


--
Laurent Petit

Fluid Dynamics

unread,
Oct 31, 2014, 5:06:47 PM10/31/14
to clo...@googlegroups.com
On Friday, October 31, 2014 2:24:04 PM UTC-4, Laurent PETIT wrote:
Also, if you can attach the workspace's .metadata/.log file, I can take a look at it. 

I have no idea how to reproduce it, which is part of the problem: I don't know what to avoid doing, in order to ensure it doesn't happen again until an update to CCW fixes it for good.

As for that log file, I had a look and there's nothing that identifies the problem. The log entry immediately prior to the hang is a complaint that some map literal has an odd number of forms, which I must have left incomplete when I went to make that other edit. There are lots of other similar entries, probably from other times I saved while there was a half-written map literal on my to-do stack, and it didn't hang on any of those other saves. The log entry immediately following that one is a session start message. So whatever was different that one time does not show up in the log, unfortunately, rendering the log unhelpful in this instance.

Luc Préfontaine

unread,
Oct 31, 2014, 6:23:42 PM10/31/14
to clo...@googlegroups.com
Just curious, how can you expect a fix if you do not provide any information that
could support a serious investigation ?

I read the eclipse log file from time to time and guessing which error is
relevant or not is an educated guess at best except if you are deep in
Eclipse plugins coding.

Creating an issue in the ccw project page takes under a minute including attaching
the log file.

If you expect the developer to find the root cause from thin air, you will wait
for eternity. Laurent is very proactive in investigating problems but w/o any grounds,
he's better having a glass of wine than trying to guess what happened here.

I would do the same...

Luc P.
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@googlegroups.com
> Note that posts from new members are moderated - please be patient with your first post.
> To unsubscribe from this group, send email to
> clojure+u...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
--
Luc Préfontaine<lprefo...@softaddicts.ca> sent by ibisMail!

Fluid Dynamics

unread,
Oct 31, 2014, 11:30:07 PM10/31/14
to clo...@googlegroups.com
On Friday, October 31, 2014 6:23:42 PM UTC-4, Luc wrote:
Just curious, how can you expect a fix if you do not provide any information that
could support a serious investigation ?

I read the eclipse log file from time to time and guessing which error is
relevant or not is an educated guess at best except if you are deep in
Eclipse plugins coding.

Creating an issue in the ccw project page takes under a minute including attaching
the log file.

If you expect the developer to find the root cause from thin air, you will wait
for eternity. Laurent is very proactive in investigating problems but w/o any grounds,
he's better having a glass of wine than trying to guess what happened here.

I would do the same...

It's not *my* fault the log file doesn't contain anything unusual between before the hang happened and after recovery. If CCW didn't log anything that helps indicate what was different or unusual on that occasion of saving, then there's simply not much I can do about it.

Ben Wolfson

unread,
Oct 31, 2014, 11:40:37 PM10/31/14
to clo...@googlegroups.com
On Fri, Oct 31, 2014 at 8:30 PM, Fluid Dynamics <a209...@trbvm.com> wrote:

It's not *my* fault the log file doesn't contain anything unusual between before the hang happened and after recovery. If CCW didn't log anything that helps indicate what was different or unusual on that occasion of saving, then there's simply not much I can do about it.

You could, theoretically, send it along anyway, per the developer's request, and let him make the determination of whether or not there's anything useful there.

--
Ben Wolfson
"Human kind has used its intelligence to vary the flavour of drinks, which may be sweet, aromatic, fermented or spirit-based. ... Family and social life also offer numerous other occasions to consume drinks for pleasure." [Larousse, "Drink" entry]

Luc Prefontaine

unread,
Oct 31, 2014, 11:44:49 PM10/31/14
to clo...@googlegroups.com
I'll repeat myself :

'...guessing which error is
relevant or not is an educated guess at best except if you are deep in
Eclipse plugins coding.'

Laurent stated clearly that saving
a file triggers a number of things
in several plugins.

There could be suspicious messages in the log
that have nothing to do with CCW
and that could give an idea of the root of
the problem.

I'll leave you to think about this
and figure out what should be your
next action.

Guess what ? It's not adding another
email to this thread, I wrote 'action' above.

Luc P.
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clo...@googlegroups.com
> Note that posts from new members are moderated - please be patient with your first post.
> To unsubscribe from this group, send email to
> clojure+u...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>
--

Fluid Dynamics

unread,
Oct 31, 2014, 11:51:07 PM10/31/14
to clo...@googlegroups.com
On Friday, October 31, 2014 11:44:49 PM UTC-4, Luc wrote:
I'll repeat myself :

'...guessing which error is
relevant or not is an educated guess at best except if you are deep in
Eclipse plugins coding.'

Laurent stated clearly that saving
a file triggers a number of things
in several plugins.

There could be suspicious messages in the log
that have nothing to do with CCW
and that could give an idea of the root of
the problem.

And I'll repeat *my*self: each save I did in the ten minutes before the hang produced a particular message in the log. The save I did that triggered the hang produced the exact same message. The very next message was the first message generated by a fresh CCW instance starting up. There was nothing in between. There was nothing different, special, or unusual anywhere near (and prior to) the time of the hang, nor anything missing that was present for previous saves. Ergo there was nothing in the log that was any kind of clue to the reason for the hang.

Dylan Butman

unread,
Nov 1, 2014, 12:09:33 AM11/1/14
to clo...@googlegroups.com
Is it hard to actually send the log? Are you purposefully uncooperative to people trying to help?


--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to a topic in the Google Groups "Clojure" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/clojure/6Vw7wuVXz9E/unsubscribe.
To unsubscribe from this group and all its topics, send an email to clojure+u...@googlegroups.com.

Fluid Dynamics

unread,
Nov 1, 2014, 1:12:43 AM11/1/14
to clo...@googlegroups.com
On Saturday, November 1, 2014 12:09:33 AM UTC-4, Dylan Butman wrote:
Is it hard to actually send the log? Are you purposefully uncooperative to people trying to help?

My inspection of the log indicates that the amount of information (namespace names, other things) about what I'm working on that it contains is non-zero. So, not only would there be some effort involved in signing up for wherever-it-was and uploading a copy there, but also some damage to my privacy, and all for zero gain, since it is already a mathematical certainty that the log contains nothing enlightening on this particular issue. Which can only mean one of two things: either you believe I'm lying when I describe the log entries immediately around the time of the hang, or you are so insistent on seeing the log anyway because you're after something else that it is in it, and are not being honest about what you're really looking for. So, either you're untrusting or untrustworthy, and in neither case am I especially inclined to trust you, Mr. Butman.

James Qiu

unread,
Nov 1, 2014, 4:36:18 AM11/1/14
to clo...@googlegroups.com
Try to give Eclipse more memory like this:

eclipse.exe -vm e:\jdk8\bin\javaw.exe -vmargs -Xms2048m -Xmx4096m

--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clo...@googlegroups.com
Note that posts from new members are moderated - please be patient with your first post.
To unsubscribe from this group, send email to
clojure+u...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups "Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email to clojure+u...@googlegroups.com.

Alex Miller

unread,
Nov 1, 2014, 1:53:59 PM11/1/14
to clo...@googlegroups.com
This thread needs to end, it's no longer productive. 

Fluid Dynamics - file a ticket for CCW with information useful for addressing the problem if you have it. Otherwise, I do not think there is anything left that anyone can help you with here. 

Everyone else - thank your for all the helpful comments.
Reply all
Reply to author
Forward
0 new messages