Using . in module names

2016-06-03 Thread Christopher Baines
From reading the documentation, I would expect this to work, as . is
valid in symbols? But from trying this out, it does not seem to (the
module cannot be loaded).

Does anyone have information about this?



signature.asc
Description: OpenPGP digital signature


Re: Using . in module names

2016-06-03 Thread Neil Jerram

On 03/06/16 08:57, Christopher Baines wrote:

 From reading the documentation, I would expect this to work, as . is
valid in symbols? But from trying this out, it does not seem to (the
module cannot be loaded).

Does anyone have information about this?



I think you should provide the complete example of what isn't working.  
It's not clear to me if you mean


(define-module (.) ...)

or

(define-module (.something) ...)

or

(define-module (something . else) ...)

etc.

Regards,
Neil




How do you earn money with Guile?

2016-06-03 Thread Arne Babenhauserheide
Hi,

> “I would take Guile seriously when someone earned money with it.”
> — someone from IRC

When I saw this on IRC, I realized that the there’s something to it:
When a professional sees something new and is unsure whether it can be
useful to business, it’s sensible to first check whether someone else
already earns money with it. That doesn’t work for the first person, but
it works for all others.


So I want to ask you: Do you earn part of your income by programming
with Guile?


I’ll go first: I used Guile for a few tasks for my PhD thesis (which I
got paid for).

The first main task was to assemble commandlines for my plotting tool
where my previous shell scripts became a maintenance nightmare. All in
all that’s about 300 lines of Guile Scheme. I’ll be using Guile for this
again in the following months.

The second main task was to build an Ensemble Kalman Filter to get a
deeper understanding of the method. That’s about 266 lines of Guile wisp
and available online:
https://bitbucket.org/ArneBab/wisp/src/v0.9.0/examples/ensemble-estimation.w


I’d be glad to hear how you earn money with Guile!


Best wishes,
Arne Babenhauserheide

PS: Earning money with Free Software is awesome!



Re: Using . in module names

2016-06-03 Thread Taylan Ulrich Bayırlı/Kammer
Christopher Baines  writes:

> From reading the documentation, I would expect this to work, as . is
> valid in symbols? But from trying this out, it does not seem to (the
> module cannot be loaded).
>
> Does anyone have information about this?

While "." is valid in symbols, using it alone as a symbol is difficult,
since it's part of s-expression syntax denoting pairs.

In Guile, the syntax #{foo}# can be used to force something to be parsed
as a symbol.  For instance, #{abcd}# and abcd are the same, but #{123}#
is a symbol whereas 123 is parsed as a number.  Similarly, #{.}# can be
used to denote the symbol that consists of the sole character ".".

  (define-module (foo #{.}# bar) ...)

  (use-modules (foo #{.}# bar) ...)

By the way, R7RS has standardized the syntax |foo| to denote symbols,
which Guile already supports in a branch, though I don't know when it
will make it into a release.  With that, the above examples would be

  (define-module (foo |.| bar) ...)

  (use-modules (foo |.| bar) ...)

which is somewhat cleaner.


There is no way to avoid using something like #{}# or || here, since in
the s-expression

  (define-module (foo . bar) ...)

the "(foo . bar)" part parses as a pair object whose car is foo and cdr
is bar.


Taylan



Re: Using . in module names

2016-06-03 Thread Marko Rauhamaa
taylanbayi...@gmail.com (Taylan Ulrich "Bayırlı/Kammer"):

> By the way, R7RS has standardized the syntax |foo| to denote symbols,

What is the R7RS notation for the symbol "|" (without the quotes)?


Marko



Re: Using . in module names

2016-06-03 Thread Taylan Ulrich Bayırlı/Kammer
Marko Rauhamaa  writes:

> taylanbayi...@gmail.com (Taylan Ulrich "Bayırlı/Kammer"):
>
>> By the way, R7RS has standardized the syntax |foo| to denote symbols,
>
> What is the R7RS notation for the symbol "|" (without the quotes)?
>
> Marko

|\||

Akin to the string "\"".

Taylan



Re: How do you earn money with Guile?

2016-06-03 Thread Nala Ginrut
It's an interesting topic. Although I planed to share something when I earn
more money, now that someone raised it... :-)

Here I give you two real cases.

The first one is that we use Guile to send command from UART to control a
small robot. We made it in a sponsored hackathon. And earned the highest
award in couple of hours, about $1500 (10,000 Chinese yuan). People never
saw such a project, as the journalist wrote: "they ask the robot to write
just 3 Chinese characters and get 10,000 yuan."
It's an interesting story, I will write it in my blog. I wrote the
prototype in Guile, but the hackathon day I have to go to church, and my
friends encoutered problems, then someone have to rewrite it in Forth, or
we may lost the chance in time. But the name of the project is
lambda-tortoise, since it's in Scheme originally. Of course it's free
project, and yes I wrote a thing to let Guile control serial port. But I
haven't gotten time to release it.
Here is the media report:
http://m.leiphone.com/news/201510/Hk7mizNbynrIInam.html

The second case is that I wrote a complete video multicasting system for a
primary school. It's a serious business project, I spent lot of time to
debug and deploy. The priciple is not complicated, there's server-side
written in GNU Artanis (of course it's pure Guile Scheme) provided RESTful
APIs, and more than 50 raspberryPI as client nodes (running some scripts to
interact with the server), each node control a TV set. The operator could
control nodes in groups, or monitor heartbeat, and even give command to it
(shutdown or replay certain video).
The old solution is very expensive for the school, and can not be scalable.
I use Artanis for quick develop, and raspberryPI is cheap. So I helped them
to solve the scalability problem, now if they want to add new node, just
buy a raspberryPI, and flash a card with a customized system, connect to
network, plug to the TV set, and just power it, it'll be recognized by
server and push the latest video list. Very easy for them.
Besides, my server is faster then their old solution which runs on Windows
with dot net. They surprised that how my server can be so fast to upload 1G
video in few seconds. And I surprised too, how can they endure such
performance these years, 200M video they have to wait 10 minutes.
For such a result all beyond their expectation. I get well paid, consider I
just spent two days for programming(more time spent on debug and deploy), I
think it's efficient to develop with Guile.

Well, I can't reveal how much money for this project. But it's far more
than the number of the award I mentioned in the first case.
And unfortunately, they bought all the code, so I can't free it to you. I
really want to persuade them to free it to make this project as a perfect
case of free software. But it's high customized system to meet their
specific need. They don't want to reveal it for many reasons.

Anyway, Artanis become stronger after this real business project. I think
it's the most important.

And I have to say frankly, I can earn the money is not because I use Guile,
but because I know how to solve the problem. Although the ability of
solving problem is unrelated to the language, it's good for you to choose a
good language for better develop experiences. Guile is a practical one in
Scheme world. To my experience, Scheme is flexible enough when your code
base increase, that is to say, you don't have to refactor frequently to
meet your new needs, all the old part are easy to intergrate with your new
code. For an Object-Oriented user, this may not surprise, but what if you
drop your heavy object system and do the job in a light way?

I think I'm the only one who refuse OO (yes, extreamly intended) in Scheme
programming. I just want to see, to what extent, we may drop OO for same
purpose in Scheme. OK, I confess I'm cheating, since I use the inheritance
in record-type in r6rs. But it's the only cheating. :-)

Arne Babenhauserheide 于2016年6月3日周五 17:47写道:

> Hi,
>
> > “I would take Guile seriously when someone earned money with it.”
> > — someone from IRC
>
> When I saw this on IRC, I realized that the there’s something to it:
> When a professional sees something new and is unsure whether it can be
> useful to business, it’s sensible to first check whether someone else
> already earns money with it. That doesn’t work for the first person, but
> it works for all others.
>
>
> So I want to ask you: Do you earn part of your income by programming
> with Guile?
>
>
> I’ll go first: I used Guile for a few tasks for my PhD thesis (which I
> got paid for).
>
> The first main task was to assemble commandlines for my plotting tool
> where my previous shell scripts became a maintenance nightmare. All in
> all that’s about 300 lines of Guile Scheme. I’ll be using Guile for this
> again in the following months.
>
> The second main task was to build an Ensemble Kalman Filter to get a
> deeper understanding of the method. That’s about 266 lines of Guile wisp
> a

Re: How do you earn money with Guile?

2016-06-03 Thread Christopher M. Hobbs
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA256

On Fri, 03 Jun 2016 11:32:24 +0200
Arne Babenhauserheide  wrote:

> Hi,
> 
> > “I would take Guile seriously when someone earned money with it.”
> > — someone from IRC
> 
> When I saw this on IRC, I realized that the there’s something to it:
> When a professional sees something new and is unsure whether it can be
> useful to business, it’s sensible to first check whether someone else
> already earns money with it. That doesn’t work for the first person,
> but it works for all others.
> 
> 
> So I want to ask you: Do you earn part of your income by programming
> with Guile?
> 
> 
> I’ll go first: I used Guile for a few tasks for my PhD thesis (which I
> got paid for).
> 
> The first main task was to assemble commandlines for my plotting tool
> where my previous shell scripts became a maintenance nightmare. All in
> all that’s about 300 lines of Guile Scheme. I’ll be using Guile for
> this again in the following months.
> 
> The second main task was to build an Ensemble Kalman Filter to get a
> deeper understanding of the method. That’s about 266 lines of Guile
> wisp and available online:
> https://bitbucket.org/ArneBab/wisp/src/v0.9.0/examples/ensemble-estimation.w
> 
> 
> I’d be glad to hear how you earn money with Guile!
> 
> 
> Best wishes,
> Arne Babenhauserheide
> 
> PS: Earning money with Free Software is awesome!
> 

In today's development ecosystem, I fear a language won't gain any
popular traction (and thereby cause profit to be gained) until you can
build a blog or some other inane web application in it... preferably in
under 5 minutes.  It doesn't matter how well the language does anything
else.

At the risk of derailing the thread, I think a better approach would be
to show things that guile can do.  This seems to help the popularity of
languages.

And to contribute:  I wrote a couple of bits of guile at work for
monitoring some system processes, which I was paid for.  I've also used
it in a side project related to mail processing that may someday
generate income but that's still a long way off.

cmh

- -- 
Happy Hacking!

http://libernil.net/~cmhobbs
GPG:  1200 0808 F968 47AB F489  91A3 FE26 6FFB 1A77 0868

-BEGIN PGP SIGNATURE-
Version: GnuPG v2

iQIcBAEBCAAGBQJXUcUPAAoJEP4mb/sadwhosXQQAMpVQNDi1VA3gdc10vldWOdr
IjErmy3DRnOx8sfpBtnDpL48+KnQppTGBZOldIlf0Mb9mLkWl054JMzxVIJ0r+bU
GU8xK7vpk6wBuYnYD9s8653Nd1QuBaL4RO1RsqpZ5TAAvr31NqmOIt8LPDJ/ILlH
/azHaZx/zaLICNKGlyuNalXhZITb7vlILfttOAMR4WGB1eHyT8OjlK4U4PZtPO67
FbwKYq0HWmCoXS9e5477kjKmbuI2gu3+OlDZhNP8rRxfch11iaXe09ORe8LDTVRw
Azf1YP3KxzlDLFLx57V15AdYhzVR6Ea3PojfPJPlRz0MJOkh8EMg4tQEHCwxPdau
7n6Q9U2n96yAhO4GPsiNJiN1/BxXZt6Sp3MpQbMG86MIOmv/oo/VgjtE+dXz69aM
6a/swSE/FuAOTpEEh2uKC8pQj8iJa0YnXNE2L4EOFS10QVmf4kiuaPNjkVHiNsV9
NMdryFpDafWt+0MFEJSamaIML6UFF3KTr/ySi/XzMY1ljk/fTeKy/evSkoSTmcif
x0ujcnNu7U87ws+tEs7o1W5vTTtCJuA12gxe1ItQSDvLv9coOVXtVNOnBqMkQvR3
0Aj5Ir2Q7Gv49WqfJsU6O1vHUJwQdpJkHbhqWWp/TX/dTo9t0c2DA6gu80RoZwwH
rif3i7FtsZ/SBbITmM51
=jDI7
-END PGP SIGNATURE-


Re: How do you earn money with Guile?

2016-06-03 Thread Tristan Colgate
If you are adaptable, interested, and productive, you can earn money.
Frankly, if you learn a language because of its industry position on any
given day, you're going to have a very narrow view of your craft.

To play the game a bit, I earned money writing guile, or rather, I wrote
guile to earn money. I wrote guile-snmp to manage several large networks.
guile-snmp was developed to run parts of the NHS.net network (I re-wrote
several tools back to perl net-snmp for the benefit of colleagues, but
tools were developed with guile-snmp first, far more quickly, and concisely
that I could have achieved otherwise). I used and extended it for a 5 or 6
years and it became by far the best SNMP reporting tool I've ever used
(yes, I'm biased). I'm no longer in the network management business, and
SNMP has (unjustly) fallen out of favour, so sadly I don't really do much
with it any more.

  More importantly, I learnt an enormous amount about functional
programming, learned to really lovee lisp (and scheme, and guile). That
knowledge definitely made me a better programmer. It made me really "get"
various aspects javascript development that I'd have struggled with
otherwise. Got me interested in SML and haskell (the alternatives to the
cult of lambda).

  So my time with guile has, indirectly,  gotten me plenty of jobs, even if
the people that hired me didn't know it.



On Fri, 3 Jun 2016 at 18:58 Christopher M. Hobbs 
wrote:

> -BEGIN PGP SIGNED MESSAGE-
> Hash: SHA256
>
> On Fri, 03 Jun 2016 11:32:24 +0200
> Arne Babenhauserheide  wrote:
>
> > Hi,
> >
> > > “I would take Guile seriously when someone earned money with it.”
> > > — someone from IRC
> >
> > When I saw this on IRC, I realized that the there’s something to it:
> > When a professional sees something new and is unsure whether it can be
> > useful to business, it’s sensible to first check whether someone else
> > already earns money with it. That doesn’t work for the first person,
> > but it works for all others.
> >
> >
> > So I want to ask you: Do you earn part of your income by programming
> > with Guile?
> >
> >
> > I’ll go first: I used Guile for a few tasks for my PhD thesis (which I
> > got paid for).
> >
> > The first main task was to assemble commandlines for my plotting tool
> > where my previous shell scripts became a maintenance nightmare. All in
> > all that’s about 300 lines of Guile Scheme. I’ll be using Guile for
> > this again in the following months.
> >
> > The second main task was to build an Ensemble Kalman Filter to get a
> > deeper understanding of the method. That’s about 266 lines of Guile
> > wisp and available online:
> >
> https://bitbucket.org/ArneBab/wisp/src/v0.9.0/examples/ensemble-estimation.w
> >
> >
> > I’d be glad to hear how you earn money with Guile!
> >
> >
> > Best wishes,
> > Arne Babenhauserheide
> >
> > PS: Earning money with Free Software is awesome!
> >
>
> In today's development ecosystem, I fear a language won't gain any
> popular traction (and thereby cause profit to be gained) until you can
> build a blog or some other inane web application in it... preferably in
> under 5 minutes.  It doesn't matter how well the language does anything
> else.
>
> At the risk of derailing the thread, I think a better approach would be
> to show things that guile can do.  This seems to help the popularity of
> languages.
>
> And to contribute:  I wrote a couple of bits of guile at work for
> monitoring some system processes, which I was paid for.  I've also used
> it in a side project related to mail processing that may someday
> generate income but that's still a long way off.
>
> cmh
>
> - --
> Happy Hacking!
>
> http://libernil.net/~cmhobbs
> GPG:  1200 0808 F968 47AB F489  91A3 FE26 6FFB 1A77 0868
>
> -BEGIN PGP SIGNATURE-
> Version: GnuPG v2
>
> iQIcBAEBCAAGBQJXUcUPAAoJEP4mb/sadwhosXQQAMpVQNDi1VA3gdc10vldWOdr
> IjErmy3DRnOx8sfpBtnDpL48+KnQppTGBZOldIlf0Mb9mLkWl054JMzxVIJ0r+bU
> GU8xK7vpk6wBuYnYD9s8653Nd1QuBaL4RO1RsqpZ5TAAvr31NqmOIt8LPDJ/ILlH
> /azHaZx/zaLICNKGlyuNalXhZITb7vlILfttOAMR4WGB1eHyT8OjlK4U4PZtPO67
> FbwKYq0HWmCoXS9e5477kjKmbuI2gu3+OlDZhNP8rRxfch11iaXe09ORe8LDTVRw
> Azf1YP3KxzlDLFLx57V15AdYhzVR6Ea3PojfPJPlRz0MJOkh8EMg4tQEHCwxPdau
> 7n6Q9U2n96yAhO4GPsiNJiN1/BxXZt6Sp3MpQbMG86MIOmv/oo/VgjtE+dXz69aM
> 6a/swSE/FuAOTpEEh2uKC8pQj8iJa0YnXNE2L4EOFS10QVmf4kiuaPNjkVHiNsV9
> NMdryFpDafWt+0MFEJSamaIML6UFF3KTr/ySi/XzMY1ljk/fTeKy/evSkoSTmcif
> x0ujcnNu7U87ws+tEs7o1W5vTTtCJuA12gxe1ItQSDvLv9coOVXtVNOnBqMkQvR3
> 0Aj5Ir2Q7Gv49WqfJsU6O1vHUJwQdpJkHbhqWWp/TX/dTo9t0c2DA6gu80RoZwwH
> rif3i7FtsZ/SBbITmM51
> =jDI7
> -END PGP SIGNATURE-
>