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

574
LINES

< > BotCompany Repo | #1003253 // New Homepage (LIVE)

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

Download Jar. Libraryless. Click here for Pure Java version (15494L/111K).

1  
!7
2  
3  
//static TimedCache<L<MediumPost>> mediumPostsCache = new TimedCache(60);
4  
static volatile L<MediumPost> mediumPosts;
5  
static volatile long numComputers;
6  
static new ThreadLocal<S> visitor;
7  
sbool getMediumPosts;
8  
9  
p {
10  
  doEveryStartingNow(60000, f update);
11  
}
12  
13  
svoid update {
14  
  numComputers = numComputers();
15  
  pcall {
16  
    if (getMediumPosts) mediumPosts = getMediumPosts("stefanreich");
17  
  }
18  
}
19  
20  
html {
21  
  S originalURI = uri;
22  
  uri = dropSuffix("/", uri);
23  
  print("html starting, uri=" + uri + ", domain=" + domain());
24  
  
25  
  S vis = registerVisitor();
26  
  visitor.set(dropIncluding(vis, "<br>"));
27  
  
28  
  S domain = domain();
29  
  if (swic(domain, "nootrobox."))
30  
    ret hrefresh("http://ai1.space/1008316/raw");
31  
  
32  
  if (eq(domain, "code.ai1.space"))
33  
    ret hrefresh("http://snippets.tinybrain.de");
34  
    //ret hrefresh([[http://tinybrain.de:8080/tb/snippets.php?action=create&description=My+first+JavaX+Program%21&text=%21752%0A%0Ap+%7B%0A++showAnimation%28"%231004373"%2C+10%29%3B+++%2F%2F+10+seconds+of+applause%21%0A%7D]]);
35  
  
36  
  if (swic(domain, "smartbotschat."))
37  
    ret hrefresh("http://botcompany.de/1011975/raw");
38  
    
39  
  if (swic(domain, "pixelboys."))
40  
    ret hrefresh("https://botcompany.de/");
41  
    
42  
  if (eq(uri, "/chat"))
43  
    ret callHtmlMethod(getBot(#1008998), originalURI, params);
44  
45  
  if (eq(uri, "/goodies") || empty(uri) && eqic(domain, "javax.ai1.space")) {
46  
    new L<S> l;
47  
    for (S s : toLinesFullTrim(loadSnippet("#1004044"))) {
48  
      if (s.startsWith("*"))
49  
        l.add(dropPrefixTrim("*", s));
50  
      else {
51  
        S s2 = dropPrefixSuffixTrim("<pre>", "</pre>", s);
52  
        if (neq(s, s2))
53  
          appendToLast(l, "\n<pre style='margin-left: 50px'>" + dynamize(s2) + "</pre>");
54  
        else
55  
          appendToLast(l, s);
56  
      }
57  
    }
58  
    S liStyle = "margin-bottom:0.2em";
59  
    ret hmobilefix () 
60  
      /*+ ahref(snippetLink("#1004132"),
61  
          himg(snippetImgLink("#1004415"), "width", 300, "style", "border: 2px solid black; border-radius: 5px; float: right; margin-left: 20px; margin-bottom: 20px", "title", "JavaX Screenshot"))*/
62  
      + p(ahref("http://ai1.space", "&lt;&lt; back")
63  
)
64  
      + htitle_h1("JavaX Goodies!")
65  
      + ul(l, null, "style", liStyle)
66  
      + p(b("&gt;&gt; " + targetBlank("http://new-program.tinybrain.de/", "Get started here!"), "style", "font-size: 2em"))
67  
      + ul(ll([[
68  
      Note: JavaX favors on-the-server development, and also public development (because both makes the world better).]],
69  
      [[Thus, the preferred way to make your first program is to
70  
      just ]] + targetBlank("http://tinybrain.de:8080/tb-usercake/login.php", "get a log-in") + " and " 
71  
      + targetBlank("http://new-program.tinybrain.de/", "create your program here") + ".",
72  
      [[After hitting "Create snippet", you can immediately run the program in your local ]] + ahref("http://tinybrain.de/x30.jar", "x30.jar") + [[ (it will automatically show on
73  
      top of the list) or ]] + targetBlank("http://app-allperms.tinybrain.de", "in the app") + ".",
74  
      [[In case of any question, or if you want "private" development: I am ]] + ahref("mailto:info@ai1.space", "always glad to help") + "!"),
75  
        null, "style", liStyle)
76  
      + p(ahref("http://tinybrain.de:8080/getraw.php?id=1006863&contentType=text/html", "Privacy Policy"))
77  
      + visitorsChart("float: right; margin-left: 20px; margin-bottom: 20px");
78  
  }
79  
  
80  
  // Serve landing page
81  
  
82  
  if (eq(uri, "/buy"))
83  
    ret callHtmlMethod(getBot("#1005215"), uri, params);
84  
  
85  
  // Load stuff
86  
  
87  
  L<MediumPost> mediumPosts = main.mediumPosts;
88  
  
89  
  mediumPosts = concatLists(mediumPosts, ll(
90  
    new MediumPost("The A.I. Super-Database", "https://medium.com/@stefanreich/the-a-i-super-database-3ba31410e21"),
91  
  ));
92  
  
93  
  if (eq(uri, "/more"))
94  
    ret htitle("Making Robots That Talk (Stefan Reich)")
95  
      + htotalcenter(
96  
            h1("Welcome To The Advent Of A.I.!")
97  
            
98  
          + h3("Stuff is happening.")
99  
          
100  
          + p("JavaX begins to think about itself (and everything else!). :)")
101  
          
102  
          + p(youtubeEmbed(
103  
            //"fCvxu5f4PeA"
104  
            //"tbHenhl-QTY"
105  
            //"WMJLcRNPUnI"
106  
            //"etSXjcQntIg"
107  
            //"zFV71gvzGqk" // me!
108  
            "YCBt-JggF2c"
109  
            //, 600, 350))
110  
            , 400, 250))
111  
  
112  
  /*        + p(himg("http://eyeocr.sourceforge.net/filestore/filestore.php?cmd=serve&file=blob_1003828&contentType=image/gif", "alt", "JavaX-Bert!"))
113  
          + p(b("^^ That is " + rawLink("goodies", bertName()) + ". He is always where the sun is shining. &trade;"))
114  
  */
115  
          
116  
          + pJavaXInstallations()
117  
          //+ p(targetBlank(rawBotLink("#1003081"), htmlencode("[>> Chat! <<]")))
118  
          + p(ahref("/buy", "Buy an AI :)"))
119  
          + p(b(ahref("http://snippets.tinybrain.de", "LATEST CODE") + " | " + ahref("http://slides.com/stefanreich", "SLIDES")))
120  
          + p(hsmall(visitor.get()))
121  
            
122  
          + p(b(ahref("http://medium.com/@stefanreich", "On Medium.com:")))
123  
          + p(b(join("<br>",
124  
          map(func(MediumPost p) {
125  
              ahref(p.url, htmlencode(p.title))
126  
            }, mediumPosts))), "style", "font-size: 1.5em; line-height: 140%")
127  
          + p(ahref("http://medium.com/@stefanreich", "[more...]"))
128  
          + p(b(ahref("http://tinybrain.de/x30.jar", "Download JavaX! [PC]") + " " + ahref("http://java.com/download", "[Get Java First]")) + "<br>"
129  
          + ahref("http://app-allperms.tinybrain.de", b("Download JavaX! [Android]")) + " " + ahref("http://tinybrain.de/javax-34.apk", "[bypass play store]") + "<br>"
130  
          + b(ahref(rawLink("goodies"), "JavaX Goodies!")) + "<br>"
131  
          + b(ahref("http://snippets.tinybrain.de", "Code Database")))
132  
          + p(b("Some Screenshots."))
133  
          + bigScreenshot("#1004809", "#1004778", "A Simple Expert System")
134  
          + bigScreenshot("#1004649", "#1004648", "Learning To Read")
135  
          + bigScreenshot("#1004530", "#1004528")
136  
          + p("[Thanks to the great " + targetBlank("http://dedexer.sourceforge.net/", "Dedexer")
137  
              + " by " + targetBlank("http://pallergabor.uw.hu/", "Gabor Paller") + "!]")
138  
          // + bigScreenshot("#1004294", "#1004284", "")
139  
          + h3("More screenshots")
140  
          + p(screenshotLin2("#1004618", "#1004616") + " &nbsp; "
141  
            + screenshotLin2("#1004555", "#1004552") + " &nbsp; "
142  
            + screenshotLin2("#1004494", "#1004361") + " &nbsp; "
143  
            + screenshotLin2("#1004359", "#1004353") + " &nbsp; "
144  
            + screenshotLin2("#1004330", "#1003779") + " &nbsp; "
145  
            + screenshotLin2("#1004280", "#1004032") + " &nbsp; "
146  
            + screenshotLin2("#1004267", "#1003779") + " &nbsp; "
147  
            + screenshotLin2("#1004135", "#1004132") + " &nbsp; "
148  
            + screenshotLin2("#1004090", "#1004068") + " &nbsp; "
149  
            + screenshotLink("#1003815", "#1003881") + " &nbsp; "
150  
            + screenshotLink("#1004089", "#1004088") + " &nbsp; "
151  
            + screenshotLink("#1003695", "#1003697") + " &nbsp; "
152  
            + screenshotLink("#1003678", "#1003681") + " &nbsp; "
153  
            + screenshotLink("#1003634", "#1003650") + " &nbsp; "
154  
            + screenshotLink("#1003509", "#1003514") + " &nbsp; "
155  
            + screenshotLink("#1003494", "#1003504") + " &nbsp; "
156  
            + screenshotLink("#1003486", "#1003487") + " &nbsp; "
157  
            + screenshotLink("#1003417", "#1003470") + " &nbsp; "
158  
            + screenshotLink("#1003417", "#1003428") + " &nbsp; "
159  
            + screenshotLink("#1003406", "#1003392"))
160  
          + p(b("Latest Video"))
161  
          + youtubeEmbed("gf7eaIWvnp8"/*"j1wbwdGrBes"*//*"HWs9F5-egOI"*/) // ("Z1dWiMPyvgQ")
162  
          + p(ahref(rawBotLink("#1003220"), "Company")
163  
            + " | " + ahref("http://medium.com/@stefanreich", "Articles")
164  
            + " | " + ahref("mailto:info@botcompany.de", "Mail")
165  
            //+ " | " + ahref(rawBotLink("#1003081"), "Chat")
166  
            + " | " + ahref("/buy", "Buy an AI :)")
167  
            )
168  
          + p(targetBlank("https://medium.com/@stefanreich/mixing-javax-and-english-6b56f3aecd4", "Making Chatbots from English Dialog") + "<br><br>"
169  
           + targetBlank("https://medium.com/@stefanreich/a-music-player-in-javax-178-lines-ca304d3ae031", "A Music Player In JavaX: 178 Lines"))
170  
          //+ p(visitor.get())
171  
          + p("Status: " + b("Offering Free Robots For Every Purpose"))
172  
          + p(b("Music.") + "<br>"
173  
             + join("<br>", map(func(S v) { youtubeEmbed(v, 300, 100) }, splitAtSpace(
174  
  "hxfE_-hqCE0 K8qNkFXfvIE 0FCo8vGUKuE Dd8WjeK8riE Xg1lfnyYJpc wNS-mrZvcOg KfvoR6aqcws tZB1sHlB554 zZwJL1J53LU YsTzN1_a5rg BBpGVZ4yMiE gdPwF2oMsdw"))))
175  
               // 98bgS9AuFe4 FjlPtUaXcvg 
176  
    );
177  
178  
    if (eq(uri, "/ever-easier"))
179  
      ret page_everEasier();
180  
181  
  if (eq(uri, "/watch"))
182  
    ret page_watch();
183  
        
184  
  if (eq(uri, "/explodingWindow"))
185  
    ret page_explodingWindow();
186  
    
187  
  if (eq(uri, "/automaticScreenshots"))
188  
    ret page_automaticScreenshot();
189  
    
190  
  
191  
  if (eq(uri, "/editor"))
192  
    ret page_editor();
193  
    
194  
  if (eq(uri, "/gc"))
195  
    ret page_gc();
196  
  
197  
  if (eq(uri, "/dynamicButtons"))
198  
    ret page_dynamicButtons();
199  
    
200  
  if (eq(uri, "/screenshots"))
201  
    ret page_screenshots();
202  
    
203  
  if (eq(uri, "/pastLives")) ret page_pastLives();
204  
  if (eq(uri, "/screenLens")) ret page_screenLens();
205  
  if (eq(uri, "/new")) ret page_new();
206  
  
207  
  // main page
208  
  //ret callHtmlMethod(getBot(#1008998), originalURI, params);
209  
  /*ret htitle("BotCompany.de") + hfullcenter(p("Let's start again.") + p(ahref("https://botcompany.de/chat", "Chat"))
210  
    + p("&nbsp;")
211  
    + embedYoutubeWithoutLink("0EoOVvGV_aQ", 250, 150));*/
212  
    
213  
  /*if (!subBot_isHttps_defaultToTrue())
214  
    ret hrefresh("https://BotCompany.de" + originalURI + htmlQuery(dropNanohttpdParams(params)));*/
215  
    
216  
  if (subBot_isHttps() || neqic(domain, "BotCompany.de"))
217  
    ret hrefresh("http://BotCompany.de" + originalURI + htmlQuery(dropNanohttpdParams(params)));
218  
    
219  
  //ret callHtmlMethod(getBot(#1013826), originalURI, params);
220  
  //ret hrefresh("https://www.botcompany.de:8443/1016323/raw");
221  
  ret hrefresh("https://www.botcompany.de");
222  
}
223  
224  
static S page_everEasier() {
225  
  print("html ever-easier");
226  
  S code = hHiliteJava([[
227  
p-awt {
228  
final new ImageSurface is;
229  
showFrame(jscroll(is));
230  
231  
jHandleFileDrop(is, voidfunc(File f) {
232  
is.setImage(loadBufferedImage(f))
233  
});
234  
}
235  
]], "text-align: left; width: 400px");
236  
237  
ret htitle("Ever Easier Programming | Stefan Reich")
238  
  + hmobilefix ()
239  
  + hGoogleFont("Nunito Sans:900")
240  
  + hcenter2(
241  
        h1("Welcome To Ever-Easier-Programming!", "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 50px")
242  
        
243  
      + p(b("Today: Making an image surface in " + ahref("http://javax.ai1.space", "JavaX") + " that you can drag image files into. " + ahref(snippetLink("#1006022"), "Full program.")))
244  
      
245  
      + code
246  
      
247  
      + p("&nbsp;")
248  
      
249  
      + hr()
250  
      
251  
      + mediumPosts()
252  
253  
      + p(youtubeEmbed("YCBt-JggF2c", 400, 250))
254  
      
255  
      + p(ahref(rawLink("more"), "[More]") + " " + ahref("mailto:info@botcompany.de", "[Mail]"))
256  
      + p(hsmall(visitor.get()))
257  
  );
258  
}
259  
260  
static S rest() {
261  
  ret
262  
    or2(pJavaXInstallations(), p("&nbsp;"))
263  
  + p(hsmall(visitor.get()))
264  
  + hr()
265  
  
266  
  + mediumPosts()
267  
268  
  + p(ahref(rawLink("more"), "[More]") + " " + ahref("mailto:info@botcompany.de", "[Mail]"))
269  
  
270  
  + p(b("Other Popular Videos."))
271  
  + p(b(ahref(youtubeLink("kTFS3V4PnQM"), "Perfect Java Garbage Collection")));
272  
}
273  
274  
static S mediumPosts() {
275  
  ret p(b(ahref("http://medium.com/@stefanreich", "On Medium.com:")))
276  
    + mediumPosts2();
277  
}
278  
279  
static S mediumPosts2() {
280  
  ret p(b(join("<br>",
281  
    map(func(MediumPost p) {
282  
        ahref(p.url, htmlencode(p.title))
283  
      }, mediumPosts))), "style", "font-size: 1.5em; line-height: 140%");
284  
}
285  
286  
static S page_watch() {
287  
  ret htitle("Let Your Computer Watch You! | Stefan Reich")
288  
    + hmobilefix ()
289  
    + hGoogleFont("Nunito Sans:900")
290  
    + hcenter2(
291  
          h1("Let Your Computer Watch You!", "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 50px")
292  
          
293  
        + p(himg("http://eyeocr.sourceforge.net/filestore/filestore.php?cmd=serve&file=blob_1006291&contentType=image/png"))
294  
        
295  
        + p(targetBlank("http://tinybrain.de/1006248", "Program.") + " " + ahref("http://tinybrain.de/x30.jar", "Install.") + " " + targetBlank("http://java.com/download", "Java 8."))
296  
        
297  
        + p(b("FAQ: ") + "Does this program send any information to a server?<br>" + b("Answer: No. ") + "If you want to share your trained fonts, there is another program for that.")
298  
        
299  
        + rest());
300  
}
301  
302  
static S page_explodingWindow() {
303  
  ret htitle("Behold The Exploding Window! | Stefan Reich")
304  
    + hmobilefix ()
305  
    + hGoogleFont("Nunito Sans:900")
306  
    + hcenter2(
307  
          h1("Behold The Exploding Window!", "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
308  
          
309  
        + htableRaw2(ll(ll(himg("http://eyeocr.sourceforge.net/filestore/filestore.php?cmd=serve&file=blob_1006358&contentType=image/png") + b("<br>(Original)"),
310  
        
311  
        himg("http://eyeocr.sourceforge.net/filestore/filestore.php?cmd=serve&file=blob_1006399&contentType=image/png") + b("<br>(Exploded)"))), ll("cellspacing", 20), null, ll("align", "center"))
312  
        
313  
        + p("Tell me this ain't grand e.g. for finding scrollbars. It's " + ahref("http://tinybrain.de/1006396", "automatic") + "!")
314  
        
315  
        + p(ahref("/watch", "Yesterday's news."))
316  
        
317  
        + rest());
318  
}
319  
320  
static S page_automaticScreenshot() {
321  
  S title = "Automatic Screenshots Of Windows";
322  
  S program = "http://tinybrain.de/1006425";
323  
  ret htitle(title + " | Stefan Reich")
324  
    + hmobilefix ()
325  
    + hGoogleFont("Nunito Sans:900")
326  
    + hcenter2(
327  
          h1(title, "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
328  
          
329  
        + p(targetBlank(program, himg("http://eyeocr.sourceforge.net/filestore/filestore.php?cmd=serve&file=blob_1006436&contentType=image/png"))
330  
        
331  
        + p(targetBlank(program, himg("http://eyeocr.sourceforge.net/filestore/filestore.php?cmd=serve&file=blob_1006427&contentType=image/png"))
332  
        
333  
        + p("Tell me this ain't grand. " + targetBlank(program, "Program.") + " " + targetBlank("http://tinybrain.de/1006408", "Program 2.") + " " + ahref("/explodingWindow", "Yesterday's news."))
334  
        
335  
        + rest()
336  
        
337  
        + p(b("Music."))
338  
        + p(youtubeEmbed("V5AztWseIdU", 300, 100)));
339  
}
340  
341  
static S page_editor() {
342  
  S title = "Making A Text Editor In 100 Lines";
343  
  S program = "http://tinybrain.de/1006438";
344  
  ret htitle(title + " | Stefan Reich")
345  
    + hmobilefix ()
346  
    + hGoogleFont("Nunito Sans:900")
347  
    + hcenter2(
348  
          h1(title, "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
349  
          
350  
        + p(youtubeEmbed("8A-25E7T8pA"))
351  
          
352  
        + p("Tell me this ain't grand. " + targetBlank(program, "Program.") + " " + targetBlank("http://tinybrain.de/1006441", "Program 2.") + " " + ahref("/automaticScreenshots", "Yesterday's news."))
353  
        
354  
        + rest()
355  
        
356  
        + p(b("Music."))
357  
        + p(youtubeEmbed("zigwkEgKPAk", 300, 100)));
358  
}
359  
360  
static S page_dynamicButtons() {
361  
  S title = "Dynamic Buttons In " + ahref("http://javax.ai1.space", "JavaX!");
362  
  S program = "http://tinybrain.de/1006467";
363  
  ret htitle(hTitleClean(title) + " | Stefan Reich")
364  
    + hmobilefix ()
365  
    + hGoogleFont("Nunito Sans:900")
366  
    + hcenter2(
367  
          visitorsChart("float: left; margin-right: 20px")
368  
        + youtubeLinkFloatRight()
369  
        + h1(title, "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
370  
          
371  
        + p(hHiliteJava([[
372  
static JScrollPane scroller;
373  
374  
p-substance {
375  
  showFrame(scroller = new JScrollPane);
376  
  scroller.setViewportView(vstack(jbutton("1"), jbutton("2"), jbutton("3")));
377  
  packFrame(scroller);
378  
  awtLater(scroller, 5000, r {
379  
    scroller.setViewportView(vstack(jbutton("7"),
380  
      jbutton("2"), jbutton("4"), jbutton("6"), jbutton("hello!")));
381  
  });
382  
}]], "text-align: left; width: 640px"))
383  
          
384  
        + p(b("Show some buttons, after 5 seconds show another set of buttons. All with a scrollbar."))
385  
        
386  
        + p(targetBlank(program, "Program."))
387  
        
388  
        + h1("Programs " + ahref("https://medium.com/@stefanreich/javax-programs-can-rename-themselves-238c49f3377a", "renaming themselves"), "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
389  
          
390  
        + p(hHiliteJava([[
391  
renameProgram(dropStartingFromLast(getProgramTitle(), " - ")
392  
  + " - last renamed " + ymd_hms());
393  
]], "text-align: left; width: 500px"))
394  
395  
        + p(targetBlank("http://tinybrain.de/1006471", "Program."))
396  
        
397  
        + p(b(ahref("/gc", "Yesterday's news.")))
398  
        + rest()
399  
  );
400  
}
401  
402  
static S page_screenshots() {
403  
  S title = "Sharing Screenshots Between Windows &amp; Linux In One Click";
404  
  ret htitle(hTitleClean(title) + " | Stefan Reich")
405  
    + hmobilefix ()
406  
    + hGoogleFont("Nunito Sans:900")
407  
    + hcenter2(
408  
          visitorsChart("float: left; margin-right: 20px")
409  
        + youtubeLinkFloatRight()
410  
        + h1(title, "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
411  
          
412  
        + bigScreenshot_noTitle(#1006485, #1005411)
413  
        
414  
        + p(b(ahref("/dynamicButtons", "Yesterday's news.")))
415  
        + rest()
416  
  );
417  
}
418  
419  
static S page_new() {
420  
  S title = "A. I. For Everyone by Stefan Reich";
421  
  ret htitle(hTitleClean(title))
422  
    + hmobilefix()
423  
    + hGoogleFont("Nunito Sans:900")
424  
    + hcenter2(
425  
          visitorsChart("float: left; margin-right: 20px")
426  
        + youtubeLinkFloatRight()
427  
        
428  
        + header("Welcome To The New AI!")
429  
        
430  
        + p(b(targetBlank("https://www.meetup.com/Artificial-Intelligence-Meetup/events/238795024/", "Meet-Up Apr 10, 2017")))
431  
        
432  
        + p(ahref("http://ai1.space/wiki/", b("Intelligence Machine.")))
433  
        
434  
        + headerSmaller("A New Type Of Chess Engine")
435  
        + p(youtubeEmbed("TBTXScYgSvg", 500, 500*9/16))
436  
        
437  
        + mediumPosts2()
438  
        
439  
        /*+ headerSmaller("Is Donald a good person?")
440  
        + p(youtubeEmbed("m4sqmHuJeC8", 400, 400*9/16))*/
441  
442  
        + p(b(ahref("http://javax.ai1.space", "[JavaX]")))
443  
        
444  
        + header("An Automatic Image Machine :)")
445  
        + p(youtubeEmbed("EJ0gdYIcdUA", 300, 200))
446  
        
447  
        + header("Text Recognition As A Game")
448  
        + p(youtubeEmbed("j2CSTPwunvs", 300, 200))
449  
        
450  
        + header("A Telepathic Language For Computers")
451  
        + p(youtubeEmbed("gTlgZkc95IU", 500, 350))
452  
        
453  
        + header("More Dancing Numbers")
454  
        + p(youtubeEmbed("douXXGMHbfA", 500, 350))
455  
456  
        + p(ahref(youtubeLink("oY_K_QMbfvM"), "A Heart For Cute YouTubers :)"))
457  
458  
        + header("Reproducing Images Without Neural Networks")
459  
        + p(youtubeEmbed("tgZbUJJTMqo", 500, 350))
460  
        
461  
        + header("A. I. Games To Change The World / The Computer That Clicks Itself")
462  
        + p(youtubeEmbed("1HLVUxrvwcc", 500, 350))
463  
        
464  
        + header("JavaX: Create a tiled background in one line")
465  
        + p(ahref("http://tinybrain.de/1006896", himg("http://eyeocr.sourceforge.net/filestore/filestore.php?cmd=serve&file=blob_1006899&contentType=image/png")))
466  
        + tag("tt", dynamize([[showFrame(jTiledBackground(#1006895, withMargin(vstack(jbutton("Yo"), jbutton("Mama!")))));]]))
467  
        
468  
        + header("2 New Games")
469  
        + p(youtubeEmbed("T8UTAmqcv1Q", 500, 350))
470  
471  
        + p(b(ahref("/screenLens", "Yesterday's news.")))
472  
        + rest()
473  
  );
474  
}
475  
476  
sS header(S s) {
477  
  ret h1(s, "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px");
478  
}
479  
480  
sS headerSmaller(S s) {
481  
  ret h2(s, "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px");
482  
}
483  
484  
static S page_screenLens() {
485  
  S title = "A. I. For Everyone by Stefan Reich";
486  
  ret htitle(hTitleClean(title))
487  
    + hmobilefix ()
488  
    + hGoogleFont("Nunito Sans:900")
489  
    + hcenter2(
490  
          visitorsChart("float: left; margin-right: 20px")
491  
        + youtubeLinkFloatRight()
492  
        
493  
        + h1("2 New Games", "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
494  
        + p(youtubeEmbed("T8UTAmqcv1Q", 500, 350))
495  
496  
+ h1("A. I. Game Solved", "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
497  
        + p(youtubeEmbed("AUjnnDakJhM", 500, 350))
498  
499  
        + h1("A New A. I. Game!", "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
500  
        + p(youtubeEmbed("OVBDsiQbWdQ", 500, 350))
501  
502  
        + h1("How To Make Your Own Personal Assistant In 1 Minute ", "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
503  
        + p(youtubeEmbed("LetUlRSi5QI", 400, 300))
504  
        
505  
        + h1("Let Our A.I. Play A Simple Game! / Programming Challenge", "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
506  
        + p(youtubeEmbed("PJC4ej5-PDo", 500, 350))
507  
        
508  
        + h1("My Screen Lens Is Watching You!", "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
509  
        
510  
        + p(youtubeEmbed("nEeMH_HyTYE", 400, 300))
511  
        
512  
        + h1("The Mystery", "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
513  
        
514  
        + p(youtubeEmbed("xhlMzQAaMjo", 300, 200))
515  
        
516  
        + h1("Database Tutorial", "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
517  
        + p(youtubeEmbed("ChHhPgKFYy0", 300, 200))
518  
        
519  
        + p(b(ahref("/pastLives", "Yesterday's news.")))
520  
        + rest()
521  
  );
522  
}
523  
524  
static S page_pastLives() {
525  
  S title = "The Truth About \"Past Lives\" + What Jesus Does Today";
526  
  ret htitle(hTitleClean(title) + " | Stefan Reich")
527  
    + hmobilefix ()
528  
    + hGoogleFont("Nunito Sans:900")
529  
    + hcenter2(
530  
          visitorsChart("float: left; margin-right: 20px")
531  
        + youtubeLinkFloatRight()
532  
        + h1(title, "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
533  
          
534  
        + p(youtubeEmbed("2gh7KsJbWj4", 450, 300))
535  
        
536  
        + h1("Database Tutorial", "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
537  
        + p(youtubeEmbed("ChHhPgKFYy0", 300, 200))
538  
        
539  
        + p(b(ahref("/screenshots", "Yesterday's news.")))
540  
        + rest()
541  
  );
542  
}
543  
544  
static S page_gc() {
545  
  S title = "Perfect Java Garbage Collection!";
546  
  S program = "http://tinybrain.de/1006458";
547  
  S program2 = "http://tinybrain.de/1006272";
548  
  ret htitle(title + " | Stefan Reich")
549  
    + hmobilefix ()
550  
    + hGoogleFont("Nunito Sans:900")
551  
    + hcenter2(
552  
          h1(title, "style", "font-family: 'Nunito Sans', sans-serif; margin-bottom: 0px")
553  
          
554  
        + p(youtubeEmbed("kTFS3V4PnQM", 600, 400))
555  
          
556  
        + p(b("Enjoy! ") + targetBlank(program, "Program.") + " " + targetBlank(program2, "Program 2.") + " " + ahref("/editor", "Yesterday's news."))
557  
        + rest()
558  
  );
559  
}
560  
561  
static S pJavaXInstallations() {
562  
  ret numComputers == 0 ? "" : 
563  
    p(ahref("http://javax.ai1.space", "JavaX") + " installations: " + b(targetBlank("http://tinybrain.de:8080/tb/all-computers.php", numComputers)) + " and counting!");
564  
}
565  
566  
static S visitorsChart(S style) {
567  
  ret himg("http://www.botcompany.de:8080/1004435/raw?q=visitors+chart", "width", "150", "height", "110", "style", "border: 2px solid black; border-radius: 5px; " + style);
568  
}
569  
570  
static S youtubeLinkFloatRight() {
571  
  ret div(targetBlank("https://www.youtube.com/channel/UCSvK6EfxnMTajbe-Qpc6NvA", himg("http://eyeocr.sourceforge.net/filestore/filestore.php?cmd=serve&file=blob_1006478&contentType=image/jpeg", title := "YouTube", width := 57, height := 35, align := "absmiddle")), "style", "float: right");
572  
}
573  
574  
!include #1006016 // screenshotLink etc.

download  show line numbers  debug dex  old transpilations   

Travelled to 19 computer(s): aoiabmzegqzx, bhatertpkbcr, cbybwowwnfue, cfunsshuasjs, ddnzoavkxhuk, gwrvuhgaqvyk, irmadwmeruwu, ishqpsrjomds, jmyaexzvplwz, lpdgvwnxivlt, mqqgnosmbjvj, onxytkatvevr, pyentgdyhuwx, pzhvpgtvlbxg, sawdedvomwva, tslmcundralx, tvejysmllsmz, vouqrxazstgt, xfbsdwenvhih

No comments. add comment

Snippet ID: #1003253
Snippet name: New Homepage (LIVE)
Eternal ID of this version: #1003253/86
Text MD5: eb632b2bd56d1713a97e9712dc6caefa
Transpilation MD5: 69f1011d292b73c4329063ec97b37e5a
Author: stefan
Category: javax
Type: JavaX source code (desktop)
Public (visible to everyone): Yes
Archived (hidden from active list): No
Created/modified: 2018-12-19 15:53:28
Source code size: 24202 bytes / 574 lines
Pitched / IR pitched: No / No
Views / Downloads: 2118 / 10213
Version history: 85 change(s)
Referenced in: [show references]