4:00 PM
this is the cooking pot for meta issues, and that shouldn't change..

so maybe the better question would be to define what "site business" is (as in, hard rule) and then say 10 minutes (less) of discussion should be moved

@Vogel612 No worries. I can imagine it's hard.

@ARedHerring site business: questions and discussion pertaining directly to: questions, answers, comments and behaviour on codereview.se and meta.codereview.se

I think the actual problem with conversations is whether they can be interrupted for site business or not.

@Mast correct. here that wasn't the case.

4:02 PM
Every once in a while we're all joking around since there's no site business anyway. That's usually not a problem, since we can halt it instantly.

but I only realized that when I went trough to move stuff..

@rolfl How did you do yours? If you don't mind my asking.
@SuperBiasedMan It happens. He accidentally got a couple of mine (that aren't TDD related) as well. ;) @Vogel612 can't be perfect. :)

@EBrown "Simple" really ...... I defined a window in to the set, with a center point, and a zoom level. A zoom level of 1 is defiend to cover the whole set from -2.5->1.0 and -1.0->1.0

@Vogel612 is perfect enough for me. (ಥ﹏ಥ)

@rolfl I meant the actual algorithm. :P

4:10 PM
So, with that, I can "just"..... map that on to a 2D integer array, where the array lists the number of actual iterations computed as follows:
    public static final int[][] mandelbrot(final int pixWidth, final int pixHeight, final int limit, final Window window) {

final double mandWidth = 3.5 / window.getZoom();
final double mandHeight = 2.0 / window.getZoom();
final double xStep = mandWidth / pixWidth;
final double yStep = mandHeight / pixHeight;

if (xStep < MINSTEP || yStep < MINSTEP) {
return overZoom(pixWidth, pixHeight, limit);
}

final double left = window.getCenterX() - mandWidth / 2.0;

I wonder if my use of Point and PointF is slow.

@rolfl Interesting Java 8 usage

Oh holy f
Yeah, Point and PointF are sloww.
Got mine down to 695ms.
For that 4096x2048 image.
Or did I?
Nope, 1935ms still. I'm so confused now.

What I really like is my use of colors for the graphic..... here's how I assign the colors to each limit:
public static final int[] buildColors(final int limit) {
final float root = (float)Math.sqrt(limit);
return IntStream.rangeClosed(0, limit)
.map(c -> limit - c)
.mapToObj(c -> Color.getHSBColor((c % root) / root, 1.0f, (c / root) / root))
.mapToInt(c -> c.getRGB())
.toArray();
}
In essence, I spiral out from the center of the Hue wheel, with black representint the "limit".....

LOL So using xSquared + ySquared < twoSquared is actually faster than using xSquared + ySquared < 4.0.

4:15 PM
@EBrown Huh?

@skiwi Yeah, that's what I thought.

@EBrown what is twoSquared ?

@rolfl A float, which might be why it's faster.

exactly
declare the 4.0 as 4.0f

Yeah.
Yeah, same speed as with twoSquared.
I'm surprised your Java implementation is that much faster than mine.

4:19 PM
Why ... ? ;-)

It just seems wrong. Lol

I am running on an 8-core Core-i7.

Ah, I'm on a hex-core Phenom II x6.

> Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz

You should run mine on your rig and see how it benches. ;)

4:20 PM
> Linux solarium 3.13.0-63-generic #103-Ubuntu SMP Fri Aug 14 21:42:59 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

I currently have to shift my brot to the right.
@rolfl :(

@rolfl I saw EBrown's Mandelbrot question for C#. Is your Java code also publicly available?

Remember though that @rolfl is an expert in optimization ;)

@skiwi That is true as well.

@MartinR Putting it up in a question soon.

4:21 PM
Though my code should actually be faster than his.
Because I don't calculate x * x and y * y twice.

I am using double throughout....

@rolfl I can use double if it makes you feel better? :P
Using double now, 1898ms.

What I'm saying is that maybe you have some implicit casts somewhere, or other type conversion problems...

@rolfl No, I think it's because I only have 6 cores at 2.8Ghz.

Technically I have 4 cores, with 8 threads

4:24 PM
Mine often feels like 2 cores and n threads.
Oh man so close.
I need a faster way to save images.

@Amrita Look, this is a community where users can ask constructive questions and help other fellow programmers around the world. And not argue on whether to answer a poor question or not. Your program was based on a single logic and purely logical plus not helpful to other users. That's why it was considered poor quality. I don't mind answering any type of questions. These questions must be asked on codereview.stackexchange.com and not on SO. If you are still having more algorithmic kind of doubts, I can give you my email. I'll be more than happy to solve it. — Mr. Robot 42 secs ago

Up to 2100ms.
But, that's with a properly centred image.

@Mr.Robot This question isn't actually on topic for Code Review since it's not working. CR is only for code working as intended. — SuperBiasedMan just now

Weird. Going from 256 chunks to 16 chunks increased speed.

Alright, time for a full test run of my accounts-filtering macro. First month's printout should be done in 10 minutes or so.

4:39 PM
@EBrown less context switches and a better caching for the cpu I'd randomly guess

@Vogel612 Yeah, I'm not certain why but it looks like the optimal number of chunks is numberOfCores * 2.
On my 6-core rig 12 has been the fastest routinely.

@EBrown Looks fine.

@Hosch250 I've a lot to add to that yet, though.
A few more examples/scenarios I want to cover.

IT WORKS!

Also this question might be better placed at [SE Code Review] ( — πάντα ῥεῖ 31 secs ago

4:55 PM
Alright. 2.16 Million files to filter. Time to leave this running overnight and see if ti crashes or not :)

Wow, I'm surprised how much attention my repetitive console prompt got.
The title must really be the kicker there. ;)

@EBrown It is a brilliant title :)

5:18 PM
@MartinR See: Mandelbrot Streams

1

A recent Mandelbrot question (Hi @EBrown) in C# inspired me to build my own using the Java 8 parallel streams to implement the parallelism that's useful for computing each pixel value. The intention is to incorporate this in to a graphical interface that allows you to navigate and zoom in on the...

lol.. monkey typo spotted

That's good
Is it correct that every pixel in the Mandelbrot image can be calculated by itself?
If so, then I wonder if on the GPU it makes more sense to calculate this in a Fragment Shader or in a Compute Shader via CUDA or similar OpenCL

5:33 PM
Technically, the center of each pixel is mapped to a specific point in the cartesian space......
if that center point is determined to be in the mandelbrot set, then the whole pixel is "in".
To compute whether it is in the set the common way is to iterate through the computations to determine whether it is bound, or not.
If it escapes the bounds, then it is not in the set, and you record how many iterations it took to escape.
The color in the image relates to how many iterations it took to escape.... black is "it did not escape".

The pseudocode en.wikipedia.org/wiki/Mandelbrot_set#Escape_time_algorithm there doesn't seem to indicate that, but I may be reading it wrong

> A repeating calculation is performed for each x, y point in the plot area and based on the behavior of that calculation, a color is chosen for that pixel.
For each pixel (Px, Py) on the screen, do:

So the color picking is the hard thing to multithread?

Well, no... the hard part is that for coordinates in the set you may have to run the computation a "limit" number of times (we are using 1000).....
A coordinate that escapes quickly will be fast.

Okay, so length of computation depends on number of iterations

5:39 PM
And also the number of pixels.....
A detailed image will require a lot more computations.

But does it pose problems for multithreading?
Say you have N threads, if you make sure they are always busy calculating a pixel, then it will kinda balance out

I parallelized it on a row-by-row basis... each row is delegated to a thread.

But say, I go down the GPU route, then compute shaders with some memory fences that only release after all pixels have been calculated would probably make most sense
I should probably do it in C++, but the Java is strong in this one
Most computation will be in OpenCL language anyway

hardwarerecs.SE just hit private beta, we'll see how long it survives

@skiwi You can parallelize the computation in many, many ways. Each pixel is essentially independent.
A GPU seems like a good call. An issue is that for "real" mandelbrot generators you often have to go to coordinates that can't be expressed in the precision of double.

5:54 PM
You could build an array of pixel points, then use n threads to do the calculation.

@rolfl Pretty small it seems?

@rolfl That's... quite deep
I wish I had an Oculus Rift
Or maybe I wish I wouldn't

That's what she.... nevermind.
4

@rolfl I had to think about it, but can't understand if that's positive or negative

6:01 PM
+ve

+ve?

Apple TV selling point: screensavers

It sounded more like a surprise... and that would be rather odd
What the... happened at 2:20
Mandelbrot took LSD?
@rolfl That's very impressive ;)
Yes, I watched all of it

I need 80 rep to mortarboard...I can do this!

I read that as "I need 80 rep to mandelbrot...I can do this!"

6:07 PM
@skiwi That too.

I know what I'll be dreaming about tonight.

@skiwi I hope it's not Mandelbrot's.
@rolfl So high...

0

The application listens for OP_RETURN messages on the Bitcoin blockchain and prints them to standard output. OP_RETURN is a custom transaction locking script that can store data, but nothing beyond that. It's generally used for storing small amounts of metadata in the blockchain. I would like som...

I wonder what it looks like watching that video on drugs

I'm actually quite curious now.

6:10 PM
90% of everything I've seen so far on the apple conf can be categorized under "fancy UI"

Is that all?

@JeroenVannevel 90% of everything from Apple can be categorized under "fancy UI"

Well you could skip ahead 7 minutes by talking to siri, so I'm giving them a few points for that

@EBrown 100% of 90% of everything from Apple can be categorized under "fancy UI"

This is the most boring presentation ever

6:11 PM
Apple is great, they claim to revolutionaize things by having just one button, but then add more... ;-) Still, people think their interfaces have 1 button.
Instead, they now have 4 hard-to-use buttons, and one easy one.

@rolfl The owner of the company I work for alleges his car only has 4 buttons.
But it doesn't, it has plenty more.
(I've seen inside it.)
Also, @rolfl, did you read the description on that video?
> Each frame was individually rendered at 640x480 resolution and strung together at 30 frames per second. No frame interpolation was used. All images were lovingly rendered by 12 CPU cores running 24/7 for 6 months.

6... months?

That's dedication.

Yes, that is interesting.... in a few weeks I will have access to >4000 cores and I need a distributed computational test to ensure they are all busy.......

I would have given up after about 20 minutes.
@rolfl LOL

6:14 PM
@rolfl "test"

I lie, actually, I will have access to >4000 hosts, and they each have 16 or 32 cores depending.
3

@rolfl Even better.
I need to get zooming working on my Mandelbrot generator.
Somehow, it does not work properly.

@rolfl think of all the bitcoins

ASIC will still win.

@rolfl ASIC?

6:16 PM
An application-specific integrated circuit (ASIC) /ˈeɪsɪk/, is an integrated circuit (IC) customized for a particular use, rather than intended for general-purpose use. For example, a chip designed to run in a digital voice recorder or a high-efficiency Bitcoin miner is an ASIC. Application-specific standard products (ASSPs) are intermediate between ASICs and industry standard integrated circuits like the 7400 or the 4000 series. As feature sizes have shrunk and design tools improved over the years, the maximum complexity (and hence functionality) possible in an ASIC has grown from 5,000 gates...

Are there Mandelbrot ASICs?

@rolfl Ah.
This is such a hard thing...not sure why but my Mandelbrot will not scale correctly.

@rolfl burn them all and put them in FPGA

Math.... can be a pain.

@rolfl Yes.
Especially when I'm working with double values that are wrong.

@Mast ?!?!?

StackExchange warned me, my bounty on codereview.stackexchange.com/questions/96324/… ends in 3 days. Any answer is welcome.

-1

function [x A b w]=lgm1(T,N) syms t; v=leg(T,N)+leg(T,N+1); x=solve(v==0,t); x=double(x); x=real(x); x=sort(x); %w=sort(w); z=(2./T.*x)-1; w=zeros(N+1,1); %weights of L-G-R collocation method w(1)=2/(N+1)^2; % for j=2:N+1 k=leg1(T,N); h=subs(k,t,z); w(2:N+1)=((1-z(2:N+1))./((N+1)^2.*h(2:N+1).^2)...

redude dude.

@Caridorc "Stack Exchange" ;)
I need someone to help me with maths. D:

6:35 PM
That function seems very maintainable

Also, @Caridorc, if it weren't Ruby I would help you.

6:53 PM
off topic??? ▼▼▼
0

I've found a method that creates a text file that looks like: GenerateAndWriteFile(/*params*/) { List<string> linesToWrite = new List<string>(); TextWriter outputFile = new StreamWriter(filename, false); // a bunch of lines like this linesToWrite.Add("stuff"); //... fo...

@EBrown, tell me

@Caridorc Ruby, can't help you with that.
@Malachi Yes.

@Mast, you mean with the cipher?

@Mast I already VTC'd

2 more, example code.

6:56 PM
@Caridorc I don't know Ruby man, so I can't really say much on it.

@Caridorc shouldn't that be Poly-Alphabetic?

@Vogel612 yup, I forgot that nothing end in i in English :)

0

I've found a method that creates a text file that looks like: GenerateAndWriteFile(/*params*/) { List<string> linesToWrite = new List<string>(); TextWriter outputFile = new StreamWriter(filename, false); // a bunch of lines like this linesToWrite.Add("stuff"); //... fo...

actually... that comes from latin..
@CaptainObvious somebody drop a comment on that one, please

7:00 PM
nvm me. I should've known...

@Vogel612 do not worry I hate dead languages

I actually could have studied greek in High School...

> You've earned the "Popular Question" badge (Question with 1,000 views) for "A completely repetitive console prompt, a completely repetitive console prompt".

alas I went for french. was easier with already having been confronted with latin

@Vogel612 I have been forced to study latin 3 years and will have to study it for 2 more years...
You are lucky, French is oh so easy

7:03 PM
@Caridorc enjoy it. French is only oh so easy after latin
and the orthography in french is a royal PITA:

@Vogel612 or after any latin language

two [dö] deux...

such as Italian my language. Latin makes nothing easier for me

yea I had a short episode with Dante's Commedia Divina in original middle italian or whatever the crap that was..

I used to know the first 100 verses by heart of Dante's Commedia. I forgot a good part of them

7:06 PM
after that we read the Nibelungenlied in middle high German

0

I'm trying the sum the primary diagonal and the secondary diagonal of a matrix, and saving all the results in an acumulator, but my code breaks at the secondary matrix, could you help me please? Here is my code #include<bits/stdc++.h> using namespace std; int main() { int y=0, x=0, acum=0; cin>>y

3

I am following a simplified code review process for GIT commits where developers add message in GITHUB web UI saying @review pending by @user_a, @user_b ( user_a and user_b are valid GIT users ) for direct GIT COMMITs. Later reviewer adds another message in GITHUB web UI saying @reviewed by @re...

Wewt!
Finally got my Mandelbrot utility to support specific regions.
(It's way crisper as a png, but SE chat makes it a jpg.)

@Ebrown given the fractal frenzy of the last days, this should really be a community challange

@Caridorc I might propose it for October. ;)

7:17 PM
@EBrown excellent idea, you have my upvote

Wait, how often/when do we do Community Challenges?

@EBrown one per month

I don't see October 2015 up yet.

#goforit

@EBrown Technically, it's only convention that there's a new one once per month

7:20 PM
Technically you shouldn't call a 7 months thing in the third retry convention...

So does that mean Community Challenges have died out?

this is the third attempt..
go make an October post.

Alright, I'll do just that.
0

I don't see one of these yet, so here's the question for the proposals for the October 2015 Community Challenge! It's time to choose a community-challenge for October 2015. Post your challenge as an answer to this question. Feel free to resubmit non-winning ideas from previous months. Vote f...

@EBrown What math problem do you have?

@MartinR Ah, I fixed it already.
For some reason I couldn't recentre my Mandelbrot set.
Gah, I'm not sure what answer to accept on one of my questions. They are all so good! :(

7:28 PM
OK. (Unfortunately I was not able to run your code. I have "only" a Mac and did not manage to make it compile and run with Mono.)

Haskell in Geany with inverted colors is pretty cool. Glowing Yellow Types on black background

@MartinR Ah, yeah, it requires System.Drawing at the moment.
And System.Drawing.Imaging.
But, I might be able to fix that soon @MartinR. :) Maybe I can make it Mono compatible.

@Caridorc you may want to delete that message...

@Vogel612 done, sorry for chat pollution :)

it's more about the other one, you know?
the one where we can see your name and OS preference...

7:32 PM
facepalm

@Vogel612 As curious as that is, it now shows that his name Caridorc is an anagram for riccardo.

is a bit old to delete now.
flagged
anyhow, my name is not a big secret
@EBrown it was chosen on purpose
And Tergilti

Well, 75 rep to mortarboard.

is an almost an acronym of my surname
one i too few
@EBrown I think rep is lowered only if the mod choses to do so

@Caridorc No, I mean I need 75 rep to cap for the day.

7:36 PM
2

I don't see one of these yet, so here's the question for the proposals for the October 2015 Community Challenge! It's time to choose a community-challenge for October 2015. Post your challenge as an answer to this question. Feel free to resubmit non-winning ideas from previous months. Vote f...

@EBrown ah fiuh, I though flagging a post of mine costed 75 rep

@Caridorc No, it can cause an auto-mute though (depending on how many flags it gets and how the mod responds to it).

@EBrown no problem, life is risky

I think it's -100 rep for spam-flag validation?

Anywhow I learned that drag-and-drop with images does not work directly on this chat. There is an upload button to use

7:44 PM
Woah
Thanks Santa! :)
I was writing an answer and all-of-a-sudden +55 rep.

@Caridorc French is actually considered a difficult language to learn

Oh man, I can totally get another +10 before the day is up!

@TopinFrassi for Englishmen. For Italians and Spanish people it is a breeze

@Caridorc True, because italian/spanish and french have a very similar synthax. I'm natively french and learning spanish was a breeze (Though I forgot it all)

@TopinFrassi ^^ that

7:48 PM
Thanks again, Santa! :)
2
Time for me to go do my voting on CR as well.

@EBrown did you already rep cap?

@Caridorc Yeah, just hit it.
(Or so my rep thing says.)

@EBrown Congrats!

@Caridorc Well, to be fair, someone did just spam a bunch of upvotes on my stuff. :P

@EBrown I read everything I upvoted on, and they were all good questions/answers, the upvotes were deserved IMO

7:52 PM
I've always wanted to [badge:mortarboard] at least once.
I could never do it on SO.

Like that 33% speed increase by just using bool in the sieve
would you not have upvoted that?

@Caridorc That one caused a lot more memory to be used, though.

@EBrown but there are always compromises between speed and size

@Caridorc Indeed. Though it did break one particular case of the question.
But the OP liked it, so I suppose it's fine?

and with the massive RAM avaible today, using a bit more of it for such a speed-up is a win

7:54 PM
Greetings

Well the problem is that you cannot use .ToList with it because .NET limits the maximum size of an object to 2GB.
Now, I just need to find some things to vote on and share the love/rep.

@EBrown You can't split it up?

@Mast You could, I suppose.
Which would solve the issue, but add undue complexity.
Either way, the OP found use for it all.
You can tell I rep-capped from that red box.
(Which I drew myself, thank you very much.)

@EBrown What a magnificent red box

@TopinFrassi Thank you. :)
@Mast There are of course, alternatives.

8:00 PM

@Duga @SimonForsberg go @Duga!
That one's no false-alarm.
> You've earned the "Mortarboard" badge (Earn at least 200 reputation (the daily maximum) in a single day).

Nice comment from @SimonForsberg, we should have something like that on the Frequent Comment thread

@Mast Indeed, he should add it in there.
Now that we know @Duga can report these issues.

The current one is shallower.
9

OP has edited their question to include feedback received in answers, effectively invalidating existing answers. Adapted from the famous meta post, "For an iterative review, is it okay to edit my own question to include revised code?": I have rolled back the last edit. Please see *[What to d...

I could of-course just add it as a third choice.

8:05 PM
@janos You kicked me out, FYI

I got an existential problem with currying in Haskell
some people say it is "idiomatic"
and I like how short some programs can become
but spelling arguments in full really looks more readable

What was the MathJax for O(n^2)?
I can't recall the syntax off the top of my head.

@EBrown maybe the easy $$O(n^2)$$ ?

@Caridorc But that doesn't inline it.

@EBrown well, I tried, MathJax is nice looking but pretty complex

8:10 PM
0

I've been given the following task: Given N rectangles with edges parallel to axis, calculate the area of the union of all rectangles. The input and output are files specified in program arguments. Input is represented by N lines with 4 numbers separated by spaces, defining 2 opposite vertices of...

Afternoon

Also, this question on PPCG caught my eye, specifically the C89/C99 answer.
Any C users may be particularly interested in it.

@EBrown I wrote a PHP/ES6 answer
@EthanBierlein Greetings

You should try to ask one question at a time. If you want to improve working code you might want to have a look at codereview.stackexchange.comMarged 9 secs ago
@Marged Question is asking "but I honestly have no idea how to make the image change by clicking an option." and "Help with making unlockable content would be appreciated as well" which are feature requests. This would be off-topic for Code Review because of that. — Simon Forsberg 7 secs ago

8:25 PM
Hi and welcome to Stack Overflow! Stack Overflow is about solving specific problems with code - it's not really a place to get suggestions and recommendations. Your post seems to be centered around one concrete question - how to get the image to change when an option is clicked - so I would recommend editing your question to remove some of the cruft and clarifying and focusing on that one specific issue. The more focused your question is, the more focused the answers will be. Thanks! — Maximillian Laumeister 4 mins ago
thankfully someone read the question ^^

1

This code defines functions to cipher text with both mono-alphetic (Caesar) ciphers and poly-alphabetic ciphers. I also define a shortcut for rot13. I like this code and I think it is easy to read, but code is never perfect so I ask you for improvements. import Data.Char (toLower) alphabet :: S...

bye

8:40 PM
@EBrown Community Challenges never die out, they just take a break every now and then. Personally there are many challenges already that I would like to implement but I just can't keep up with them.

I added the part to find if the activity is opened from launcher as well :) @EricS.: mind a pseudo-code review ? — divyenduz 54 secs ago

9:00 PM
0

Do not bare except try: z_seven = xsheet1.Range('b1:b1000').FindNext(z_six) except: pass Should be avoided as any kind of error will be expected, instead use: try: z_seven = xsheet1.Range('b1:b1000').FindNext(z_six) except TheExceptioIExpect: pass Remove the massive code dupli...

@SimonForsberg I think they are a nice touch.
Anyway, TTGH methinks.

When they are busy taking a rest, I think I'll quietly post one toward the end of the month, post an answer, spam it here, and accept it ;P

@EBrown they are indeed a nice touch, as long as there's enough interest in them. People need to participate. I was a bit disappointed that I was the only one that implemented the Election challenge.

I started the election one, and so did @rolfl.
I just never finished it. I'll have to do that sometime, and post it.

0

I'm trying to determine the performance of graph analysis. However, during the graph creation I notice some of the data discrepancy in the two libraries. But I'm not sure if I'm missing anything in the code. I have a database of all the twitter users with followees. Here's the example of data i...

0

Works fine so far but I am looking for some advise as to how to better write this. My goal is to learn and incorporate current/latest C++ practices and become a better programmer overall. #include "HTTPRequest.h" /* This function initalized Winsock */ bool HTTPRequest::InitWinsock() { ...

9:13 PM
I was in a meeting today and saw that someone had scribbled a FizzBuzz on the board...
7

lol
Hey @Phrancis, I'm working on a new version of the decorator. It should be around in a little bit.

Sweet
I installed PyMongo on my PC, hoping to play around with it tonight

I just have to figure out why Python thinks it's calling an int object in the first place.
It'll have a new feature too.
It will display the local variables contained inside a function.
But not their values.

@EthanBierlein Implicit casting somewhere?

No, I don't think so.
I'm not sure Python would even do that anyways.

9:16 PM
@Phrancis s/someone/you/ ?

@SimonForsberg I plead innocent!

grr
Stupid Python. Sometimes annoying Python.
The decorator works when applied to normal functions, but it just decides to fail on class methods.
Hmm, nvm.
I must have made my class wrong.
Isn't debugging fun?
2

1

I am trying to design a DSL for writing C. Here is my code as a github gist (Github does not allow me to have slashes in the filenames so I have used underscores instead): https://gist.github.com/charles-cooper/379d1702df2051b9c60c It depends on packages free and process. My goal is to make the...

@EthanBierlein It is. Especially when things just don't run.
My latest was forgetting an attribute, so something wasn't running in a certain use case that I was trying to add to the feature set.

Lol.
I figured out why my tests were raising an error.
Turns out one of the test methods had the same name as an attribute.
Which makes me wonder...
Does a language like C# know the difference between an attribute and a method?
Like if I had an attribute a, and a method a, would it be able to distinguish between the two?

9:45 PM
0

This is a follow-up to this question. I've refactored my previous debugging decorator, and added a couple new features, and changed a few things. Here's a complete list of things that have changed: There is only one decorator, Debug, and it now supports functions, and class methods. Each...

@Phrancis ^^
Oh, and I've now put it into a Github repo:

1

This is a follow-up to this question. I've refactored my previous debugging decorator, and added a couple new features, and changed a few things. Here's a complete list of things that have changed: There is only one decorator, Debug, and it now supports functions, and class methods. Each...

Captain, you've gotten a little slower than snail warp speed.