Codeworld adalah lingkungan pendidikan yang menggunakan Haskell. Ini memberikan model matematika sederhana untuk angka geometris, animasi, dan game interaktif dan multi-pemain. Lingkungan pemrograman berbasis web mendukung misi pendidikan ini dengan editor dan kompiler nol-setup, berbagi mudah dan penyimpanan cloud proyek, dan kemampuan untuk menjalankan program tepat di browser web menggunakan GHCJ.
Ada beberapa varian Codeworld yang tersedia:
codeworld-api dan blank-canvas .Codeworld stabil dan telah digunakan di sekolah selama bertahun -tahun! Lihat halaman Pengguna untuk daftar parsial. Kami terus meningkatkan lingkungan. Perubahan yang melanggar, bila perlu, dijadwalkan terjadi antara semester sekolah K-12 yang khas (AS), untuk meminimalkan gangguan kelas yang ada.
Google mendistribusikan kode untuk Codeworld, tetapi Codeworld bukan proyek Google resmi, dan Google tidak memberikan dukungan untuk itu. Sebaliknya, pertanyaan tentang proyek atau kode harus ditanyakan ke milis Codeworld-Discuss. Forum tanya jawab yang ramah siswa juga tersedia di http://help.code.world untuk pertanyaan tentang program yang ditulis menggunakan Codeworld, daripada pertanyaan tentang membangun atau memodifikasi Codeworld itu sendiri.
Cukup kunjungi https://code.world untuk memulai.
Tidak perlu mengunduh atau menginstal apa pun untuk menggunakan Codeworld. Repositori ini akan berguna jika Anda lebih suka garpu dan memodifikasi lingkungan Codeworld, atau menyumbangkan perubahan.
Untuk mendiskusikan dan mendengar pengumuman tentang Codeworld, berlangganan milis di https://groups.google.com/forum/#!forum/codeworld-discuss
Milis harus digunakan untuk:
Untuk melaporkan bug atau permintaan fitur formal, coba https://github.com/google/codeworld/issues.
Ada sedikit dokumen yang terlibat dalam berkontribusi pada Codeworld. Anda harus menyetujui perjanjian lisensi kontributor. Lihat CONTRIBUTING.md untuk detailnya.
Membangun dan menjalankan Codeworld dapat menjadi proses yang panjang, tetapi otomatis menggunakan skrip instalasi di direktori root, yang bekerja pada sebagian besar bentuk Linux, termasuk Debian, Ubuntu, Redhat, dan Centos. Instruksi langkah demi langkah adalah sebagai berikut:
./install.sh untuk mengatur proyek../run.sh untuk memulai server.Anda sekarang dapat mengakses sistem CodeWorld di http: // localhost: 8080.
Jika Anda membuat perubahan pada Codeworld, Anda dapat membangunnya kembali tanpa membangun kembali dependensi:
./build.sh untuk mengkompilasi ulang hanya codeworld itu sendiri, menggunakan alat dan perpustakaan yang diinstal sebelumnya../run.sh untuk memulai server.Dimungkinkan juga untuk membangun dan menjalankan server menggunakan Docker. Ini belum menjadi cara yang disarankan untuk berkembang dengan Codeworld, tetapi bisa segera sampai di sana.
Perintah untuk mencoba Docker:
sudo docker build -t codeworld https://github.com/google/codeworld.git
sudo docker run -p 80:8080 -t codeworld
Untuk saat ini, wadah Docker tidak memiliki cara untuk mengakses ID klien, memasang drive NFS bersama, atau langkah pengaturan lainnya. Ini akan berhasil, tetapi tidak akan lengkap. Di masa depan, ini harus menjadi cara standar untuk menggunakan Codeworld.
stack.yaml dalam akar proyek hadir untuk mendukung sebagian Intero dan Travis CI. Pada Travis, tes codeworld-compiler tidak berjalan.
Membangun dan menjalankan Codeworld secara lokal dengan Stack tidak didukung, dan pada kenyataannya tidak berhasil. Tumpukan belum dapat menggantikan skrip shell atau penggunaan Docker di atas.
CodeWorld menawarkan dua mode otentikasi atau kemampuan untuk berjalan dengan otentikasi dinonaktifkan dengan fungsionalitas yang berkurang. Dua metode yang disediakan adalah sebagai berikut:
Menjalankan Codeworld di salah satu dari dua mode ini memungkinkan pengguna untuk menyimpan dan mengelola proyek dan folder mereka. Tanpa otentikasi yang diaktifkan, pengguna dapat menulis, membangun, dan menjalankan kode tetapi kehilangan kemampuan untuk menyimpan dan mengelola proyek dan folder.
Agar Google Authentication berfungsi, Anda perlu mendapatkan kunci Google API dan menyimpannya di web/clientId.txt .
Untuk mendapatkan kunci Google API untuk instalasi Codeworld Anda, silakan berkonsultasi dengan sumber daya berikut:
Setelah Anda memiliki kunci Google API, salin dan tempel ke web/clientId.txt . Instance CodeWorld yang sedang berjalan akan segera mengambil perubahan pada file ini.
Secara umum, sistem otentikasi Google akan menjadi sistem termudah untuk dipelihara karena tidak diperlukan toko kata sandi lokal. Ini adalah mekanisme yang digunakan oleh versi resmi Codeworld.
Untuk aplikasi di mana dependensi eksternal, seperti akun Google, tidak dapat diterima, kami menyediakan sistem otentikasi lokal yang sederhana:
Ini memberikan sistem otentikasi lokal dengan alur kerja yang sangat mirip dengan otentikasi Google (yaitu sesi sisi klien tanpa kewajiban). Saat ini, tidak ada antarmuka administrasi berbasis web yang disediakan. Sebaliknya, Anda dapat menggunakan alat codeworld-auth CLI untuk mengelola akun.
Sistem otentikasi lokal mungkin berguna untuk situasi di mana instruktur tidak dapat secara wajar mengharapkan semua siswa untuk memiliki akun Google yang valid dan di mana instruktur bersedia menggunakan tumpukan codeworld lokal.
Otentikasi lokal akan diaktifkan jika file codeworld-auth.db hadir di direktori root aplikasi. Untuk membuat database ini, jalankan yang berikut dari akar repositori git:
build/bin/codeworld-auth init-accounts -d codeworld-auth.db
Ini akan membuat database akun kosong tanpa akun.
Dengan asumsi Anda telah membuat basis data akun seperti yang dijelaskan di atas, Anda dapat membuat akun baru sebagai berikut:
build/bin/codeworld-auth create-account -d codeworld-auth.db johndoe Expired
Ini akan membuat akun baru dengan ID pengguna johndoe dengan kata sandi yang dihasilkan secara acak. Akun akan diatur ke "kedaluwarsa" yang berarti pengguna akan diminta untuk memasukkan kata sandi baru pada waktu masuk berikutnya.
Sub -perintah lain disediakan untuk memperbarui dan menghapus akun dll. Untuk bantuan:
build/bin/codeworld-auth --help
Untuk menggunakan otentikasi lokal, Anda juga perlu menghasilkan rahasia JWT yang disimpan dalam file bernama codeworld-auth.txt . Ini digunakan untuk menandatangani token JWT yang lewat antara server dan browser. Dari direktori root repositori git, jalankan perintah berikut:
build/bin/codeworld-auth generate-secret -s codeworld-auth.txt
Ini akan menghasilkan kunci penandatanganan JWT acak baru. Server tidak boleh mengekspos rahasia ini kepada pengguna eksternal.
Jika Anda menginstal Codeworld di server virtual, ketahuilah bahwa RAM default pada server ini sering tidak cukup untuk GHC. Codeworld perlu menyusun proyek Haskell yang sangat besar selama pemasangannya. Berikut ini harus cukup untuk menyelesaikan masalah di luar memori yang Anda temui:
$ sudo dd if=/dev/zero of=/swap bs=1024 count=2097152
$ sudo mkswap /swap
$ sudo swapon /swap
Ini membuat file swap 2 GB untuk meningkatkan memori virtual yang tersedia. Instalasi dengan file swap mungkin lambat, tetapi akan berhasil. (Kecuali jika Anda bermaksud menulis program yang sangat besar di Codeworld, biasanya aman untuk menghapus file swap setelah menjalankan server untuk pertama kalinya.)