Not logged in.  Login/Logout/Register | List snippets | | Create snippet | Upload image | Upload data

511
LINES

< > BotCompany Repo | #1007510 // Intelligence Machine [no longer live]

JavaX source code (desktop) [tags: ai1-lol use-pretranspiled] - run with: x30.jar - homepage

Download Jar. Libraryless. Click here for Pure Java version (18284L/135K).

1  
!7
2  
3  
set flag TripleAI.
4  
set flag LispAI.
5  
6  
static double aiCacheInterval = 10*60 /*30*/; // 10 minutes
7  
static new ThreadLocal<Bool> white;
8  
static new ThreadLocal<CookieToConcept> ctc;
9  
static int nComments = 30;
10  
static int nRelations = 5;
11  
12  
sS searchQueriesUniverse = "crefwbbhvngkmicy";
13  
14  
static TimedCache<S> news = new TimedCache(60);
15  
16  
concept Search {
17  
  S q, ip;
18  
}
19  
20  
concept CookieToConcept {
21  
  S cookie, concept;
22  
  
23  
  *() {
24  
    if (!_loading()) concept = aGlobalID();
25  
  }
26  
}
27  
28  
concept UserTruth {
29  
  S user, text;
30  
}
31  
32  
concept Comment {
33  
  S commentID, conceptID, user, text;
34  
  
35  
  *() {
36  
    if (!_loading()) commentID = aGlobalID();
37  
  }
38  
}
39  
40  
p {
41  
  aiConceptsMap_cached_autoClearInterval = aiCacheInterval;
42  
  db();
43  
  indexConceptField(CookieToConcept, 'cookie);
44  
  //loadAIConcepts_alwaysFromDisk = true;
45  
  aiConceptsMap_fastLoad = loadTruth_fastLoad = true;
46  
  setOpt(startAIConceptsHere(), grabImages := true);
47  
  startTruthTableHere();
48  
}
49  
50  
html {
51  
  // check host
52  
  
53  
  long time = sysNow();
54  
  white.set(false); // !oneIn(10));
55  
  S cookie = cookieFromUser();
56  
  CookieToConcept ctc = cookieToConcept();
57  
58  
  if (nempty(params.get("news"))) news.clear();
59  
  
60  
  if (eq(uri, "/structure/comments"))
61  
    ret serveText(structure(list(Comment)));
62  
63  
  if (eq(uri, "/structure/concepts"))
64  
    ret serveText(structure(exportableAIConcepts()));
65  
    
66  
  new Matches m;
67  
  
68  
  if (startsWith(uri, "/structure/conceptsByTokens/", m))
69  
    ret serveText(structure(exportableAIConcepts(aiConceptsByTokens(urldecode($1)))));
70  
    
71  
  if (startsWith(uri, "/structure/", m)) {
72  
    if (possibleGlobalID($1)) {
73  
      AIConcept c = getAIConcept($1);
74  
      if (c != null)
75  
        ret serveText(structure(exportableConcept(c))); 
76  
    }
77  
    ret "";
78  
  }
79  
80  
  if (eq(uri, "/structure/statements"))
81  
    ret serveText(structure(loadTruth_cached()));
82  
83  
  S s = hmobilefix() +
84  
    hcommentSafe("Cookie: " + cookie
85  
      + (ctc != null ? ", concept: " + ctc.concept : ""))
86  
    + (white! ? "" : hcss("a:link, a:visited, a:hover, a:active { color: white; }"))
87  
    + hbody(htmlImpl(uri, params), style := white!
88  
      ? "background: white"
89  
      : "text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black; color: white; background-color: #262626");
90  
      // : "text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black; color: white; background-image: url(\"" + snippetImageGIFURL(#1007679) + "\"); background-repeat: no-repeat; background-position: 50% 0; background-color: #262626");
91  
      // : "text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black; color: white; background-image: url(\"" + snippetImageGIFURL(#1007907) + "\"); background-repeat: no-repeat; background-position: 50% 0; background-color: #141414");
92  
  ret s + p(hsmall((sysNow()-time) + " ms", style := "color: #EEEEEE"), style := "text-align: right");
93  
}
94  
95  
static O htmlImpl(S uri, final SS params) {
96  
  print("Wiki URI: " + uri);
97  
  S vis = registerVisitor();
98  
  uri = dropSuffix("/", uri);
99  
  uri = dropPrefix("/", uri);
100  
  S userConcept = userConcept();
101  
  
102  
  processActions(params);
103  
  
104  
  if (eq(uri, "sleep")) {
105  
    sleepSeconds(5);
106  
    ret "Slept 5, just for you.";
107  
  }
108  
  
109  
  S q = trim(params.get("q"));
110  
  S qname = q, qcomment = "";
111  
  new Matches m;
112  
  if (flexMatch("* [*]", q, m)) {
113  
    qname = $1;
114  
    qcomment = $2;
115  
  }
116  
  if (nempty(q)) {
117  
    cset(uniq(Search, +q, ip := getClientIP()), lastSeen := now());
118  
    if (findAIConceptByNameAndCommentIC(qname, qcomment) == null) {
119  
      S universe = or2(qname.startsWith("->") ? userConcept : null, searchQueriesUniverse);
120  
      createAIConcept(qname, qcomment, universe);
121  
      //if (!loadAIConcepts_alwaysFromDisk) clearAICaches();
122  
    }
123  
  }
124  
    
125  
  if (eq(uri, "import")) {
126  
    triggerStandardAIImport();
127  
    ret "OK" + hrefresh(1, "/wiki/");
128  
  }
129  
  
130  
  if (eq(uri, "export")) {
131  
    triggerStandardAIExport();
132  
    ret "OK" + hrefresh(1, "/wiki/");
133  
  }
134  
  
135  
  if (eq(uri, "searches")) {
136  
    ret htitle_h2("Latest Searches") 
137  
      + htable(map(func(Search s) { litorderedmap(Query := dynamize(s.q),
138  
      IP := dynamize(s.ip)) }, takeFirst(10, sortedByFieldDesc("lastSeen", list(Search)))), false);
139  
  }
140  
  
141  
  clearAICaches(aiCacheInterval);
142  
  final Map<S, AIConcept> map = aiConceptsMap_cached();
143  
    
144  
  if (possibleGlobalID(uri))
145  
    ret renderConcept(uri, params);
146  
  
147  
  // Serve main page
148  
149  
  S results = "";
150  
    
151  
  if (nempty(q)) {
152  
    L<AIConcept> l = imSearch(q);
153  
    if (empty(l))
154  
      results = h3("No search results for " + htmlencode(quote(q)));
155  
    else
156  
      results = h3("Search results for " + htmlencode(quote(q)))
157  
        + ul(map(f aiConceptToHTML, l));
158  
  }
159  
  
160  
  L<AIConcept> l = withoutArrowConcepts(sortedByFieldDesc(values(map), "touched"));
161  
  
162  
  /*S question = "";
163  
  pcall {
164  
    question = makeQuestion();
165  
    question = toUpper(conceptLanguageToEnglish_xyz_noquote(question));
166  
  }*/
167  
  bool didAddComment = eq("addComment", params.get("action"));
168  
  S randomConcept = "";
169  
  /*pcall {
170  
    S id = randomNonTechnicalConcept();
171  
    randomConcept =
172  
      hform(
173  
          hhidden(action := "addComment")
174  
        + hhidden(conceptID := id)
175  
        + "What do you think about "
176  
        + b(dynamize("\"" + conceptToName(id) + "\""))
177  
        + "? "
178  
        + hinputfield("text", "", autofocus := didAddComment ? "1" : null, style := "text-align: center") + " " + hsubmit("Submit spontaneous comment"));
179  
  }*/
180  
  
181  
  S search =
182  
      h3("Search")
183  
    + p("Search term, question or statement:")
184  
    + hform(
185  
        htextinput("q", q, /*autofocus := !didAddComment ? "1" : null,*/ style := "text-align: center", onfocus := "this.select()") + " "
186  
      + hsubmit("Go"),
187  
      "accept-charset" := "UTF-8");
188  
    
189  
  S auth = "";
190  
  if (webAuthed())
191  
    auth = " " + ahref("/wiki/import", "Import.")
192  
      + " " + getExportSnippetID(aiConceptsProgram()) + "/"
193  
      + getExportSnippetID(truthTableProgram()) + ". "
194  
      + ahref("/wiki/export", "Export.");
195  
    
196  
  S line = "See " + ahref("https://www.youtube.com/watch?v=gTlgZkc95IU", "Video") + ". " + ahref("http://ai1.lol/new", htmlencode("More videos & articles")) + ". " + ahref("http://tinybrain.de/x30.jar", "Download.")
197  
    + auth;
198  
    
199  
  bool all = nempty(params.get("all"));
200  
  L<AIConcept> conceptsToShow = all ? l : selectRandomUpTo(l, 20);
201  
  S concepts = ul(map(f aiConceptToHTML, conceptsToShow));
202  
203  
  L<Statement> allStatements = reversed(loadTruth_cached());
204  
  bool allRelations = nempty(params.get("allrelations"));
205  
  L<Statement> statements = allRelations ? allStatements : takeFirst(nRelations, allStatements); 
206  
  S relations = ul(map(f statementToHTML, statements));
207  
  
208  
  bool showAllComments = nempty(params.get("allcomments"));
209  
  L<Comment> allComments = sortedByFieldDesc(list(Comment), "created");
210  
  L<Comment> lcomments = showAllComments ? allComments : takeFirst(nComments, allComments); 
211  
  S comments = ul(map(f commentToHTML2, lcomments));
212  
  
213  
  BigInteger[] ints = extractIntsFromString(vis);
214  
  BigInteger today = getBigInt(ints, 0), yesterday = getBigInt(ints, 2);
215  
  S load = formatDoubleFull(systemLoad(), 1);
216  
  S drive = iceil(userDirDriveFullness()) + "%";
217  
  S s = "";
218  
  if (nempty(userConcept))
219  
    s = "You are: " + dynamize(userConcept) + " / ";
220  
  s += today + " : " + yesterday + " / " + load + " / " + drive;
221  
  S exp = "Visitors today: " + today + ", yesterday: " + yesterday + ", system load: " + load + ", drive use: " + drive;
222  
  S visBox = hdiv(hsmall(s), style := "position:absolute; top: 2px; right: 2px", title := exp);
223  
224  
  S latest = "";
225  
  int nLatest = parseIntOpt(params.get("latest"));
226  
  if (nLatest != 0) nLatest = min(nLatest, 1000); else nLatest = 3;
227  
  if (!all) {
228  
    L<AIConcept> ll = takeFirst(nLatest, withoutArrowConcepts(sortedByFieldDesc(values(map), "created")));
229  
    latest = h3("Latest concepts " + (nLatest < 100 ? ahref("?latest=100", "(more)") : "")) 
230  
      + ul(map(f aiConceptToHTML, ll));
231  
  }
232  
  
233  
  long nc = numComputers();
234  
  S slogan = p(
235  
    // span(l(l) + " Concepts", style := "font-size: 40px") 
236  
      span(
237  
        //targetBlank("https://www.twitch.tv/stefan_reich", "LET'S TWITCH.")
238  
        //targetBlank("http://all-computers.tinybrain.de", (nc == 0 ? "MANY" : str(nc)) + " COMPUTERS"),
239  
        //+ "<br>" + targetBlank("http://ai1.lol/", "LET'S CHAT!"
240  
        targetBlank("http://ai1.lol/", himg(snippetImgLink(#1009213), width := 394, height := 74, title := "BotCompany.de")),
241  
        style := "font-size: 40px")
242  
    + "<br>"
243  
    + hsmall(b(ahref("http://ai1.lol/wiki/", "THE MACHINE")
244  
    + " " + ahref(progLink(#1007674), "understands Fibonacci numbers") + ", " + ahref(progLink(#1007649), "letters to mom")
245  
    + ", " + ahref(progLink(#1007814), "Scandinavian breakfast")
246  
    + " and " + ahref(progLink(#1008300), "products")
247  
    + " :-)") + "<br>" + line)
248  
    + "<br><br>"
249  
    + "We're working on reducing the insanity. " + ahref("mailto:info@ai1.lol", "Mail.")
250  
    + " " + ahref("https://www.meetup.com/Artificial-Intelligence-Meetup/", "Hamburg.")
251  
    + " " + ahref("https://slides.com/stefanreich", "Presentations (German/English).")
252  
    + "<br>"
253  
    + "Currently working on " + targetBlank(progLink(#1007924), "reading Wikipedia") + " &amp; " + targetBlank(progLink(#1007987), "general super-parsing") + "."
254  
    // + b(ahref("http://tinybrain.de/1007649", "Demo 1.") + " "
255  
    // + ahref("http://tinybrain.de/1007674", "Demo 2."))
256  
  );
257  
    
258  
  ret htitle("Intelligence Machine")
259  
    + visBox
260  
    + hdiv(visitorsChart(""), style := "position:absolute; left: 2px; right: 2px; width: 150px; height: 110px;", title := "Visitors Chart")
261  
    + hcenter2(
262  
        (white! ? "" : slogan)
263  
      + (white! ? p(ahref("http://ai1.lol/", hTBImage(white! ? #1007526 : #1002549, "title", "Intelligence Machine"))) : "")
264  
      + (white! ? slogan : "")
265  
      //+ p("It seems we're moving towards actual applications. New contacts!")
266  
      + news.get(func -> S { loadSnippet(#1008166) })
267  
      + youtubeEmbedSideBySide("KXPLUaaVPIw", /*"wuz8yhnN9fs",*/ "UVMiYHeotFE")
268  
      
269  
      //+ p(htbimg(#1008147))
270  
      //+ p(htbimg(#1008146))
271  
      
272  
      // + p(dynamize(question))
273  
      + randomConcept
274  
      + search)
275  
    + results
276  
    //+ hcenter2(latestDrawing() + randomDrawing())
277  
    + "<br>"
278  
    + htableRaw_valignTop(ll(ll(
279  
      latest +
280  
      hdiv(_defaultAd(), style := "float: left; margin-right: 30px; margin-bottom: 20px") +
281  
      h3(
282  
        (all ? "Concepts (" + lstr(l) 
283  
        : "Random concepts (" + l(conceptsToShow) + " of " + ahref("?all=1", l(l)))
284  
        + ")") + concepts, 
285  
      //hdiv(_defaultAd(), style := "float: right; margin: 10px") +
286  
      h3(showAllComments ? "All Comments (" + l(lcomments) + ")"
287  
        : "Latest Comments (" + l(lcomments) + " of " + ahref("?allcomments=1", l(allComments)) + ") - YOU can comment too")
288  
        + comments
289  
    + h3(allRelations
290  
        ? "All Relations (" + l(statements) + ")"
291  
        : "Latest Relations (" + l(statements) + " of " + ahref("?allrelations=1", l(allStatements)) + ") - We should clean them up some time ^^")
292  
        + relations)), "border", "0")
293  
    + hcenter2(htableRaw_valignTop(ll(ll(latestDrawing(), randomDrawing())), "cellspacing", 20))
294  
    ;
295  
}
296  
297  
static S aiConceptToHTML(AIConcept c) {
298  
  ret (nempty(c.imageMD5) ? "[w/image] " :
299  
    hasSuggestedImage(c) ? "[w/sugg. image] " : "") +
300  
    dynamize(c.globalID) + " - " + dynamize(aiConceptToString2(c));
301  
}
302  
303  
static S statementToHTML(Statement s) {
304  
  ret ahref("http://ai1.lol/" + s.globalID, "*") + " " + dynamize(or2(s.possibleEnglishTranslation, "?") + " - " + s.text);
305  
}
306  
307  
static S commentToHTML(Comment c) {
308  
  ret hsafeComment(c.commentID) + dynamize(c.user + " says: " + c.text);
309  
}
310  
311  
// for start page
312  
static S commentToHTML2(Comment c) {
313  
  ret ahref(intelligenceMachineLink(c.conceptID), dynamize(conceptToName(c.conceptID)))
314  
  + dynamize(
315  
    //c.user + " says on " + c.conceptID + ": " + c.text
316  
    ": " + c.text
317  
  );
318  
}
319  
320  
sS renderConcept(S uri, SS params) {
321  
  // Serve concept
322  
  
323  
  final Map<S, AIConcept> map = aiConceptsMap_cached();
324  
  final AIConcept c = map.get(toLower(uri));
325  
  Statement st = findWhere(loadTruth_cached(), globalID := toLower(uri));
326  
  
327  
  if (st != null) ret renderStatement(c, st, params);
328  
  if (c == null) {
329  
    pcall-short {
330  
      loadPage_extraHeaders.set(litmap("X-Forwarded-For", clientIP()));
331  
      ret loadPage(smartBotURL() + "/" + toLower(uri));
332  
    }
333  
    ret "[Smart Bot Reloading]";
334  
  }
335  
336  
  S html = htitle(c.name + " [" + 
337  
    (nempty(c.comment) ? c.comment + " / " : "") + c.globalID + "]")
338  
    + h2(dynamize(aiConceptToString(c)));
339  
  
340  
  html += ul(
341  
    "Universe: " + dynamize(c.originatingUniverse),
342  
    eq(c.originatingUniverse, userConcept()) ? "You made this" : null,
343  
    //"Image MD5: " + htmlencode(c.imageMD5)
344  
    "Created: " + formatDateAndTime(c.created),
345  
    "Touched: " + formatDateAndTime(c.touched),
346  
    c.imported != 0 || nempty(c.importedFrom) ? "Imported: " + formatDateAndTime(c.imported) + " from " + dynamize(c.importedFrom) : null
347  
  );
348  
  
349  
  if (nempty(c.imageMD5) && imageServerHas(c.imageMD5))
350  
    html += p(himg(imageServerJPEGLink(c.imageMD5)));
351  
    
352  
  if (c.suggestedImage.has()) {
353  
    print("PNG path: " + c.suggestedImage->pngPath);
354  
    BufferedImage img = c.suggestedImage->getImage();
355  
    if (img != null) {
356  
      uploadToImageServerIfNotThere(img, aiConceptToString(c));
357  
      if (empty(c.suggestedImageMD5))
358  
        c.suggestedImageMD5 = imageMD5(img);
359  
    }
360  
  }
361  
  
362  
  if (nempty(c.suggestedImageMD5))
363  
    html += h3("Suggested image (from Google search)") + p(himg(imageServerJPEGLink(c.suggestedImageMD5));
364  
365  
  L<Statement> statements = [Statement s : loadTruth_cached() | containsIgnoreCase(s.text, c.globalID)];
366  
  if (nempty(statements))
367  
    html += h3("Statements about this") + ul(map(f statementToHTML, statements));
368  
    
369  
  L<Comment> comments = conceptsWhere(Comment, conceptID := c.globalID);
370  
  html += h3("Comments") + ul(map(f commentToHTML, comments));
371  
372  
  html += h3("Add comment") + hform(
373  
    hhidden(action := "addComment")
374  
  + hhidden(conceptID := c.globalID)
375  
  + htableRaw_valignTop(ll(
376  
    ll("Your Comment", hinputfield("text")),
377  
    ll("", hsubmit("Add comment"))
378  
  )));
379  
  
380  
  html += p(ahref("http://ai1.lol/wiki", "[Home]"));
381  
  
382  
  ret html;
383  
}
384  
385  
sS hselectNode(Map<S, ? extends Node> map, O... params) {
386  
  ret hselect(orderMapByValue(mapValues(f nodeToString, map)), params);
387  
}
388  
389  
sS renderStatement(AIConcept c, Statement st, SS params) {
390  
  if (nempty(params.get("retranslate"))) {
391  
    RemoteDB db = new RemoteDB(truthTableProgram());
392  
    db.xset(db.rc(st.id), possibleEnglishTranslation := null);
393  
    db.close();
394  
    st.possibleEnglishTranslation = null;
395  
  }
396  
  
397  
  bool hasTranslation = nempty(st.possibleEnglishTranslation);
398  
  S html = htitle_h2("Statement " + st.globalID)
399  
    + ul(
400  
      "English (machine-generated): " + dynamize(or2(st.possibleEnglishTranslation, "?")),
401  
      "Computer Language: " + dynamize(st.text),
402  
      st.imported != 0 || nempty(st.importedFrom) ? "Imported: " + formatDateAndTime(st.imported) + " from " + dynamize(st.importedFrom) : null)
403  
    + (!hasTranslation ? "" : p(ahref("?retranslate=1", "Request retranslation")));
404  
  html += p(ahref("http://ai1.lol/wiki", "[Home]"));
405  
  ret html;
406  
}
407  
408  
svoid processActions(SS params) {
409  
  S action = params.get("action");
410  
  
411  
  if (eq(action, "addRelation")) {
412  
    S id1 = params.get("concept1");
413  
    S id2 = params.get("concept2");
414  
    S rel = params.get("rel");
415  
    if (nempty(id1) && nempty(rel))
416  
      createStatement(conceptQuote(rel) + " " + conceptQuote(id1) + " " + conceptQuoteOpt(id2));
417  
  }
418  
  
419  
  if (eq(action, "addComment")) {
420  
    S conceptID = params.get("conceptID");
421  
    S text = trim(params.get("text"));
422  
    if (possibleGlobalID(conceptID) && nempty(text)) {
423  
      S user = ctc->concept;
424  
      uniq(Comment, +user, +conceptID, +text);
425  
    }
426  
  }
427  
}
428  
429  
static S latestDrawing() {
430  
  L metas = getDrawings();
431  
  ret empty(metas) ? "" : 
432  
      h3("Latest Drawing")
433  
    + renderDrawing(first(metas));
434  
}
435  
436  
sS renderDrawing(O meta) {
437  
  ret p(renderMeta(meta) + "<br>"
438  
    + hsmall(ahref(progLink(#1009961), "Make your own.")
439  
    + " " + ahref("http://ai1.lol/images", "More drawings.")));
440  
}
441  
442  
static S randomDrawing() {
443  
  O meta = random(dropFirst(getDrawings()));
444  
  if (meta == null) ret "";
445  
  ret h3("Random Drawing")
446  
    + renderDrawing(meta);
447  
}
448  
449  
static L getDrawings() {
450  
  pcall {
451  
    O imageServer = getBot(#1004590);
452  
    L metas = cast call(get(imageServer, "mainConcepts"), "list", "ImageMeta");
453  
    metas = [O meta : metas | startsWithIC(getString(meta, "name"), "Drawing ")];
454  
    metas = sortedByFieldDesc(metas, "created");
455  
    ret metas;
456  
  }
457  
  ret ll();
458  
}
459  
460  
static S renderMeta(O meta) {
461  
  S md5 = getString(meta, "md5");
462  
  S jpg = imageServerJPEGLink(md5);
463  
  ret ahref(jpg, himg(jpg,
464  
    //style := "zoom: 50%" // works only on Chrome
465  
    onload := "this.width *= 0.7; this.onload=null;"
466  
  ));
467  
}
468  
469  
static L exportableAIConcepts(Collection<AIConcept> l) {
470  
  ret map(f exportableConcept, l);
471  
}
472  
473  
static L exportableAIConcepts() {
474  
  ret exportableAIConcepts(aiConcepts());
475  
}
476  
477  
static Concept exportableConcept(AIConcept c) {
478  
  Concept cc = unlisted(Concept);
479  
  cc.className = "AIConcept";
480  
  cc.created = c.created;
481  
  copyConceptFields(c, cc, "globalID", "name");
482  
  if (nempty(c.comment)) copyConceptFields(c, cc, "comment");
483  
  ret cc;
484  
}
485  
486  
static S userConcept() {
487  
  ret ctc! != null ? ctc->concept : "";
488  
}
489  
490  
static long numComputers() {
491  
  ret getLong(getBot(#1003253), "numComputers");
492  
}
493  
494  
static CookieToConcept cookieToConcept() {
495  
  S cookie = cookieFromUser();
496  
  CookieToConcept ctc = null;
497  
  if (nempty(cookie)) {
498  
    ctc = uniq(CookieToConcept, +cookie);
499  
    if (!hasAIConcept(ctc.concept))
500  
      createAIConcept_listed(ctc.concept, "-> an anonymous cookie", "created automatically", searchQueriesUniverse);
501  
  }
502  
  main.ctc.set(ctc);
503  
  ret ctc;
504  
}
505  
506  
static S conceptIDForCookie() {
507  
  CookieToConcept ctc = cookieToConcept();
508  
  ret ctc == null ? null : ctc.concept;
509  
}
510  
511  
!include #1007812 // Question Maker

download  show line numbers  debug dex  old transpilations   

Travelled to 14 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, gwrvuhgaqvyk, ishqpsrjomds, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, tslmcundralx, tvejysmllsmz, vouqrxazstgt

No comments. add comment

Snippet ID: #1007510
Snippet name: Intelligence Machine [no longer live]
Eternal ID of this version: #1007510/387
Text MD5: 3caefdf40c9c6af1bccc3f51fb620a6f
Transpilation MD5: b497dae66ae059bf100c5ff84b2b34f9
Author: stefan
Category: javax / a.i. / html
Type: JavaX source code (desktop)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2019-07-02 15:04:45
Source code size: 18299 bytes / 511 lines
Pitched / IR pitched: No / No
Views / Downloads: 2177 / 7334
Version history: 386 change(s)
Referenced in: [show references]