comp.lang.ada
 help / color / mirror / Atom feed
* Make with Ada 2019 : DogRobot
@ 2019-02-16  1:02 Rego, P.
  2019-02-16  6:04 ` Anh Vo
  2019-02-16 16:51 ` Jesper Quorning
  0 siblings, 2 replies; 16+ messages in thread
From: Rego, P. @ 2019-02-16  1:02 UTC (permalink / raw)


Hello guys,

I just published my project for the Make with Ada this year, named DogRobot : A Home C4ISR System. Basically it's a dual application from Windows/Raspberry Pi communicating from sockets using a fixed protocol. 

Please take a look if you are interested. And feel free to suggest improvements, make critics, etc. The last 2 weeks when I decided to make it have been very exhaustive but I think it looked good enough for a fast project.

Well, the project is somewhat detailed in the link: 
https://www.hackster.io/pvrego/dogrobot-a-home-c4isr-system-027d6f

The code can be accessed from github
https://github.com/pvrego/dogrobot

And... that's all folks.
Cheers
Pablo.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Make with Ada 2019 : DogRobot
  2019-02-16  1:02 Make with Ada 2019 : DogRobot Rego, P.
@ 2019-02-16  6:04 ` Anh Vo
  2019-02-16  9:26   ` Rego, P.
  2019-03-26 13:05   ` Rego, P.
  2019-02-16 16:51 ` Jesper Quorning
  1 sibling, 2 replies; 16+ messages in thread
From: Anh Vo @ 2019-02-16  6:04 UTC (permalink / raw)


On Friday, February 15, 2019 at 5:02:47 PM UTC-8, Rego, P. wrote:
> Hello guys,
> 
> I just published my project for the Make with Ada this year, named DogRobot : A Home C4ISR System. Basically it's a dual application from Windows/Raspberry Pi communicating from sockets using a fixed protocol. 
> 
> Please take a look if you are interested. And feel free to suggest improvements, make critics, etc. The last 2 weeks when I decided to make it have been very exhaustive but I think it looked good enough for a fast project.
> 
> Well, the project is somewhat detailed in the link: 
> https://www.hackster.io/pvrego/dogrobot-a-home-c4isr-system-027d6f
> 
> The code can be accessed from github
> https://github.com/pvrego/dogrobot
> 
> And... that's all folks.
> Cheers
> Pablo.

Just taking a quick look at your project documentation, it is a tremendous work completed just in two weeks. Therefore, this project is worth to study in details. Congratulations and thank you for sharing it.

Anh Vo 

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Make with Ada 2019 : DogRobot
  2019-02-16  6:04 ` Anh Vo
@ 2019-02-16  9:26   ` Rego, P.
  2019-03-26 13:05   ` Rego, P.
  1 sibling, 0 replies; 16+ messages in thread
From: Rego, P. @ 2019-02-16  9:26 UTC (permalink / raw)


> Just taking a quick look at your project documentation, it is a tremendous work completed just in two weeks. Therefore, this project is worth to study in details. Congratulations and thank you for sharing it.

Thank you. I really appreciate your comment.

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Make with Ada 2019 : DogRobot
  2019-02-16  1:02 Make with Ada 2019 : DogRobot Rego, P.
  2019-02-16  6:04 ` Anh Vo
@ 2019-02-16 16:51 ` Jesper Quorning
  2019-02-16 17:42   ` Simon Wright
  2019-02-17 22:17   ` Rego, P.
  1 sibling, 2 replies; 16+ messages in thread
From: Jesper Quorning @ 2019-02-16 16:51 UTC (permalink / raw)


Hi Rego

On Saturday, February 16, 2019 at 2:02:47 AM UTC+1, Rego, P. wrote:

> I just published my project for the Make with Ada this year, named DogRobot : A Home C4ISR System. Basically it's a dual application from Windows/Raspberry Pi communicating from sockets using a fixed protocol. 

You are a hero participation in the competiton. I have givven you a star marking on GitHub.

> Please take a look if you are interested. And feel free to suggest improvements, make critics, etc. The last 2 weeks when I decided to make it have been very exhaustive but I think it looked good enough for a fast project.

My suggestions are pure project organisational:

Use GPR and split the sources into four source files:
source-lib    - library project for core etc.
source         - project for the application
source-test - project for the test application
source-util  - library project - reusabel components

Four GPR project files using the four source directories:
dogbot_lib.gpr
dogbot.gpr
dogbot_test.gpr
dogbot_util.gpr

Add simple makefiles in the source directories which uses the main make file in the root
In the gpr projects. Add -gnaty to Default_Switch to use AdaCore coding style for better coorporation with others.

gprbuild has the -p option which creates bin/lib/obj directories automatically so you can remove them from your project.

You may have a look at GPR projects and GPR library projects at:

https://github.com/jquorning/DK8543
https://github.com/jquorning/GAWS


Best of luck with the competition.


        Jesper.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Make with Ada 2019 : DogRobot
  2019-02-16 16:51 ` Jesper Quorning
@ 2019-02-16 17:42   ` Simon Wright
  2019-02-17  5:50     ` Jesper Quorning
  2019-02-17 22:23     ` Rego, P.
  2019-02-17 22:17   ` Rego, P.
  1 sibling, 2 replies; 16+ messages in thread
From: Simon Wright @ 2019-02-16 17:42 UTC (permalink / raw)


Jesper Quorning <jquorning@hotmail.com> writes:

> gprbuild has the -p option which creates bin/lib/obj directories
> automatically so you can remove them from your project.

And current gprbuild has

   for Create_Missing_Dirs use "true";

which saves you even needing -p!


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Make with Ada 2019 : DogRobot
  2019-02-16 17:42   ` Simon Wright
@ 2019-02-17  5:50     ` Jesper Quorning
  2019-02-17 22:23     ` Rego, P.
  1 sibling, 0 replies; 16+ messages in thread
From: Jesper Quorning @ 2019-02-17  5:50 UTC (permalink / raw)


On Saturday, February 16, 2019 at 6:42:36 PM UTC+1, Simon Wright wrote:

> And current gprbuild has
> 
>    for Create_Missing_Dirs use "true";
> 
> which saves you even needing -p!

Thanks


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Make with Ada 2019 : DogRobot
  2019-02-16 16:51 ` Jesper Quorning
  2019-02-16 17:42   ` Simon Wright
@ 2019-02-17 22:17   ` Rego, P.
  2019-02-19  4:16     ` Jesper Quorning
  1 sibling, 1 reply; 16+ messages in thread
From: Rego, P. @ 2019-02-17 22:17 UTC (permalink / raw)


> You are a hero participation in the competiton. I have givven you a star marking on GitHub.

Thank you very much!! 

> My suggestions are pure project organisational:
> 
> Use GPR and split the sources into four source files:
> source-lib    - library project for core etc.
> source         - project for the application
> source-test - project for the test application
> source-util  - library project - reusabel components

Good you talk in this point, I've seen a quite number of styles for source directories, but for my home projects I've been using the suggestions from GPS. But do you know if there is some consensus regarding this? 

But also like your typing (source instead of src), in a more complex project I would probably use something like that, eg, linking the project root with svn:externals or git:externals property to include some folders for source-lib or source-util.

> Four GPR project files using the four source directories:
> dogbot_lib.gpr
> dogbot.gpr
> dogbot_test.gpr
> dogbot_util.gpr

In this case, to segregate those folders with different projects I don't see many advantages, unless the projects are extended.

> Add simple makefiles in the source directories which uses the main make file in the root

Exchange the .sh builder in the root is also a good suggestion, but as gprbuild resolves all the dependencies in the build, why do you other makefiles from the other subfolders?

> In the gpr projects. Add -gnaty to Default_Switch to use AdaCore coding style for better coorporation with others.

In this project I totally forgot to include style checks. I use to check all style checks from GPS, I actually didn't know pure -gnaty would enforce all of them.

> gprbuild has the -p option which creates bin/lib/obj directories automatically so you can remove them from your project.

I will definitely include it.

> You may have a look at GPR projects and GPR library projects at:
> 
> https://github.com/jquorning/DK8543
> https://github.com/jquorning/GAWS

I will look for sure (doing already =)

> Best of luck with the competition.

Thank you!

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Make with Ada 2019 : DogRobot
  2019-02-16 17:42   ` Simon Wright
  2019-02-17  5:50     ` Jesper Quorning
@ 2019-02-17 22:23     ` Rego, P.
  2019-02-18  0:44       ` Jere
  1 sibling, 1 reply; 16+ messages in thread
From: Rego, P. @ 2019-02-17 22:23 UTC (permalink / raw)


> And current gprbuild has
> 
>    for Create_Missing_Dirs use "true";

It's quite convenient, but the current GNAT from Raspbian apt-get still does not support.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Make with Ada 2019 : DogRobot
  2019-02-17 22:23     ` Rego, P.
@ 2019-02-18  0:44       ` Jere
  0 siblings, 0 replies; 16+ messages in thread
From: Jere @ 2019-02-18  0:44 UTC (permalink / raw)


On Sunday, February 17, 2019 at 5:23:21 PM UTC-5, Rego, P. wrote:
> > And current gprbuild has
> > 
> >    for Create_Missing_Dirs use "true";
> 
> It's quite convenient, but the current GNAT from Raspbian apt-get still does not support.

Another option I use is to create the directories in my git repo and place a 
.gitignore file in them that essentially says "ignore everything else in
this directory but me".  This forces git to save the directories and keeps it
from trying to add my build files and binaries to my repo.  The file has the
contents:

*
*/
!.gitignore

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Make with Ada 2019 : DogRobot
  2019-02-17 22:17   ` Rego, P.
@ 2019-02-19  4:16     ` Jesper Quorning
  2019-02-20 15:27       ` Rego, P.
  0 siblings, 1 reply; 16+ messages in thread
From: Jesper Quorning @ 2019-02-19  4:16 UTC (permalink / raw)


On Sunday, February 17, 2019 at 11:17:24 PM UTC+1, Rego, P. wrote:

> But also like your typing (source instead of src), in a more complex project I would probably use something like that, eg, linking the project root with svn:externals or git:externals property to include some folders for source-lib or source-util.

I beleive src is something from the past. Today with command completion and a lot of disc space source is better. I know til is not compliant with some styles.

> In this case, to segregate those folders with different projects I don't see many advantages, unless the projects are extended.

Maybe someone like to extend your project later on. Or reuse parts of it (core library or utility)

> > Add simple makefiles in the source directories which uses the main make file in the root
> 
> Exchange the .sh builder in the root is also a good suggestion, but as gprbuild resolves all the dependencies in the build, why do you other makefiles from the other subfolders?

I use emacs and makefiles makes it easy for me to just M-x compile and then make / make build / make clean / make setup. Maybe there is a better way with gprbuild. I make the makefiles as simple as possible. I am not able to read complex makefiles anyway (as most others I believe)


        Jesper.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Make with Ada 2019 : DogRobot
  2019-02-19  4:16     ` Jesper Quorning
@ 2019-02-20 15:27       ` Rego, P.
  0 siblings, 0 replies; 16+ messages in thread
From: Rego, P. @ 2019-02-20 15:27 UTC (permalink / raw)


> I beleive src is something from the past. Today with command completion and a lot of disc space source is better. I know til is not compliant with some styles.

Maybe one day it will be something from the past, not now. Now even GNAT 2018 suggests this, so it seems pure personal taste. 

> Maybe someone like to extend your project later on. Or reuse parts of it (core library or utility)

Still, I will probably publish a couple of separate libraries to do this for the reusable part. But I like to keep the root folder as clean as possible, so having a separate utils.gpr to only compile utils.ads doesn't look good at least on this project. But I like the idea to segregate the libs, though not keeping the each .gpr in root folder (because svn:externals doesn't support merging folders, don't know if git:externals does).

> I use emacs and makefiles makes it easy for me to just M-x compile and then make / make build / make clean / make setup. Maybe there is a better way with gprbuild. I make the makefiles as simple as possible. I am not able to read complex makefiles anyway (as most others I believe)

Now I get your point. It's been a couple of years I don't have to use emacs to code. 


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Make with Ada 2019 : DogRobot
  2019-02-16  6:04 ` Anh Vo
  2019-02-16  9:26   ` Rego, P.
@ 2019-03-26 13:05   ` Rego, P.
  2019-03-26 17:16     ` Niklas Holsti
                       ` (2 more replies)
  1 sibling, 3 replies; 16+ messages in thread
From: Rego, P. @ 2019-03-26 13:05 UTC (permalink / raw)


> Just taking a quick look at your project documentation, it is a tremendous work completed just in two weeks. Therefore, this project is worth to study in details. Congratulations and thank you for sharing it.
> 
> Anh Vo

Now that the winners are chosen (3 weeks late from original date), the first place is a 40 LINES OF CODE project. 1/3 of the project description is totally unrelevant (explaining how light is used in Photography, Astronomy and Architecture), and another big part explaining unrelated facts to the project (how a LDR works??). No sw design, no system architecture??? I don't question the validity of this project, regarding the fact that it is ALMOST NOTHING OF Ada for a "Make with Ada" contest, it is ok in general DIY space. Is the intention of this contest to transform the use of Ada into a junk of "don't know how to make with Ada" like other languages are used in some newborn makerspaces.

The 3rd winner was implemented mostly in Python according to the project description, and the Ada code is not available (actually no code whatsoever). The 2nd place seems fare. 

Also my own project probably was not good enough to win the contest, no problem at all with this, but please, judges are nuts this year. Mine had a complete architecture and 900 LOC among several artifacts, and I wouldn't think it would win. Not talking about the 3 weeks of delay without any satisfation to the participants, which is unaceptable.

I am very sorry for this outburst, but I couldn't not keep it quiet. I was naive thinking this contest was serious.  It could be a good opportunity to share the other communities that making software with Ada is to make different and better software. So I am very ashamed of having participated this edition. It was really a waste of time and (very much) personal effort.

Pablo.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Make with Ada 2019 : DogRobot
  2019-03-26 13:05   ` Rego, P.
@ 2019-03-26 17:16     ` Niklas Holsti
  2019-03-27  0:45     ` Jerry Petrey
  2019-03-29 11:36     ` fabien.chouteau
  2 siblings, 0 replies; 16+ messages in thread
From: Niklas Holsti @ 2019-03-26 17:16 UTC (permalink / raw)


On 19-03-26 15:05 , Rego, P. wrote:

> Now that the winners are chosen (3 weeks late from original date),
> the first place is a 40 LINES OF CODE project. 1/3 of the project
> description is totally unrelevant (explaining how light is used in
> Photography, Astronomy and Architecture), and another big part
> explaining unrelated facts to the project (how a LDR works??).
> No swdesign, no system architecture???

As I understand the rules of the "Make with Ada" competition 
(https://www.hackster.io/contests/adacore/rules#requirements) they do 
not explicitly require a public document or description that is focussed 
on the SW and/or on the Ada language.

They require some properties and content of the _submission_. The 
project should be submitted through the "hackster.io" site. The IP 
conditions grant rights only to the Organizer and the Panelists, not to 
the general public.

The "openness" of the project is (only) one of the judging criteria.

However, I too am surprised that this project was given first prize with 
such a small amount of code.

> The 3rd winner was implemented mostly in Python according to the
> project description,

According to the description of that project, Python was used only to 
display the acquired data, transmitted from the microcontroller over a 
serial interface to a Raspberry Pi. The data acquisition and the neural 
network on the microcontroller were implemented in Ada. It seems to me 
that this is an acceptable level of Python contamination.

> and the Ada code is not available (actually no
> code whatsoever).

See above re openness and IP conditions. Moreover, it seems that the 
code is indeed now on gitlab 
(https://gitlab.com/Angelgzgc/neuralhearthmonitor/tree/master).

-- 
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
       .      @       .


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Make with Ada 2019 : DogRobot
  2019-03-26 13:05   ` Rego, P.
  2019-03-26 17:16     ` Niklas Holsti
@ 2019-03-27  0:45     ` Jerry Petrey
  2019-03-29 11:36     ` fabien.chouteau
  2 siblings, 0 replies; 16+ messages in thread
From: Jerry Petrey @ 2019-03-27  0:45 UTC (permalink / raw)


On 3/26/19 6:05, Rego, P. wrote:
>> Just taking a quick look at your project documentation, it is a tremendous work completed just in two weeks. Therefore, this project is worth to study in details. Congratulations and thank you for sharing it.
>>
>> Anh Vo
> 
> Now that the winners are chosen (3 weeks late from original date), the first place is a 40 LINES OF CODE project. 1/3 of the project description is totally unrelevant (explaining how light is used in Photography, Astronomy and Architecture), and another big part explaining unrelated facts to the project (how a LDR works??). No sw design, no system architecture??? I don't question the validity of this project, regarding the fact that it is ALMOST NOTHING OF Ada for a "Make with Ada" contest, it is ok in general DIY space. Is the intention of this contest to transform the use of Ada into a junk of "don't know how to make with Ada" like other languages are used in some newborn makerspaces.
> 
> The 3rd winner was implemented mostly in Python according to the project description, and the Ada code is not available (actually no code whatsoever). The 2nd place seems fare.
> 
> Also my own project probably was not good enough to win the contest, no problem at all with this, but please, judges are nuts this year. Mine had a complete architecture and 900 LOC among several artifacts, and I wouldn't think it would win. Not talking about the 3 weeks of delay without any satisfation to the participants, which is unaceptable.
> 
> I am very sorry for this outburst, but I couldn't not keep it quiet. I was naive thinking this contest was serious.  It could be a good opportunity to share the other communities that making software with Ada is to make different and better software. So I am very ashamed of having participated this edition. It was really a waste of time and (very much) personal effort.
> 
> Pablo.
> 


I have to agree with you on this. I don’t know what they are really 
trying to do with this contest but it does not seem to be showing off 
what you can do with Ada. As much as I love Ada, it has been slowing 
dying for many years and AdaCore can only hold on by constantly changing 
it and charging a fortune to a few customers who are locked into it. 
The only hope for it is to get hobbyists and students exposed to it 
early on and that has not been done – it is probably too late now. I 
participated in this contest because I thought it might help that 
effort. I have been developing support for GNAT ARM Ada for a number of 
years for my own use. I have support for more than two dozen ST boards 
and many sensors and other peripherals which I will continue to use for 
my own projects. I worked for a number of major aerospace companies 
using Ada before I retired a few years ago and all of them have either 
moved away from Ada or are trying to. None even wanted to move beyond 
Ada 83. I still love it but the handwriting is on the wall!

Jerry


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Make with Ada 2019 : DogRobot
  2019-03-26 13:05   ` Rego, P.
  2019-03-26 17:16     ` Niklas Holsti
  2019-03-27  0:45     ` Jerry Petrey
@ 2019-03-29 11:36     ` fabien.chouteau
  2019-03-29 17:35       ` Dennis Lee Bieber
  2 siblings, 1 reply; 16+ messages in thread
From: fabien.chouteau @ 2019-03-29 11:36 UTC (permalink / raw)


On Tuesday, March 26, 2019 at 2:05:19 PM UTC+1, Rego, P. wrote:
> I am very sorry for this outburst, but I couldn't not keep it quiet. I was naive thinking this contest was serious.  It could be a good opportunity to share the other communities that making software with Ada is to make different and better software. So I am very ashamed of having participated this edition. It was really a waste of time and (very much) personal effort.
> 

Hi Pablo,

I work for AdaCore and I am one of the organizer of the Make with Ada competition. We received similar feedback here and there, so I want to give you my point of view on the matter.

We understand that the results can seem unfair, in part because the winning project is not technically complex.

For the Make with Ada competitions we never had a criteria on the complexity of the problem addressed, the complexity of the solution, the number of lines of code or anything of that nature. The intent was to have the competition open to everyone, including beginners.
The result is that the focus is more on how well you explain your project than the complexity of the project itself.

This worked well for us in the first two editions, so we kept it that way for the third.

We are open to suggestions on how to fix this. We do have some ideas:

 - Introduce a complexity factor in the judging.

 - Remove this strict judging process and just have "AdaCore" pick the projects that are the most impressive/cool. But that means it is very difficult for contestants to know what will be valued in their project.
 
 - Have more winners by spreading the prizes. e.g. 8 winners at 1000 euros instead of 5000, 2000 and 1000.


Thanks for you feedback, and let us know if you have an idea to make the next Make with Ada even better.


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: Make with Ada 2019 : DogRobot
  2019-03-29 11:36     ` fabien.chouteau
@ 2019-03-29 17:35       ` Dennis Lee Bieber
  0 siblings, 0 replies; 16+ messages in thread
From: Dennis Lee Bieber @ 2019-03-29 17:35 UTC (permalink / raw)


On Fri, 29 Mar 2019 04:36:59 -0700 (PDT), fabien.chouteau@gmail.com
declaimed the following:


	<SNIP>

>
>For the Make with Ada competitions we never had a criteria on the complexity of the problem addressed, the complexity of the solution, the number of lines of code or anything of that nature. The intent was to have the competition open to everyone, including beginners.
>The result is that the focus is more on how well you explain your project than the complexity of the project itself.
>
>This worked well for us in the first two editions, so we kept it that way for the third.
>
>We are open to suggestions on how to fix this. We do have some ideas:
>
> - Introduce a complexity factor in the judging.
>
> - Remove this strict judging process and just have "AdaCore" pick the projects that are the most impressive/cool. But that means it is very difficult for contestants to know what will be valued in their project.
> 
> - Have more winners by spreading the prizes. e.g. 8 winners at 1000 euros instead of 5000, 2000 and 1000.
>

	I suspect it will come down to a mix... Separate categories for
beginner vs experienced, with points scored on both presentation and
implementation/complexity. So, top prizes will probably be reduced to allow
for multiple winners -- maybe drop third place and just have winner &
runner-up, along with one grand winner.

1000 for each winner [beginner/presentation, beginner/implementation,
experience...] (4000 total)
500 for each runner-up (2000 total)
2000 for grand winner (along with the 1000 for category win)


-- 
	Wulfraed                 Dennis Lee Bieber         AF6VN
	wlfraed@ix.netcom.com    HTTP://wlfraed.home.netcom.com/ 

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2019-03-29 17:35 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-02-16  1:02 Make with Ada 2019 : DogRobot Rego, P.
2019-02-16  6:04 ` Anh Vo
2019-02-16  9:26   ` Rego, P.
2019-03-26 13:05   ` Rego, P.
2019-03-26 17:16     ` Niklas Holsti
2019-03-27  0:45     ` Jerry Petrey
2019-03-29 11:36     ` fabien.chouteau
2019-03-29 17:35       ` Dennis Lee Bieber
2019-02-16 16:51 ` Jesper Quorning
2019-02-16 17:42   ` Simon Wright
2019-02-17  5:50     ` Jesper Quorning
2019-02-17 22:23     ` Rego, P.
2019-02-18  0:44       ` Jere
2019-02-17 22:17   ` Rego, P.
2019-02-19  4:16     ` Jesper Quorning
2019-02-20 15:27       ` Rego, P.

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox