-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathdoc.html
160 lines (142 loc) · 9.76 KB
/
doc.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<!DOCTYPE html>
<html>
<head>
<title>Doc | PharoJS</title>
</head>
<body>
<link rel="stylesheet" type="text/css" href="css/pharoJS.css" />
<div class="pjHeader">
<a href="http://pharojs.org"><img alt="PharoJS Logo" src="img/pharoJsBicolorLogo2016-08-12.png"></a>
<h1>Documentation</h1>
</div>
<!-- From https://www.youtube.com/watch?v=t4vKPhjcMZg and https://documentation.divio.com/ -->
<!-- Suggestion on how to structure documentation -->
<div class="directory">
<table>
<tr>
<th></th>
<th>Studying</th>
<th>Coding</th>
</tr>
<tr>
<th>Practical<br>Steps</th>
<td><a href="#tutorial">Tutorials</a><br><span class="aside">Learning-Oriented</span></td>
<td><a href="#howto">How-To Guides</a><br><span class="aside">Problem-Oriented</span></td>
</tr>
<tr>
<th>Theoretical<br>Knowledge</th>
<td><a href="#discussion">Discussions</a><br><span class="aside">Understanding-Oriented</span></td>
<td><a href="#reference">Reference</a><br><span class="aside">Information-Oriented</span></td>
</tr>
</table>
</div>
<!-- -->
<h1><a name="tutorial">Tutorials</a></h1>
<h2>Getting Started with PharoJS</h2>
<p><a href="https://medium.com/@richardeng/getting-started-with-pharojs-2d9521fe78dc">Medium Post by Richard Kenneth
Eng</a></p>
<p>PharoJS is a great way to do front-end web development. It offers two tremendous benefits:</p>
<ul>
<li>You get to avoid JavaScript, one of the rightfully most-despised programming languages in the world.</li>
<li>You get to use Pharo, the Modern Smalltalk. Why Smalltalk? This is why.</li>
</ul>
<button
onclick="window.open('https://medium.com/@richardeng/getting-started-with-pharojs-2d9521fe78dc', '_blank')">Read
More</button>
<h1><a name="howto">How-To Guides</a></h1>
<h2><a name="runningExample">Running PharoJS Examples</a></h2>
A dedicated page explains through an example how to run PharoJS built-in examples.
<br>
<button onclick="window.open('doc/runningExamples.html')">Read More</button>
<h2><a name="cordova">How to Develop Mobile Apps with PharoJS?</a></h2>
A dedicated page explains through an example how to build a mobile app using PharoJS. It relies on Apache Cordova
(formerly PhoneGap) to turn HTML based project into Anroid and iOS applications.
<br>
<button onclick="window.open('mobileAppDev.html')">Read More</button>
<h1><a name="discussion">Discussions</a></h1>
<h2><a name="esug2022Hightlights">PharoJS Highlights @ ESUG 2022 Conference, 22-26 August in Нови Сад (Novi Sad),
Србија (Serbia)</a></h2>
<p>After a two years pause due to COVID, ESUG conference is back. As usual, it was a delight to meet the Smalltalk
community. It was also an opportunity to present latest updates on PharoJS, give demos and even implement new stuff.
</p>
<ul>
<li><a href="https://nootrix.com/misc/pharojs-highlights-esug-2022/#talk">Slides + Video of a talk entitled: PharoJS
for Real World Applications</a></li>
<li><a href="https://nootrix.com/misc/pharojs-highlights-esug-2022/#demoPlc3000">Videos of PLC3000 a PharoJS-based
Software for Teaching Factory Automation</a></li>
<li><a href="https://nootrix.com/misc/pharojs-highlights-esug-2022/#experiment">Web interactive app demoing 3D
Graphics with PharoJS</a></li>
</ul>
<h2><a name="esug2018Talk">Talk at the ESUG 2018 Conference, Tuesday 11th September, Cagliari, Italy</a></h2>
<p><em>Abstract:</em> This talk is an update on PharoJS (http://pharojs.org). It covers the current status of the
PharoJS development process, as well as its tools. Through an example, we will describe how to use PharoJS, and how
it supports TDD, starting with a Pharo code, and ultimately compiling it to Javascript that runs on a JS interpreter
(Web browser, NodeJS...). The talk will also give a glimpse of some recent applications developed using PharoJS, and
draw a roadmap for the future of PharoJS.</p>
<p> The full code of the example is in the <code>PharoJsExamples</code> package under the
<code>PhysicsSimulation</code> tag. The HTML code is in folder <code>HTML/PharoJsExamples/PhysicsSim</code>
</p>
<p>A standalone version of this example is converted to Javascript <a href="Demos/MatterJsDemo/index.html">runs
here</a></p>
<div style="text-align:center;">
<iframe src="https://www.slideshare.net/slideshow/embed_code/key/9KAt1O9l0ixPC7" width="595" height="485"
frameborder="0" marginwidth="0" marginheight="0" scrolling="no"
style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<div style="margin-bottom:5px"> <strong> <a
href="https://www.slideshare.net/esug/pharojs-pharobased-tdd-for-javascript-applications"
title="PharoJS: Pharo-Based TDD for Javascript Applications" target="_blank">PharoJS: Pharo-Based TDD for
Javascript Applications</a> </strong> from <strong><a target="_blank"
href="https://www.slideshare.net/esug">ESUG</a></strong></div>
</div>
<h2>IWST 2016 Paper: Mocks, Proxies, and Transpilation as Development Strategies for Web Development</h2>
<p><em>Abstract:</em> With the advent of HTML 5, we can now develop rich web apps that rival classical standalone
apps. This richness together with the portability of web technologies, turned HTML 5 into a viable (and in the case
of mobile - essential) solution to develop cross-platform apps. This possibility is heavily dependent on Javascript
having acceptable performance, good testability, and a modern development environment. Despite its extensive use in
creating highly interactive environments, most Javascript development environments currently use a compile/run
paradigm. Similarlily, testing is frequently tacked on, rather than being an integrated part of the development
cycle. We propose PharoJS which leverages the Smalltalk IDE with a seamless transition from native Smalltalk tests,
through proxied browser tests, to full browser-resident tests. We support the standard eventdriven browser model and
transpile Smalltalk code into efficient Javascript for execution in the browser. We further support testing - both
manually and automatically - in a range of browsers to provide assured consistency upon deployment. In addition to
transpiling the Smalltalk code to Javascript to perform tests in the browser, we can also run non-interactive tests
within the Smalltalk environment. The unique feature we provide is the ability to run interactive tests largely
within the Smalltalk IDE, so as to fully exploit the debugging and development environment, while the actual
interaction occurs on the browser. We exhibit this new mode of development via a simple application.</p>
<br>
<button onclick="window.open('http://www.esug.org/data/ESUG2016/IWST/Papers/IWST_2016_paper_23.pdf')">Get the
PDF</button>
<h2><a name="esug2016Talk">Talk at ESUG 2016 Conference, Monday 22nd August, Prague, Czech Republic</a></h2>
<p><em>Abstract:</em> PharoJS is an infrastructure (framework + middleware + tools) that allows developping and
testing in Smalltalk for applications that will ultimately run on a Javascript interpreter. Unlike to Amber, that
runs inside a web browser, PharoJS is built on top of Pharo. Apps are initially buit in the image as pure Pharo
objects that run on the Smalltalk virtual machine. The PharoJS middleware allows interacting remotely with third
party Javascript objects running on a web browser, or interacting with a web view, particularly for mobile apps.
Such interactions are used only during tests. Ultimately, the Smalltalk code is converted to Javascript. So, at the
production stage, only a Javascript interpreter is required to run the app. In this talk, we present the current
status of PharoJS and its implementation. Through an example, we describe the application development process, with
a focus on tests and TDD.</p>
<p><a href="faq.html#demoEsug2016">Download the ZIP archive with files used for demo.</a></p>
<iframe style="display:block; margin:auto;" src="https://www.slideshare.net/slideshow/embed_code/key/7T9KtCv5t4xS1I"
width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"
style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe>
<div style="display:block; margin-left:auto; margin-right:auto; margin-bottom:5px"> <strong> <a href="https://www.slideshare.net/esug/pharojs" title="PharoJS"
target="_blank">PharoJS</a> </strong> from <strong><a target="_blank"
href="https://www.slideshare.net/esug">ESUG</a></strong> </div>
<iframe style="display:block; margin:auto;" width="560" height="315"
src="https://www.youtube.com/embed/nmRPSb0t9lw?si=iqrm7_r1WYFU1RoS" title="YouTube video player" frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
<br>
<hr>
<h1><a name="reference">Reference</a></h1>
<h2>Documentation</h2>
<p>We decided to organize the PharoJS documentation in 4 sections <a href="https://documentation.divio.com/">as
suggested by Divio</a>.
This "Grand Unified Theory of Documentation" is also explained in the following video.</p>
<iframe width="560" height="315" style="display:block; margin:auto;"
src="https://www.youtube.com/embed/t4vKPhjcMZg?si=ntAAJ7lMsbxdU1Uz" title="YouTube video player" frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</body>
</html>