OXT In STEM Education Curriculum
Posted: Tue Jan 18, 2022 8:37 pm
To Paul: I am unable to upload a zipped folder of files, so I emailed it to you. Maybe you could post it here for others. Thanks for all your work on this open source project. We all appreciate the time and effort. edit: finally forum accepted zip folder. Terry
To All: Please look over the files for problems, fixes, especially the demo Print Break stack. Comments welcome.
----
OpenXTalk could reach a wider audience by focusing on teachers and school district administrators under pressure to provide computer science and coding curriculum. My state requirements specify c, c++, visualBasic, python, or "other programming languages". The three local high schools all use MIT's Scratch. Scratch has taken the space that OXT is better suited for, at least for grades 5-12. To that end, I wrote a lesson plan template stack for teachers and 22 STEM (Science Tech Engineering Math) lesson plans featuring OXT to go with it (in attachment). It all lies hidden unless administrators know about OpenXTalk.
How to make OpenXTalk visible? Some type of official direct contact to states and provinces in a coordinated approach? Contact school districts directly? I suspect Scratch made it because administrators were relieved they could satisfy their requirements and keep teachers happy with an easy way out. Teachers didn't need additional training and Scratch provided compliant lesson plans. I found there's quite a racket selling lesson plans for $3-$9 on the internet. I understand now, as it takes about 1.5 hrs to write a good STEM plan, so busy teachers pay out-of-pocket.
LC tried different models for education but didn't get much further than a nationalistic effort in Scotland. Did they try for other English-speaking countries or translate the Dictionary for Spanish? What can OXT do where LC floundered?
An attractive website emphasizing the program's direction and intended audience is critical, with a direct appeal to educators. Attached is a demo site based on LibreOffice's. Too flashy? Too many menuItems?
Raspberry Pi compatibility might be a plus. [-hh] Herman Hoch could provide valuable assistance with RPi and widget development, along with Bernd Niggeman who is also skilled with widgets and may be able to contact Herman for consult. While writing lesson plans I really could have used a Pie Graph and Bar Graph widget to complement the very nice Line Graph widget for students to use in data analysis and reports. I did find a free Pie Chart widget that could be included with standard widgets. Maybe change the name to "Pie Graph" with color options and default colors like Line Graph for continuity? Funny LC made both but names one "Graph" and the other "Chart". Widget "Pie Chart" download: h& ttps://livecode &dot& com/extensions/pie-chart/1-0-0/
----
A Few More IDE And Dictionary Suggestions
Thanks Paul for considering these. Terry
1) Dictionary / printMargins. Currently implies only for printing cards. The printMargins property works with printing cards, fields, and text. Print margin changes remain in effect after the print handler ends. It reverts to default 1 inch ("72,72,72,72") after OXT quits. Set the printMargins to "36,36,36,36" --.5"=36px, 1"=72px, L,T,R,B. Verify with answer page setup or in msg box: put the printMargins.
2) Dictionary / printerSettings. printerSettings could have a realistic example how to extract the returned text, change an item, and set. My impression is that printerSettings is not to be used for changing individual items, but to be used only to save "current settings" and reinstate after changes, not alter the binary. No idea how to extract individual items.
3) Geometry Manager. Wild unexpected resizing. LC bug (23122). This longstanding problem has been solved by Brian Milby, but the fix has never been applied by LC. The workaround is: after adjusting the GM for all controls/groups, adding new controls/groups, and changing layout, in msg box: revCacheGeometry true. Perhaps Brian could assist if you contacted him (through LC forum private message). If successful, you might consider offering the solution to LC Ltd as a gesture of goodwill.
4) Yellow Hilite. Add: Text > Hilite menuItem after 3D Box menuItem.
on mouseUp --hilite/dehilite selection
local tHilite
put selectedChunk(selectedField()) into tHilite --char x to y of fld z
if word 4 of tHilite = "0" then exit to top --no selection
if the backColor of tHilite <> empty then set the backColor of tHilite to empty --dehilite
else set the backColor of tHilite to "255,255,170" --light yellow hilite
end mouseUp
5) RevPrintField Print Break and RevPrintText Print Break. Print cards recognizes a print break (forced new page), but not revPrintField or revPrintText. I've rewritten their code to accept a formfeed character to give the revPrint commands a print break (forced new page) too. I filed an enhancement request with LC a year ago, but they've not done anything with it. [1/11/2021, LC bug (23060), add revPrintText/revPrintField forced page breaks with <%formfeed%> keyword, revPrintField header/footer, yellow hilite for text in menu.] I included a stack demo to test printing to pdf (in folder "Submissions" in the Education section). Dictionary would need updating for revPrintField and revPrintText.
6) Dictionary / RevPrintField.
Syntax: revPrintField fieldDescriptor[,headerText[,footerText]]
Comments: If the field, headerText, or footerText contains any expressions of the form <%expression%>, the expression is evaluated and replaced with value(expression) before the field is printed. Valid expressions would include <%the long date%>, <%the short date%>, <%the short time%>, <%the printPageNumber%>, <%formfeed%>.
For example, if the field contains the text: Today's date is <%the long date%>, the printed text will be: Today's date is Friday, February 15, 2022.
The special value <%formfeed%> in the field is replaced with an invisible nonprinted character that forces a new page print break where inserted. Insert formfeed on a separate line. There are unsatisfactory results with mixed textSizes.
The special values <%pageNumber%> and <%numPages%> are only supported in a header or footer.
The headerText and footerText can contain up to two tab characters:
* Everything up to the first tab character is left-aligned.
* Everything between the first and second tab character is centered.
* Everything after the second tab character is right-aligned.
If the headerText or footerText contain more than two tab characters, everything after the third tab is ignored.
7) Dictionary / RevPrintText.
Comments: if the textToPrint, headerText, or footerText contains any expressions of the form <%expression%>, the expression is evaluated and replaced with value(expression) before the text is printed. Valid expressions would include <%the long date%>, <%the short date%>, <%the short time%>, <%the printPageNumber%>, <%formfeed%>.
For example, if the text contains: Today's date is <%the long date%>, the printed text will be: Today's date is Friday, February 15, 2022.
The special value <%formfeed%> in the text is replaced with an invisible nonprinted character that forces a new page print break where inserted. Insert formfeed on a separate line. There are unsatisfactory results with mixed textSizes.
The special values <%pageNumber%> and <%numPages%> are only supported in a header or footer.
The headerText and footerText can contain up to two tab characters:
* Everything up to the first tab character is left-aligned.
* Everything between the first and second tab character is centered.
* Everything after the second tab character is right-aligned.
If the headerText or footerText contain more than two tab characters, everything after the third tab is ignored.
8) Dictionary / scaleFactor. Could add: The scaleFactor setting is not persistent, stack and standalone revert to original size. To make persistent, in stack script (or card 1 script of mainstack if there are substacks):
on preOpenStack
set the scaleFactor of this stack to ".7" --scale smaller
end preOpenStack
9) Dictionary in windows 10 with backdrop opens behind the backdrop. (LC bug 17388, 4/2016, v8x+) The workaround is to click anywhere on the backdrop to bring Dictionary to front. LC has ignored this since v8x, so maybe a hard fix. Confusing for new users.
To All: Please look over the files for problems, fixes, especially the demo Print Break stack. Comments welcome.
----
OpenXTalk could reach a wider audience by focusing on teachers and school district administrators under pressure to provide computer science and coding curriculum. My state requirements specify c, c++, visualBasic, python, or "other programming languages". The three local high schools all use MIT's Scratch. Scratch has taken the space that OXT is better suited for, at least for grades 5-12. To that end, I wrote a lesson plan template stack for teachers and 22 STEM (Science Tech Engineering Math) lesson plans featuring OXT to go with it (in attachment). It all lies hidden unless administrators know about OpenXTalk.
How to make OpenXTalk visible? Some type of official direct contact to states and provinces in a coordinated approach? Contact school districts directly? I suspect Scratch made it because administrators were relieved they could satisfy their requirements and keep teachers happy with an easy way out. Teachers didn't need additional training and Scratch provided compliant lesson plans. I found there's quite a racket selling lesson plans for $3-$9 on the internet. I understand now, as it takes about 1.5 hrs to write a good STEM plan, so busy teachers pay out-of-pocket.
LC tried different models for education but didn't get much further than a nationalistic effort in Scotland. Did they try for other English-speaking countries or translate the Dictionary for Spanish? What can OXT do where LC floundered?
An attractive website emphasizing the program's direction and intended audience is critical, with a direct appeal to educators. Attached is a demo site based on LibreOffice's. Too flashy? Too many menuItems?
Raspberry Pi compatibility might be a plus. [-hh] Herman Hoch could provide valuable assistance with RPi and widget development, along with Bernd Niggeman who is also skilled with widgets and may be able to contact Herman for consult. While writing lesson plans I really could have used a Pie Graph and Bar Graph widget to complement the very nice Line Graph widget for students to use in data analysis and reports. I did find a free Pie Chart widget that could be included with standard widgets. Maybe change the name to "Pie Graph" with color options and default colors like Line Graph for continuity? Funny LC made both but names one "Graph" and the other "Chart". Widget "Pie Chart" download: h& ttps://livecode &dot& com/extensions/pie-chart/1-0-0/
----
A Few More IDE And Dictionary Suggestions
Thanks Paul for considering these. Terry
1) Dictionary / printMargins. Currently implies only for printing cards. The printMargins property works with printing cards, fields, and text. Print margin changes remain in effect after the print handler ends. It reverts to default 1 inch ("72,72,72,72") after OXT quits. Set the printMargins to "36,36,36,36" --.5"=36px, 1"=72px, L,T,R,B. Verify with answer page setup or in msg box: put the printMargins.
2) Dictionary / printerSettings. printerSettings could have a realistic example how to extract the returned text, change an item, and set. My impression is that printerSettings is not to be used for changing individual items, but to be used only to save "current settings" and reinstate after changes, not alter the binary. No idea how to extract individual items.
3) Geometry Manager. Wild unexpected resizing. LC bug (23122). This longstanding problem has been solved by Brian Milby, but the fix has never been applied by LC. The workaround is: after adjusting the GM for all controls/groups, adding new controls/groups, and changing layout, in msg box: revCacheGeometry true. Perhaps Brian could assist if you contacted him (through LC forum private message). If successful, you might consider offering the solution to LC Ltd as a gesture of goodwill.
4) Yellow Hilite. Add: Text > Hilite menuItem after 3D Box menuItem.
on mouseUp --hilite/dehilite selection
local tHilite
put selectedChunk(selectedField()) into tHilite --char x to y of fld z
if word 4 of tHilite = "0" then exit to top --no selection
if the backColor of tHilite <> empty then set the backColor of tHilite to empty --dehilite
else set the backColor of tHilite to "255,255,170" --light yellow hilite
end mouseUp
5) RevPrintField Print Break and RevPrintText Print Break. Print cards recognizes a print break (forced new page), but not revPrintField or revPrintText. I've rewritten their code to accept a formfeed character to give the revPrint commands a print break (forced new page) too. I filed an enhancement request with LC a year ago, but they've not done anything with it. [1/11/2021, LC bug (23060), add revPrintText/revPrintField forced page breaks with <%formfeed%> keyword, revPrintField header/footer, yellow hilite for text in menu.] I included a stack demo to test printing to pdf (in folder "Submissions" in the Education section). Dictionary would need updating for revPrintField and revPrintText.
6) Dictionary / RevPrintField.
Syntax: revPrintField fieldDescriptor[,headerText[,footerText]]
Comments: If the field, headerText, or footerText contains any expressions of the form <%expression%>, the expression is evaluated and replaced with value(expression) before the field is printed. Valid expressions would include <%the long date%>, <%the short date%>, <%the short time%>, <%the printPageNumber%>, <%formfeed%>.
For example, if the field contains the text: Today's date is <%the long date%>, the printed text will be: Today's date is Friday, February 15, 2022.
The special value <%formfeed%> in the field is replaced with an invisible nonprinted character that forces a new page print break where inserted. Insert formfeed on a separate line. There are unsatisfactory results with mixed textSizes.
The special values <%pageNumber%> and <%numPages%> are only supported in a header or footer.
The headerText and footerText can contain up to two tab characters:
* Everything up to the first tab character is left-aligned.
* Everything between the first and second tab character is centered.
* Everything after the second tab character is right-aligned.
If the headerText or footerText contain more than two tab characters, everything after the third tab is ignored.
7) Dictionary / RevPrintText.
Comments: if the textToPrint, headerText, or footerText contains any expressions of the form <%expression%>, the expression is evaluated and replaced with value(expression) before the text is printed. Valid expressions would include <%the long date%>, <%the short date%>, <%the short time%>, <%the printPageNumber%>, <%formfeed%>.
For example, if the text contains: Today's date is <%the long date%>, the printed text will be: Today's date is Friday, February 15, 2022.
The special value <%formfeed%> in the text is replaced with an invisible nonprinted character that forces a new page print break where inserted. Insert formfeed on a separate line. There are unsatisfactory results with mixed textSizes.
The special values <%pageNumber%> and <%numPages%> are only supported in a header or footer.
The headerText and footerText can contain up to two tab characters:
* Everything up to the first tab character is left-aligned.
* Everything between the first and second tab character is centered.
* Everything after the second tab character is right-aligned.
If the headerText or footerText contain more than two tab characters, everything after the third tab is ignored.
8) Dictionary / scaleFactor. Could add: The scaleFactor setting is not persistent, stack and standalone revert to original size. To make persistent, in stack script (or card 1 script of mainstack if there are substacks):
on preOpenStack
set the scaleFactor of this stack to ".7" --scale smaller
end preOpenStack
9) Dictionary in windows 10 with backdrop opens behind the backdrop. (LC bug 17388, 4/2016, v8x+) The workaround is to click anywhere on the backdrop to bring Dictionary to front. LC has ignored this since v8x, so maybe a hard fix. Confusing for new users.