o organized workflows
> Winner of BOSSIE, CODIE, OW2 and Gartner awards
> http://p.sf.net/sfu/Bonitasoft
> ___
> Gambas-user mailing list
> Gambas-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/li
Hi folks.
I'm trying to implement a "decoration chain", but until now I can't get
success.
Let me explain the problem in detail.
I have a class C, that is decorated by the class B, that is decorated by
the class A. So, from the point of view of the client class, the class A
must respond to messa
--
> Time is money. Stop wasting it! Get your web API in 5 minutes.
> www.restlet.com/download
> http://p.sf.net/sfu/restlet
> ___
> Gambas-user mailing list
> Gambas-user@lists.sourceforge.net
> https://lists.sour
Thanks Benoit, you are the Messi of BASIC based languages ;-)
and thank you VonZorch, I knew that workaround, but you reminder help me to
re-think my code.
2014-05-30 15:40 GMT-03:00 Benoît Minisini :
> Le 30/05/2014 00:34, Fabián Flores Vadell a écrit :
> > Hi folks.
> >
Hi folks.
Just that, regardless which inspection tool you use items of Param array
aren't showed.
This seems a bug to me or maybe I missing something.
I attach a project.
SFME.
Test_Param.7z
Description: application/7z-compressed
--
isini
>
I can translate it from English to Spanish to spread it through some
magazines and blogs.
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com
--
Everyone hates slow
ually, my questions are enough clear.
Regards.
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com
--
Everyone hates slow websites. So do we.
Make your web apps faster with Ap
ually, my questions are enough clear.
Regards.
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com
--
Everyone hates slow websites. So do we.
Make your web apps faster with Ap
2012/9/5 Bruce
>
> Fabián,
>
> Thanks for taking the time to look at this. It took us all of today to
> recast the persistor class but it was well worth it as not only did we
> get rid of the specialised persistors but strangely it simplified some
> other aspects.
>
> You're welcome.
> Please
Hi Bruce.
> The roadblock I have now struck is this. Each BO class requires a
> special "partner class" that contains the metadata as a static
> attribute. Each of these classes now looks exactly the same, same data
> items, same code. The only difference is the class name. Thus, 38
> different
.
>
I catch it now.(I think). You want something like Friendly in C++. Right?
I dont like Friendly, in order to avoid the temptation of break the
encapsulation. But that would be a good feature to add for the reflexive
skills of Gambas.
--
Fabián Flores Vadell
www.comoprogramarcongamb
need for do that only when you are writing an object library
or a generic component, that will be used for unknown programmers (clients).
> But hope this helps.
Thanks, Bruce. In my case this don't help bec
2012/2/11 Benoît Minisini
> Le 11/02/2012 00:33, Fabián Flores Vadell a écrit :
> >
> > That problem could be described as "How to add methods from a helper
> object
> > without have to rewrite a wrapper for each method (with just a call
> within)
> > in t
to support selective multiple inheritance (Frankenstein and all
his family).
I agree with you about that would be great that the interpreter provide us
a feature that would allow us to do this selectively, but by delegation.
Regards.
--
>
Fabián Flores Vadell
www.comopr
described as "How to add methods from a helper object
without have to rewrite a wrapper for each method (with just a call within)
in the host class?".
--
Fabián Flores Vadell
www.comoprogramarcongambas
n2, Person3]])
.Call(.Add, [Person4])
End With
Person5 = New Person("Jhon", "Doe")
Person6 = New Person("Jane", "Doe")
Person7 = New Person("Nobody", &q
2012/2/10 Fabián Flores Vadell
> 2012/2/10 Emil Lenngren
>
>> Did the Object solution not solve your problem? It should work in all
>> cases
>> when the name of the function/property is the same at all calls/property
>> readings.
>>
>
> II want to w
2012/2/10 Emil Lenngren
> Did the Object solution not solve your problem? It should work in all cases
> when the name of the function/property is the same at all calls/property
> readings.
>
II want to write just one method that allow me to call whatever method I
could need from one collaborator
2012/2/10 Jussi Lahtinen
> You can check whether it is property or method.
>
> Dim hCls As Class = Object.Class(["John", "Peter"])
>
> If hCls["Count"].Kind = Class.Method Then
>
Yes, I figured out. Thanks Jussi
--
Virtu
to me like the encapsulation is broken because I need to be
conscious of the implementation (property or method) in order to pass the
message that I want.
That could not be a great problem in the daily programming, but to
programming in a reflexive way it seems to me inflexible
that I need to expose).
In this case, I need to expose some methods from an array in my class, but
I don't want to write the wrapper signatures, e.g.:
Public Sub Add(somethig As type)
myArray.Add(something)
End
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargent
Hi.
When I execute this:
Print Object.Call(["John", "Peter"], "Count")
I get an error like this:
"Count Symbol unknown in the String []"
Thanks in advance.
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.
her ones in extern function
> management and stream management), Gambas makes no difference between a
> structure object and a normal object.
>
Is the intention to provide a feature similar to inner classes of java?
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
Hi.
Exists any spec for the structure of directories and files (and its
meaning) of a Gambas project?
What I want is to know all conditions that the compiler and interpreter
expect, in order to call them from the command line.
I need to know too any information about config files or data from th
> Then the Gambas part of gb.desktop needs to implement some freedesktop
> protocols, especially the *.desktop file format that allows to make a
> startup menu.
> As for features, I want to start with the simplest possible at the
> beginning:
> - A panel with task buttons, virtual desktop buttons
I'd like to enhance gb.desktop so that it is usable enough to
implement a simple GUI shell/desktop (for those who have time and find
Gnome 3 or KDE 4 too heavy). The interesting thing is that this simple
desktop will be able to use GTK+ or Qt4 indifferently, depending on the
user taste. Someone in
lease="Ubuntu 11.04"
Desktop=KDE4
[Gambas 3]
Version=2.99.6
Path=/usr/local/bin/gbx3
[Libraries]
Qt4=libQtCore.so.4.7.2
GTK+=libgtk-x11-2.0.so.0.2400.4
Regards.
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com
Observ
2011/9/10 Jussi Lahtinen
>
> What is the alternative then? Pass variables as pointers?
> Making almost needless class for couple variables doesn't seem good
> option...
>
> Jussi
>
Pass variables as pointer, will work (I think). But, ¿is necessary?
Could you just use functions to return values?
2011/9/9 Fabien Bodard
> yes like :
>
> Private Function ModifyThat(byRef i as integer) as boolean
>
> i+=6*4
>
> catch
> return true
>
> end
>
>
>
> to use it
>
> if not Modifythat(ByRef iMyVal) Then Print iMyVal
>
>
> sometime it can be usefull to catch the error in the calling function
>
I
n (i.e.
using a function, speaking in conceptual terms).
So, if you are porting VB code, maybe you'll probably have to use ByRef,
sometimes. Otherwise isn't recommended byref (according to Gambas idiom).
PD: sorry for my (probably unnecessary) verbosity and my poor english.
--
Fabi
Gambas 3 RC2 rev: 4009
In the watch tab, click on the remove button when there's nothing
selected, cause that the Gambas IDE closes suddenly. (try enough if
crash not happen immediately).
Can someone check it?
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspo
gt; super-class, ¿right?
>
> No, because a method is only identified by its name, not by its signature.
>
I'm tired and I have flu, maybe that make me feel so confusing about that.
So, I can't have a method in the subclass with the same name but
different signature or return value
erent in the sub-class, then the method on the
sub-class is a new one, not the redefinition of the method on the
super-class, ¿right?
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com
--
elCase) to allow users can select one
programming style or build one on your own. (That should be like the
styles in a word processor).
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com
s status... then the viewer deal with these info to
> display it.
>
> you need a client/server concept as the view can be really different
> and the libs not compatibles. For that you can use gb.dbus, or simply
> a socket..
Thanks Fabien. Now I figured how to do that I want, just pol
rs[p - 1, i] = CFloat(Trim(rgb))
>
> You cannot decide the localization of the system where a program runs!
>
Of course, you are right. I just took the first idea came to my mind,
so that I could execute the example.
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.s
;))
because decimal sign in my system is ","
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com
--
Got Input? Slashdot Needs You.
Take our quick survey onl
2011/7/29 Andrea Bertini :
> Actually g3 does not support all the mime types' formats.
>
> text/plain ..yes
> text/html...yes
>
> i need info about these files:
> .zip
> office files
> libre office files
>
> thx
I think than you needs to use the
the attached project.
Someone could check it?
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com
TestFormInheritsFromAnotherForm.tar.gz
Description: GNU Zip compressed data
---
part that I'm not figured how to do)
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com
--
All of the data generated in your IT infrastructure is seriously valuable.
misprint:
2011/6/29 Fabián Flores Vadell :
'Dim aux As ClassA = Object.Class(GameBoard).AutoCreate()
'Dim aux As ClassA = Object.Class(GameBoard).instance
(aux is NULL too, obviously)
> $obsClassA = New Observer(Object.Class(ClassA).instance) As "obsClassA"
>
27;t contain call to methods on FormB. (And there's no way to
FormB knows when should call to a method in ClassA to do what I want)
So, what could I do?
What's wrong in my code?
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com
--
t; This is pretty deceptive!
> Can this be re-implement as syntactic sugar (compiler would turn IIf to
> normal If/Else/Then structure)?
>
> Jussi
+1
If TrueExpression or/and FalseExpression are calls to methods, leads
to a logical error because bot
rotated is difficult to read and reduces seriously the
vertical space.
Would be possible have a property or method in the .Tab class to
manage the text orientation?
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.bl
Hi. I believe than not, but I won't leave place to doubts. The users
classes have some default ancestor? (I mean, like the class "object"
in Python).
Thanks.
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargenti
e conceptually more accurate could be "Delegate"
'Syntax
Delegate(ToClass, FromClass, { allExcept | noneExcept } , [properties]
[events] [methods] )
Good or crazy idea?
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com
-
spanish "o" is or, but it is inclusive) that can be called just one
time, when it is really necessary.
What about to do "Make code pretty" option customizable?
Saluti.
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com
---
set = False
Endif
If get Then
getter = "\n\n" & "PUBLIC FUNCTION get" & attribName &
"(Value AS " & type & ") AS " & Type & "\n\n" & " RETURN " &
attribName & "\n\n&q
2010/12/17 Fabián Flores Vadell :
> Hi. There are two features I beleave could be fine in Gambas 3 IDE:
>
> 1. Add an option named "create getters and setters" (or similar) to
> the context menu in the code editor, so the IDE can take care of this
> boring work. A
t.
Fabien, Benoit, what you think about?
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com
--
Lotusphere 2011
Register now for Lotusphere 2011 and learn how
to connect the dots
; http://gambasdoc.org/help/comp/gb/.symbol/kind?v3
Thanks Fabien. It's possible to do that in Gambas2 too?
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot.com
--
L
Who is the owner for the logo showed in this page:
http://gambasdoc.org/help/doc/release?en&view
and what is the licence?
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksargentina.blogspot
ymbol.type =
typeControl.Property) THEN
But, I can't do that in Gambas2 because symbol is a String. In Gambas3
I can't use .Symbols.Kind because it is a virtual class
So. How I could do that?
--
Fabián Flores Vadell
www.comoprogramarcongambas.blogspot.com
www.speedbooksar
Some help items in the Wiki Encyclopaedia, repeats the sample code of
each line.
Example:
http://gambasdoc.org/help/comp/gb.qt/control/.keypress?show
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
number of the current object?
Yes, you can use:
'Sets the focus to the next control into the same container that the "LAST"
LAST.Next.SetFocus()
or
Desktop.SendKeys("\t")
The first is my preferred way to do that, because the second implies
th
2010/9/18 Benoît Minisini :
> Alas the syntax highlighter is line-based, and does not know if a symbol is
> public or private.
>
And the solution could be just keep a track about if symbols in a
proyect are public or private. Or you've frozen the addition of new
features?
--
Symbols" and "Private Symbols".
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
--
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deploymen
ica de documentación que han
agregado. Tengo una sugerencia para tí, pero esperaré hasta mañana
enterarte de eso y lo haré en un hilo aparte.
Go to Google Translate.. ;-)
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
--
ng (sorry... can't resist... :-)).
In that example, ... I don't know how to say this in english... the
sets enclosing its limits:
DIM A AS SET = {1,3,6,9, 14,17}
DIM C AS SET = {0..9}
PRINT A.Intersec(C)
[A] intersecction [C] = [1,3,6,9,14,17] intersecction [0,1,2,3,4,5,6,7,8,9]
?
2010/9/17 Doriano Blengino :
> Fabián Flores Vadell ha scritto:
>> 2010/9/16 Doriano Blengino :
>>
>> Ok. Now I can understand you.
>>
>> You mistakenly thought than I meant that "INTERFACE" and
>> "IMPLEMENTATION" keywords should work
want when the job of the compiler to become too complex. The speed of
> the compiler is a *very* important thing to me, and I spent days to make the
> Gambas 3 compiler twice faster than Gambas 2 compiler.
Oh, great !! I noticed that Gambas 3 works faster than Gambas 2.
> I won't
yword, but
> it smells like it was planned to allow for further combinations.
> However, nobody ever implemented them, and it stayed as it was. If we
> don't revive the old idea, why not allowing the programmer to write it
> like SWITCH? You could make it an option:
>
>
e", I mean "real programming life". :-)
Anyway, I don't understand what you mean.
>> (read below of "or much better")
>>
>> http://old.nabble.com/Ideas4Gambas-to28782834.html
>
> Sorry, I didn't know you were the father.
separated by PUBLIC, PRIVATE and PROPERTY keywords.
> Doriano's idea may be good: when PUBLIC or PRIVATE is alone on his line,
> everything after is declared PUBLIC (or PRIVATE) by default. That way, you can
> write:
Oh! That is my idea and I'm going to patent it.
- you will begin to
> appreciate it more than now. If not, you will then, and only then,
> entitled to criticize. I am not saying that gambas is perfect: I feel
> that you and me share many thoughts about programming, but I repeat:
> give gambas some
ineties is just anecdotal, and not detract
merits to them.
A very important advantage, was not emphasized enough: keywords closer
to OOP help very much to teaching an OOP language, because them are
closely related to the OOP concepts.
Regards
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
this time, gb4...
> in ... 3-4 year will be another thing.
Why? You forgot answer to the key question:
* Is difficult to implement?
And you don't should forget that I'm proposing that syntax as
alternative (optional).
Regards.
--
Fabián Flores Vadell
www.speedbooksargentina.blo
Hi Benoît. Below I expose some suggestions for new and alternative keywords.
PUBLIC and PRIVATE keywords defines the scope for attributes and
methods, but this words come from (or evokes) modular/structured
programming. Because PUBLIC methods and attributes (and properties)
define the interface fo
at all.
I know that, but it works much better than "+N". However Is ugly and
fallible too.
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
--
This SF.net Dev2Dev email is sponsored by:
Show off y
e all your own
projects. Anyway, that's nothing than can't fixed by changing a line
of code. Isn't so?
However, this isn't a enough important topic.
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
---
internally. So technically they can
> make a control draw outside of its frame. But this is generally avoided.
>
> Regards,
>
> --
> Benoît Minisini
But, is possible to do that in Gambas or this behaviour indicates a
problem in my code?
--
Fabián Flores Vadell
www
eThing.Width = txtSomeThing.TextWidth(txtSomeThing.Text & "W")
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
--
This SF.net Dev2Dev email is sponsored by:
Show off your parallel programming skills
D
By the way, in gb.gtk you can do this:
lbl1.Text = "Hi people"
lbl1.W = lbl1.Font.Width(lbl1.Text)
lbl1.H = lbl1.Font.Height(lbl1.Text)
lbl1.Show
Oh my gosh! The X and Y properties were never set. ;-)
Now seriously, and to finish with this topic, you shouldn
2010/9/2 richard terry :
> Please don't introduce the nightmare of autoresize = true!!
Arguments, please.
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
--
This SF.net Dev2Dev email is s
;m referring to that
constraint make not sense for me when I'm programming.
A control whose dimensions are greater than those of its container is
only possible as a temporal (transitional) state. In most cases that
state can't be showed to the user.
--
Fabián Flores Vadell
www.speedbo
adjust exactly the width of a TextBox to its content?
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
--
This SF.net Dev2Dev email is sponsored by:
Show off your parallel programming skills.
Enter the Intel(R
I found that isn't possible set the width of a control to be higher
than the width of its container. That's right? If so, this analogy of
a physical constraint make not sense to me. Why the behaviour of a
control follow this physical analogy?
--
Fabián Flo
't see clash between consistency and anything else
in this case.
Consistency matters because allow predict behaviors, but never can go
against the logical behavior of a object. So in this case consistency
and logical behavior of the control Label match, if the default value
t
e
keeps in their retinas the behavior that they saw when creating
controls on the form editor, and they expect that the same happens
when they create controls by code.
My preference is to the more intuitive behavior... that seems to me is
the gb.qt.
Thanks for consider my opinion
same code in a form using gb.gtk, the control
Label keeps invisible until the properties X, Y, Width and Height gets
values.
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
--
This SF.net Dev2Dev email is sp
e new widget
> to be positioned on your form?
I tried that, but isn't the problem.
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
--
This SF.net Dev2Dev email is sponsored by:
Show off your parallel p
by Gambas, What's could be happening?
'lbl1 is invisible in time execution
PUBLIC SUB _new()
DIM lbl1 AS NEW Label(ME)
lbl1.Text = "Hi people"
END
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
---
ssage led me in the wrong way).
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
--
This SF.net email is sponsored by
Make an app they can't live without
Enter the BlackBerry Developer Challenge
http://
ted. But how I could to export "UserControl"?
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
--
This SF.net email is sponsored by
Make an app they can't live without
Enter the BlackBerry Develo
ould have a way to avoid your own observer.
Am I right?
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
--
___
Gambas-user mailing list
Gambas-user@lists.sourceforge.
ata members of a class.
This seems just a theorical disquisition, but the message is than is
better working with one paradigm, unless you have enough knowledge
about the paradigms that you merge.
Regards.
--
Fabiá
o avoid than j can become negative when you use
it like index on the "matrix" array. So, I think that you can do it,
modifying the matrix index in the logical test, using t
ot use GOTOs. In some situations, it is an error to
> use objects. And so on. Nothing is perfect, and nothing is totally bad.
I understand. Maybe, you express that with too much relativism.
> Well. I really enjoyed to discuss with you. Because I feel that we both
> have slightly changed ou
loses some information needed by the KeyRelease event when some
> compound keys are used.
Ok. Thanks.
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
--
Download Intel® Parallel Studio Eval
Try the new s
(design time and execution time).
> "Listen twice before you speak.
> This is why we have two ears, but only one mouth."
ha! Very funny. I like it.
Regards.
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
--
it's goal is achieved, is by the BREAK sentence
>> used in a conditonal sentence inside the loop. But it might think that
>> if it is necessary to do this, then the iterative structure FOR EACH
>> is not adequate.
>>
> Yes, I f
em in the correct situations.
> It seems to me that you have said that an exception would be the FOR
> EACH cycle... why?
FOR EACH really iterates through all items, so there's only way to
stop the loop when it's goal is achieved, is by the BREAK sentence
used in a conditon
e
DIM a AS Byte = 0
WHILE (a < TabStrip1.Count - 1) AND (TabStrip1[a].Text <> IdCaption)
INC a
WEND
RETURN IF(TabStrip1[a].Caption = IdCaption, a, -1)
END
> I think I have done enough errors for this day (I'm going to sleep).
Sweet dreams (my childs are going to
URN).
Just in case:
REPEAT
b = TabStrip3.Count ' In fact, this does nothing usefull
INC a
UNTIL a < TabStrip3.Count OR TabStrip3[a].Caption = IdCaption
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
2010/4/13 Jussi Lahtinen :
> I forgot "Dim a as integer" but you got the point.
>
> Jussi
Yes Jussi. But my point isn't to do that the code work, it's show a
bad use of language resources.
--
Fabián Flores Vadell
www.spe
d be
an aditional problem; among other things.
> A bad programmer using some syntax for writing bad code does not necessary
> imply that that syntax should be forbidden.
I agree, but actually I was thinking that this affect more to those
who approach programming in an in
d before, I didn't notice that. So if you can tell me how to reproduce
> it, it would be a great thing.
Uhhmmm, an aditional problem is the random nature of the error. But, I
try to confirm it. (Maybe it was an error of appreciation on my part).
--
Fabián Flores Vadell
www.speedbooksa
o are finally forced to read code like
this.
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.com
--
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactiv
> Confirmed with Gambas 2.20 rev 2890 @ Ubuntu 9.10 64bit.
Thanks Jussi.
In my tests the first set results corresponds to gb.gtk (erroneously I
indicated gb.qt)
--
Fabián Flores Vadell
www.speedbooksargentina.blogspot.
TATIC keyword would be innecesary. Is this
really the case or is it necessary to declare the constants by the
STATIC keyword? (STATIC [PUBLIC | PRIVATE] CONST)
--
Fabián Flores Vadell
www.speedbooksargentina.blogspo
1 - 100 of 104 matches
Mail list logo