31
\$\begingroup\$

I've been seeing a lot of these questions lately:

TL;DR: Should these be closed?

They all refer to this "private" framework called $A whose origins I can't find anywhere. The posts never mention what $A is. The closest I can find is SalesForce Lightning but it doesn't even resemble any of the code.

One of them mentions that it's a private library. What are the chances of $A being a private library when they're asked by different people and written in the same way? Could it possibly come from a some starter kit? If so, can it be dismissed as code not owned/maintained?

The code is also very sparse, not much to go by. Only one of them (the last one) shows that this framework even works, but just a screenshot. The rest are asked in a fire-and-forget manner. And even if it is a private library, there should at least be a primer of what it does in the post. Should these questions be closed for being too broad/unclear/lack of references?

PS: I still doubt it's a private library. It makes no sense asking other people about code that doesn't even exist outside private unless it's very generic that anyone can give recommendations regardless of accompanying private tooling.

\$\endgroup\$
9
  • 4
    \$\begingroup\$ That's... Strange. I count 4 unique users, but I suspect two of them are really the same person based off the writing style. There's something a bit off about these Qs. \$\endgroup\$
    – RubberDuck
    Commented May 10, 2016 at 1:29
  • 4
    \$\begingroup\$ Perhaps there's a handful of people working on the same project? \$\endgroup\$
    – RubberDuck
    Commented May 10, 2016 at 1:30
  • 2
    \$\begingroup\$ Also, the titles are too similar. Only the last one in the list is written differently. All the others, even if written by 3 different people, look too similar to be a coincidence. \$\endgroup\$
    – Joseph
    Commented May 10, 2016 at 2:14
  • 12
    \$\begingroup\$ I suspect sock-puppetry. \$\endgroup\$
    – Mast Mod
    Commented May 10, 2016 at 6:46
  • \$\begingroup\$ @JoeWallis they got 101 rep on another site too. Their profile says "delete me", I suppose there was a Stack Overflow account >200 rep at one point. \$\endgroup\$
    – Mathieu Guindon Mod
    Commented May 10, 2016 at 18:43
  • 1
    \$\begingroup\$ @Mat'sMug Thank you TIL you can partially delete your accounts. \$\endgroup\$
    – Peilonrayz Mod
    Commented May 10, 2016 at 18:50
  • \$\begingroup\$ FYI: the 3rd question in the list, "object.TitleMaker.js - ..." has been deleted. \$\endgroup\$
    – scottbb
    Commented May 18, 2016 at 23:40
  • \$\begingroup\$ This is really creepy. :) \$\endgroup\$
    – Nikita B
    Commented May 24, 2016 at 12:18
  • \$\begingroup\$ @JosephtheDreamer I found its source code(0 star, 0 fork) and forked it into my account. github.com/blackmiaool/arc How about adding it to your question for reference? \$\endgroup\$ Commented Apr 3, 2017 at 2:52

1 Answer 1

29
\$\begingroup\$

This smells extremely fishy. I did some digging, and I discovered that it's a small world. Not only do many of these users answer each other's questions, they also have a similar style of coding.

(Update: I have flagged for mods on CR and SO. Brad Larson says that the SO mods are already very familiar with this group. They are already dealing with the accounts and their posts and I suggest that we do the same here on CR.)

Here are the fruits of my investigation:

"robert the bruce"

Excerpt of code from here:

/****************************************************************************************************
invokeTest
****************************************************************************************************/

Another excerpt:

// note
//   - on a func truthy match returns true and on no match returns false
//   - on a func or obj validation fail will returns false

var Pub = {};
Pub.someKey = Pub.forSomeKey = function (obj, func, con) {
    var key;
    if (!Pub.isFunction(func)) {
        return false;
    }
    for (key in obj) {
        if (obj.hasOwnProperty(key)) {
            if (func.call(con, obj[key], key, obj)) {
                return true;
            }
        }
    }
    return false;
};

Answered this question: https://stackoverflow.com/questions/36728820/. But do you want to know who asked this?

That would be...

"a. b1c1c1d"

Excerpt:

// on a truthy match returns true and breaks from loop
Pub.someKey = function (obj, func, con) {
    var key;
    if (!Pub.isFunction(func)) {
        return false;
    }
    for (key in obj) {
        if (obj.hasOwnProperty(key)) {
            if (func.call(con, obj[key], key, obj)) {
                return true;
            }
        }
    }
    return false;
};
Pub.forSomeKey = Pub.someKey;

Excerpt of code from here

/******************************************************************************************************************(120)
** TitleMaker
** - Dependency - DOM
**
*/

Answered this question https://stackoverflow.com/q/37040111. But do you want to know who asked this question this time?

"arc.slate .0"

Excerpt of code:

/******************************************************************************************************************(120)
** Storage
** - Dependencies - None
** - Basically creates a namespace for Storage facilities
** - Used to manage local and session storage for login purposes
** - Note - underscore each() will error on web storage because of the length property
*/

But I found something else. There's ANOTHER user that I found on SO, but they're deleted. But they may be the most important piece there is.

"user3293653"

// *Pub is released to $A.
// does not extend through the prototype chain like similar underscore version
Pub.extend = function (obj) {

    // loop through elements beyond obj
    Pub.someIndex(nativeSlice.call(arguments, 1), function (val) {

        // extend it
        Pub.someKey(val, function (val_inner, key) {
            obj[key] = val_inner;
        });
    });
    return obj;
};

/***************************************************************************************************
**CArcmarks
*/

    var CArcmarks = $A.Class.create({

I may have a lead to what the mysterious "private library" is. Given the information that I found in their one post, I found these links:

https://github.com/arc-frame/arcframe

http://arcmarks.com/


The domain appears to be owned by a "Chris Aacker" looking here

"Chris Aacker"

Code excerpt:

Pub.prettyTime = function (server_time) {
    var MINUTE = 60,        // 000060 seconds in a minute
        HOUR = 3600,        // 003600 seconds in an hour
        DAY = 43200,        // 43,200 seconds in a day
        NORMALIZE = 1000,   // 00.001 seconds in a millisecond, flipped due to the .1 inaccuracy rule

https://stackoverflow.com/a/37125182/6083675

and at

https://github.com/arc-frame/arcframe/blob/844fc8b5e3dccf42f2995fb547ca0bf1745a64c7/web/source/js/arc.js


"the man"

Clearly there is an account somewhere that was deleted, but I might have found it:

https://stackoverflow.com/a/36146211/6083675

If you scroll to the top there, guess who's accepted! (It's arc slate .0)


I am thinking that this conspiracy may extend to several other accounts that I have not mentioned. See here for more possible culprits:

https://stackoverflow.com/questions/28355055/

https://stackoverflow.com/a/37126520/

https://stackoverflow.com/questions/37217047/

https://codereview.stackexchange.com/questions/95246/


This library can be tied directly back to all of these posts, and the people who made them.

Compare this file: https://github.com/arc-frame/arcframe/blob/844fc8b5e3dccf42f2995fb547ca0bf1745a64c7/web/source/js/object.00.Storage.js

To this one: object.Storage.js - creates a namespace for Storage

Then compare this file: https://github.com/arc-frame/arcframe/blob/844fc8b5e3dccf42f2995fb547ca0bf1745a64c7/web/source/js/object.002.Menu.js

To this question: https://codereview.stackexchange.com/questions/125828

And this https://github.com/arc-frame/arcframe/blob/844fc8b5e3dccf42f2995fb547ca0bf1745a64c7/web/source/js/object.000.Body.js

To this: https://codereview.stackexchange.com/questions/125722

And we can also tie this back to the other account, as if anyone had any doubts. This: https://codereview.stackexchange.com/questions/127853 is very similar to this: https://github.com/arc-frame/arcframe/blob/844fc8b5e3dccf42f2995fb547ca0bf1745a64c7/web/source/js/object.000.Animator.js

This question, which seemed to be the most unique: My favorite privacy settings is actually just a variant of this: https://github.com/arc-frame/arcframe/blob/844fc8b5e3dccf42f2995fb547ca0bf1745a64c7/web/source/js/object.002.Settings.js

This list goes on. Looking at the linked SO accounts, I can see that it is is the same as: https://github.com/arc-frame/arcframe/blob/844fc8b5e3dccf42f2995fb547ca0bf1745a64c7/web/source/php/class.FaviconFinder.php

\$\endgroup\$
5
  • 9
    \$\begingroup\$ So there is such a framework, and the users are related. It's amazing how they answer each other's questions. Nice detective work. \$\endgroup\$
    – Joseph
    Commented May 14, 2016 at 5:26
  • 1
    \$\begingroup\$ All those accounts are on Stack Overflow, you may want to post a meta question also there, I think moderators have more tools to investigate this issue. BTW...good job \$\endgroup\$ Commented May 17, 2016 at 6:36
  • 1
    \$\begingroup\$ @AdrianoRepetti I just flagged for mods on CR and SO, so hopefully this will be handled. This may be even bigger than what I have now, even. \$\endgroup\$
    – Laurel
    Commented May 17, 2016 at 15:26
  • 7
    \$\begingroup\$ As an FYI, this is a group we've known about for a while on Stack Overflow. There's a reason that several of them are missing matching SO accounts. Sorry that they've started to spill over to here. \$\endgroup\$ Commented May 17, 2016 at 15:52
  • 1
    \$\begingroup\$ @BradLarson Nice to know. I do remember discovering some other dead accounts that seemed to be related. In any case, thanks for taking care of my flag so amazingly fast! \$\endgroup\$
    – Laurel
    Commented May 17, 2016 at 15:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .