From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Amirouche Newsgroups: gmane.lisp.guile.user Subject: Getting started web developpement with GNU Guile (with guile fibers) and BiwaScheme Date: Sat, 6 May 2017 20:47:58 +0200 Message-ID: <9546dff3-8696-249e-955e-7c1f8a209833@hypermove.net> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Trace: blaine.gmane.org 1494096470 5297 195.159.176.226 (6 May 2017 18:47:50 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 6 May 2017 18:47:50 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 To: "guile-user@gnu.org" Original-X-From: guile-user-bounces+guile-user=m.gmane.org@gnu.org Sat May 06 20:47:44 2017 Return-path: Envelope-to: guile-user@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1d74k4-0001Gf-8m for guile-user@m.gmane.org; Sat, 06 May 2017 20:47:44 +0200 Original-Received: from localhost ([::1]:52384 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d74k9-00024o-RN for guile-user@m.gmane.org; Sat, 06 May 2017 14:47:49 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:36387) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d74jo-00024i-5c for guile-user@gnu.org; Sat, 06 May 2017 14:47:29 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d74jj-0000gh-OZ for guile-user@gnu.org; Sat, 06 May 2017 14:47:28 -0400 Original-Received: from relay7-d.mail.gandi.net ([2001:4b98:c:538::200]:33111) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1d74jj-0000fw-HD for guile-user@gnu.org; Sat, 06 May 2017 14:47:23 -0400 Original-Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) by relay7-d.mail.gandi.net (Postfix) with ESMTPS id 95FEE131F for ; Sat, 6 May 2017 20:47:20 +0200 (CEST) Original-Received: from [IPv6:2a01:e35:2ef3:d930:2cdb:2237:6d21:f20d] (unknown [IPv6:2a01:e35:2ef3:d930:2cdb:2237:6d21:f20d]) (Authenticated sender: amirouche@hypermove.net) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 56821A80BE for ; Sat, 6 May 2017 20:47:19 +0200 (CEST) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 2001:4b98:c:538::200 X-BeenThere: guile-user@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: General Guile related discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-user-bounces+guile-user=m.gmane.org@gnu.org Original-Sender: "guile-user" Xref: news.gmane.org gmane.lisp.guile.user:13686 Archived-At: I made a screencast explaining how I would start building a poll application using by favorite tools of the moment. There GNU Guile in the backend using the new guile-fibers to run the http server workers. In the frontend I use BiwaScheme with snabbdom library for interacting with the browser. BiwaScheme is a Scheme interpreter written in JavaScript. Snabbdom is library that implement a diff+patch algorithm which allows to declare how the page will look and it make it happen. It also handles bindings events to callbacks. The use of snabbdom is bound to scheme and its use is transparent. The first video, I try to explain what tools I will use and sort of why. It's not very interesting https://youtu.be/i47QgE0ihSw The second video, I tackle an issue in forward.scm, basically I am bug hunting in the browser: https://youtu.be/to8vdri82_E The last is the most interesing, it restart where I left it in the previous video with basically a minimal frontend (so you might want to look at the 20 last minutes of the second video). Anyway, then it goes on to allow the frontend (client side) to communicate with the backend (server side) using HTTP: https://youtu.be/ePiHp1lgbas The code can be found @ https://framagit.org/a-guile-mind/azul azul means "hello" in amazigh. Happy hacking! ~ amz3 ~ http://hyperdev.fr