Re: [Pharo-users] Standalone HTML Model
NorbertHartl wrote > There could be a lot of synergies here because web frameworks, pillar, > PharoJS are all working close to something like that. I first thought along these lines when using Amber. I was writing Bootstrap support and saw that it was already available for Seaside and thought, darn it feels like unnecessary fragmentation here because these are all common, well-defined concepts! - Cheers, Sean -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
Re: [Pharo-users] PlotMorph on Pharo 6.1
Thanks that last fix works for me stephan wrote: > On 16-09-17 09:29, Stephane Ducasse wrote: > > I'm on 10.12.6. too > > I downloaded Pharo 32 using the link. > > And I loaded from Catalog and I cannot get the problem. > > May be there is a problem with a setting in the compiler. > > I will talk to the guys monday. > > Meta6, 7 and PlotMorph repos > > Name: ConfigurationOfPlotMorph-StephanEggermont.6 > Author: StephanEggermont > Time: 16 September 2017, 3:39:18.049684 pm > UUID: 246e825f-b015-0d00-a8c8-7793003b8086 > Ancestors: ConfigurationOfPlotMorph-StephanEggermont.5 > > No longer assign to block parameters in Pharo 6 and 7 > > Name: PlotMorph-StephanEggermont.9 > Author: StephanEggermont > Time: 16 September 2017, 3:26:48.762733 pm > UUID: e138d932-b015-0d00-a8c9-885a003b8086 > Ancestors: PlotMorph-StephanEggermont.8 > > No longer assign to block parameters -- Mark
Re: [Pharo-users] Continued Fractions
Ah, I see there is something in the Numerical Methods book. :rolleyes: Phil On Sun, Sep 17, 2017 at 8:30 PM, p...@highoctane.be wrote: > Do we have anything related to continued fractions in Pharo? > > https://en.wikipedia.org/wiki/Continued_fraction > > I need that to match rectanges to aspect ratios etc. > > TIA > Phil >
[Pharo-users] Continued Fractions
Do we have anything related to continued fractions in Pharo? https://en.wikipedia.org/wiki/Continued_fraction I need that to match rectanges to aspect ratios etc. TIA Phil
Re: [Pharo-users] execute a code block at a given time in pharo ?
On Sun, Sep 17, 2017 at 3:59 PM, Daniel BLANC wrote: > Thanks Stef, this app is just a quick hack Quick hacks are still often interesting reading and useful starting points for others. I've often thought of doing something like this for my kids but never got around to it. > but I already can stop the wifi from my phone I'm interested to know what you use for that also. cheers -ben
Re: [Pharo-users] UFFI problem / doubt
On Mon, Sep 18, 2017 at 12:01 AM, alvaro piorno wrote: > Pierce: I already see the repo, i kwnow now the difference and is not the > problem i have now. I made the suggestion for book draft i found, because > theres is no example on it. Thanks for answer. > > Stephan : Yes, as Esteban said i´m using that, I´m extending (or trying) > Esteban´s project. And i´m having the problem that esteban metioned. Thanks > for answer. > > Ben: I have in C the same example as in Pharo using the physics of Chipmunk, > and in C is working fine, there is a problem in the call to the function > from Pharo in 64 bits. Thanks for answer. Replicating the same example in C was not my point. You'd said you'd already done that ;) I meant compile your own shared C library containing... cpBody* myBodyNew(cpFloat m, cpFloat i)) { printf( "\n", m, i ); cpBodyNew(cpFloat m, cpFloat i); } and from Smalltalk use... self ffiCall: #(cpBody* myBodyNew(cpFloat m, cpFloat i)) also changing your existing C example to also use myBodyNew() to confirm it works as expected. cheers -ben > > > 2017-09-17 12:11 GMT-03:00 Ben Coman : >> >> >> On Fri, Sep 15, 2017 at 9:42 PM, alvaro piorno >> wrote: >>> >>> Hi everybody, i´m using UnifiedFFI with Chipmunk2D library . >>> I want to get a pointer to a C Structure (cpBody) and set a position to >>> it. >>> I have a subClass of FFIOpaqueObject to handle pointer. >>> >>> This is the "new " ffiCall : >>> self ffiCall: #(cpBody* cpBodyNew(cpFloat m, cpFloat i)) >>> >>> And this is a "seter" ffiCall: >>> >>> self ffiCall: #( void cpBodySetPosition( self, cpVect vector ) ). >>> >>> I`m not getting any "error" but the position is not updating. >>> I tried the same using Chipmunk directly and it works, so there is a >>> problem with what i have in Pharo. >> >> >> A general approach might be to write your own C wrapper around Chipmunk >> library functions which >> just does a debug printout of parameters before calling the wrapped >> function. >> Use these for both from Pharo and your "direct" trial, and see how they >> compare. >> >> cheers -ben >> >
Re: [Pharo-users] Standalone HTML Model
Ok I will try to digest it :) I do not remember how this is done in Pillar but this is a visitor and it could call a streaming generator. Stef On Sun, Sep 17, 2017 at 2:10 PM, Norbert Hartl wrote: > > >> Am 17.09.2017 um 13:34 schrieb Stephane Ducasse : >> >> Norbert can you explain the difference between "a HTML model that can >> be used for streaming, too, instead just the streaming." >> because indeed in Pillar we have another HTML exporter and I would >> like to reuse :) > > The difference is having a streaming API like seaside that uses brushes to > write a HTML tag with its attributes and uses blocks to nest tags.This > way at the end of the code you don't have a document model but a serialized > form of the DOM that depends on the canvas you use. > The standalone HTML model would be a DOM on which you can work afterwards. > You can navigate, decorate etc. before serializing this the a html string. > For the PharoJS this would ease the development in the pharo image. For > pillar it would be a theoretical improvement to convert a pillar DOM to a > HTML DOM and this to a HTML string representation. But as long as the > benefits aren't clear the intermediate step for pillar likes a bit too much. > But I have the strong feeling it would be good if there would be more > directions you can go. We have a good XML parser that produces a XML DOM. We > have pillar with its own DOM that can be converted to HTML. I don't know what > SOUP is producing. And we have web frameworks where people have different > ways producing for the web. I see potential in supporting multiple ways of > reading and writing HTML and making this experience much more powerful. > > Norbert >>> On Sun, Sep 17, 2017 at 1:29 PM, Norbert Hartl wrote: >>> >>> > Am 17.09.2017 um 12:12 schrieb Pierce Ng : > > On Mon, Sep 11, 2017 at 06:25:55PM +0200, Stephane Ducasse wrote: > Hi Pierce Ng > How different is the API from Seaside? > Because I would like to use it. > I like to think modularly :) Hi Stef, I modeled it after Seaside's API. However, it was really just a start and needs much more work. I created this when investigating writing web apps in Cuis, hence the perceived need for a standalone library. Eventually I ran out of time and decided to stick to full Seaside loaded into Pharo. >>> So you've built something like seaside canvas? I like to emphasize that >>> seaside is not really a standalone HTML model but (as the name says) a >>> canvas which streams markup. >>> What we should explore is the possibility of having a HTML model that can >>> be used for streaming, too, instead just the streaming. There could be a >>> lot of synergies here because web frameworks, pillar, PharoJS are all >>> working close to something like that. >>> >>> my 2 cents, >>> >>> Norbert >
Re: [Pharo-users] Pharo 7 license question
On Sun, Sep 17, 2017 at 7:00 PM, stephan wrote: > > On 17-09-17 06:59, Jimmie Houchin wrote: >> >> And the GPL not be viral in my app provided I only use the GPL library and >> am not modifying it in my app. >> >> Do I understand this wrong? > > > Yes. With GPL everything is now GPL. With LGPL, as long as you only link to > it, > the viral aspect is limited to the library. In Pharo, that means you can use > UFFI > to connect to LGPL libraries, and you can probably create plugins. Loading > smalltalk libraries that are LGPL is not exactly the same as linking, there is > no clear boundary between compile-time and run-time, as everything is in the > image. > That makes the LGPL difficult to interpret in the smalltalk case, and > potentially viral. +1. On Sun, Sep 17, 2017 at 6:09 PM, Hilaire wrote: > Regarding porting GPL software, I guess you mean rewriting with Smalltalk, > you should be free to license it as you want, for example as MIT. > AFAIK there is no evil restriction as "seen the code" under the GPL. It is not as clean as that. Many consider "seen the code" to implicate "derived code". Whether a court of law agrees with this or not is not what you should consider. The best advice I received from a lawyer is that winning in court (sometimes after years of effort) is still a loss, so you should position yourself so that no one even thinks they can take you court. > For library, alternative is LGPL and I read this interesting note: > One should note that subclassing a Java (or other OO) class licensed under > the LGPL is regarded as a use of an interface of a library comparable to a > function call of a library. It is not regarded as a modification of the > original class. Therefore the subclass does not fall under the requirements > of the LGPL. The definitive reference of Java + LGPL is https://www.gnu.org/licenses/lgpl-java.en.html which says: "The typical arrangement for Java is that each library an application uses is distributed as a separate JAR (Java Archive) file. Applications use Java's “import” functionality to access classes from these libraries ... The LGPL permits this distribution ... Applications need only follow the requirements in section 6 of the LGPL" but a Smalltalk Image runs foul of section 6 requiring... "A suitable [shared library] mechanism ... that (1) uses at run time a copy of the library already present on the user's computer system, rather than copying library functions into the executable" where an Image is considered to be the "executable". So incorporating LGPL Smalltalk code into an Image causes all code in the Image to be infected with the LGPL. > So using a LGPL library, even extending it, does not force the user to be in > the GPL family license. Using LGPL C libraries is fine and doesn't infect your Smalltalk code. Using LGPL Smalltalk libraries does infect all Smalltalk code in your Image. The concern is contributing a bug fixed in Pharo code from an infected image technically infects the whole of Pharo - although you are free to update a clean image with the same bug fix and contribute from there - but thats an awkward process. > The only restriction is the receiver should be capable to update > the LGPL package independently of the application using the package. > Anyway, I don't think you should worried about porting GPL/LGPL libraries as > long > as your are rewriting it. You can license it under MIT. Then LGPL is also > possible. The term "port" clearly implies "derived" so you cannot arbitrarily re-license just by changing implementation languages. Otherwise for example a GPL library could be relicensed by one team porting from C to Python, then a second independent team ports from Python back to C subverting the original copyright. === Hmmm... actually refreshing myself with the newer license texts just now I notice GPL 3 has added some interesting definitions the GPL 2 lacks... > The “Corresponding Source” for a work ... does not include the work's System > Libraries > > The “System Libraries” of an executable work include anything, other than the > work as a whole, that > (a) is included in the normal form of packaging a Major Component, > but which is not part of that Major Component, and > (b) serves only to enable use of the work with that Major Component, or to > implement a > Standard Interface for which an implementation is available to the public > in source code form. > > A “Major Component”, in this context, means a major essential component > (kernel, window system, and so on) of the specific operating system (if any) > on which the executable work runs, or a compiler used to produce the work, > or an object code interpreter used to run it. > > A “Standard Interface” means an interface that > ... is widely used among developers working in that language. which seems to open the door to a strong argument** that Pharo is such a Major Component protected from even a full GPL3
Re: [Pharo-users] New chapter for coming book: Messages
For the Visitor chapter it is in preparation... (first I should finish the lecture schedule and after do another pass on the first book ) it will be an extension of the Expression chapter On Sat, Sep 16, 2017 at 1:53 PM, H. Hirzel wrote: > Stephane > > Thank you for the reminder in the chapter that classes are cheap! > If I have a class hierarchy with 300 classes (for example builder > classes) but they all implement just one method (#build) then that is > not complex at all. > > Another thing: > > I assume you will have a chapter on visitors as well. Do you have an > outline / draft for that? > > --Hannes > > On 9/11/17, Stephane Ducasse wrote: >> tx for the feedback! >> >> >> On Mon, Sep 11, 2017 at 1:18 PM, H. Hirzel wrote: >>> Hello Stephane >>> >>> I like the emphasis of the chapter that implementing same selector >>> several times at the proper place in a couple of classes is more >>> important than to rely on inheritance. >>> >>> In particular the conclusion >>> >>> >>> What is important to realise is that classes are cheap. It is better >>> to write 5 little classes than a huge one. Some (even smart) people >>> got confused by measuring complexity of a system using number of >>> classes. Having many classes representing good abstractions with a >>> single responsibility is much much better than having a single class >>> exhibiting multiple responsibilities. >>> >>> >>> Suggestion: put it into a 'Note' box. >>> >>> >>> >>> >>> >>> And replace >>> >>> 'got confused' >>> >>> with: >>> >>>'get confused' >>> >>> >>> >>> >>> >>> >>> >>> Replace: >>> >>> Now the choices can be made over multiple tenth of classes. >>> >>> 'multiple tenth' is an uncommon expression >>> >>> Suggestion: >>> Now the choices can be made over dozens of classes. >>> >>> >>> >>> >>> >>> >>> However >>> 'Sending a message is making a choice!' >>> takes the view point of the mechanism which does the late binding. >>> >>> If I write >>> >>> aNode emitHTML: aStream >>> >>> I do not make the choice. There are different types of nodes and they >>> all do the same in the sense that they produce HTML code. >>> >>> In any case to drive the point home more examples are needed. >>> >>> The Boolean example is the minimal example and as such is interesting. >>> But it is a borderline case which just illustrates that Smalltalk goes >>> a long way to implement the object and message pattern consistently. >>> >>> The Pillar example is fine but too terse. >>> For people who already understand the issue just a reference is fine. >>> But for people new to the concept of replacing a case statement with a >>> class hierarchy it is too short. >>> >>> Elaborate! >>> >>> >>> E.g. have a diagram for a subset of the hierarchy >>> >>> PRObject #(''properties'') >>> PRDocumentItem #(''counter'') >>> PRDocumentGroup #(''children'') >>> PRDocument #() >>> PRHeader #(''level'') >>> PRList #() >>> PROrderedList #() >>> PRUnorderedList #() >>> PRParagraph #() >>> PRReference #(''reference'' >>> ''parameters'') >>> PRFigure #() >>> PRSlide #(''title'' ''label'') >>> PRText #(''text'')' >>> >>> And show all the emitHTML: messages. >>> >>> >>> And go for a third example, e.g. from Morphic or Bloc >>> >>> >>> position: >>> extent: >>> color: >>> owner: >>> submorphs: >>> drawOn: aCanvas >>> >>> >>> Meaning of last sentence is not clear. >>> >>> >>> Remember that when we execute a method (and also write it), one key >>> information we get is that the receiver from this class or one of its >>> subclasses as we will later. >>> >>> >>> >>> Regards >>> >>> Hannes >>> >>> On 9/11/17, Ricardo Pacheco wrote: Looks Great, congratulations!! I just read it and has a couple of mistakes in the first figures. The return value of the false (2.3, 2.4). Regards Ricardo El sept. 11, 2017 12:12 AM, "Stephane Ducasse" escribió: Hi after this crazy esug I took a long bus and I wrote one missing chapter for the forhtcoming bus. I plan to have a first full version for 1 of October :) I reorganised and massively clean the book contents. Comments are welcome in any form. Stef https://github.com/SquareBracketAssociates/LearningOOPWithPharo >>> >> >> >
Re: [Pharo-users] execute a code block at a given time in pharo ?
once you are done please share it. You see I'm good in deep little details but I often lack other knowledge :) On Sun, Sep 17, 2017 at 9:59 AM, Daniel BLANC wrote: > Thanks Stef, this app is just a quick hack but I already can stop the wifi > from my phone and I feel like I have new negociations superpowers... > > Thanks Hernán ! That's a perfect fit :) > > On Thu, Sep 14, 2017 at 9:24 PM Hernán Morales Durand > wrote: >> >> http://www.smalltalkhub.com/#!/~TorstenBergmann/Scheduler >> >> Cheers, >> >> Hernán >> >> 2017-09-13 17:36 GMT-03:00 Daniel BLANC : >> > Hi All, >> > >> > I'm a very beginner with smalltalk. I am building a small seaside app >> > for >> > controlling wifi access of my teenagers kids. In this app I need to >> > start or >> > stop the wifi acces at a given time. >> > For the moment I'm doing it with an infinite loop in a process, with >> > this >> > code: >> > >> > WifiController >> startScheduler >> > ^ SchedulerProcess >> > ifNil: [ SchedulerProcess := [ [ true ] >> > whileTrue: [ self schedulerApplyAutoStartStopRules. >> > 56 seconds wait ] ] forkNamed: 'DanWifiManagerScheduler' ] >> > >> > >> > I'm wondering if there is a way to do this without this infinite loop ? >> > May >> > be there is a class in the standard pharo image that can execute a code >> > block at a given time ? >> > >> > Thanks, >> > Daniel >> >
Re: [Pharo-users] UFFI problem / doubt
Esteban and you remember you promise me to work on the documentation :) On Sun, Sep 17, 2017 at 1:35 PM, Esteban Lorenzano wrote: > yes, he is using that. > but he is porting it yo UFFI (it was NB) and to 64bits and to Chipmunk 7.0 > (it was 6.1) > > So… in one of those places, is failing :( > > Esteban > >> On 17 Sep 2017, at 13:32, Stephane Ducasse wrote: >> >> Look at http://smalltalkhub.com/#!/~estebanlm/Storm >> >> A small game engine. >> >> For being able to use this you will need: >> >> NB capable VM. >> Athens. >> Chipmunk library. You can download it at Chipmunk >> >> On Sun, Sep 17, 2017 at 1:31 PM, Stephane Ducasse >> wrote: >>> Jean-Baptiste Arnaud extended the Chipmunk binding that esteban did a >>> while ago and Damien Pollet did a tutorial >>> at ESUG Annecy to show how to use FFI (nativeboost) to call chipmunk >>> so it should be around. >>> >>> Stef >>> >>> On Sat, Sep 16, 2017 at 2:09 PM, alvaro piorno >>> wrote: Hi Stephan, Thanks for your answer, i found the booklet, but it was a draft, so it was incomplete. An example of FFIOpaqueObject would be healpful, i think. Esteban already talked to me, and is helping me with this. What do you mean with "Chipmunk existing bindings" ?. 2017-09-16 4:42 GMT-03:00 Stephane Ducasse : > > Hi alvaro > > Thanks for the question. If you have any suggestion for the booklet on > UFFI let us know. > I will let esteban anwser because I do not know. > BTW did you check the chipmunk existing bindings? > > Stef > > On Fri, Sep 15, 2017 at 3:42 PM, alvaro piorno > wrote: >> Hi everybody, i´m using UnifiedFFI with Chipmunk2D library . >> I want to get a pointer to a C Structure (cpBody) and set a position to >> it. >> I have a subClass of FFIOpaqueObject to handle pointer. >> >> This is the "new " ffiCall : >>self ffiCall: #(cpBody* cpBodyNew(cpFloat m, cpFloat i)) >> >> And this is a "seter" ffiCall: >> >>self ffiCall: #( void cpBodySetPosition( self, cpVect vector ) ). >> >> I`m not getting any "error" but the position is not updating. >> I tried the same using Chipmunk directly and it works, so there is a >> problem >> with what i have in Pharo. >> Any suggestion? >> Thanks in advance. >> >> Alvaro Piorno > >> > >
[Pharo-users] Color text formatting in Transcript
Hello! Is there a simple way to apply color formatting to text in Transcript, accessible for amateur? Thank!
Re: [Pharo-users] UFFI problem / doubt
Pierce: I already see the repo, i kwnow now the difference and is not the problem i have now. I made the suggestion for book draft i found, because theres is no example on it. Thanks for answer. Stephan : Yes, as Esteban said i´m using that, I´m extending (or trying) Esteban´s project. And i´m having the problem that esteban metioned. Thanks for answer. Ben: I have in C the same example as in Pharo using the physics of CHipmunk, and in C is working fine, there is a problem in the call to the function from Pharo in 64 bits. Thanks for answer. 2017-09-17 12:11 GMT-03:00 Ben Coman : > > On Fri, Sep 15, 2017 at 9:42 PM, alvaro piorno > wrote: > >> Hi everybody, i´m using UnifiedFFI with Chipmunk2D library . >> I want to get a pointer to a C Structure (cpBody) and set a position to >> it. >> I have a subClass of FFIOpaqueObject to handle pointer. >> >> This is the "new " ffiCall : >> self ffiCall: #(cpBody* cpBodyNew(cpFloat m, cpFloat i)) >> >> And this is a "seter" ffiCall: >> >> self ffiCall: #( void cpBodySetPosition( self, cpVect vector ) ). >> >> I`m not getting any "error" but the position is not updating. >> I tried the same using Chipmunk directly and it works, so there is a >> problem with what i have in Pharo. >> > > A general approach might be to write your own C wrapper around Chipmunk > library functions which > just does a debug printout of parameters before calling the wrapped > function. > Use these for both from Pharo and your "direct" trial, and see how they > compare. > > cheers -ben > >
Re: [Pharo-users] UFFI problem / doubt
On Fri, Sep 15, 2017 at 9:42 PM, alvaro piorno wrote: > Hi everybody, i´m using UnifiedFFI with Chipmunk2D library . > I want to get a pointer to a C Structure (cpBody) and set a position to it. > I have a subClass of FFIOpaqueObject to handle pointer. > > This is the "new " ffiCall : > self ffiCall: #(cpBody* cpBodyNew(cpFloat m, cpFloat i)) > > And this is a "seter" ffiCall: > > self ffiCall: #( void cpBodySetPosition( self, cpVect vector ) ). > > I`m not getting any "error" but the position is not updating. > I tried the same using Chipmunk directly and it works, so there is a > problem with what i have in Pharo. > A general approach might be to write your own C wrapper around Chipmunk library functions which just does a debug printout of parameters before calling the wrapped function. Use these for both from Pharo and your "direct" trial, and see how they compare. cheers -ben
Re: [Pharo-users] execute a code block at a given time in pharo ?
Daniel BLANC wrote > I feel like I have new negociations superpowers... The magic of Smalltalk ha ha :) - Cheers, Sean -- Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html
[Pharo-users] Smalltalk gets a reference in fastcompany Kay interview
Interesting (although I found slightly rambling) interview with Alan Kay about personal computing. But Smalltalk does get a link. https://medium.com/fast-company/the-father-of-mobile-computing-is-not-impressed-9ab25dfff0c Tim Sent from my iPhone
Re: [Pharo-users] Pharo 7 license question
Mr lawyer here I will give you general direction because in the end it depends in the national law of the country of the person being sued. The general idea is that GPL is a license to be avoided if you want real freedom for your users. That means their ability to open or close code. A license is in essense a contract that you accept when you click a button, a link or other means that show clear consent. If the license is not accepted through the means provided by law then it cannot apply. Also a license is bound by law and national laws have special legislation of what contracts can have as terms. Anything that may cause bodily harm for example or negate the liability for such action are terms in the a contract that are immediately become invalid and hence they dont apply without necessarily make the whole contract invalid. Basically means that a license by itself is powerless and can function only under the permissions of law. A GPL license is thus a contract, but a GPL license as we all know it, generally is used as a template. None forces anyone from making a GPL license that allows the the user to close the code. FSF could sue for the use of the name on the ground of misleading the user, but the license would be still valid. Matter complicate also on the matter of GPL "infection". One licences his code under MIT but uses GPL licensed libraries, keeping his code open does not violate GPL but if another user take the code and add his own code to it and close it , including the GPL license he does violate the GPL license but does he violate the law ? My legal opinion on this is that he does not unless there was clear consent by him on the matter of GPL license, which would require for him to know that those libraries are used by the MIT code he is using and those libraries are GPL. Taking into account how messy code bases can be, good luck with that. Again this depends on case and national law , hence why we say always , go speak with a lawyer of your juridiction , preferably someone who specialises in contract law. NOT Copyright law. A license has little to do with ownership , which is what copyright is, its merely a contract trying to bind you to use the code only in specific ways. Violation of a license is not a violation of copyright. Again under the exclusion of national laws, national laws have each their own weirdnesses. Also another advice, it does not matter if the license is called MIT, GPL, BSD , BOOGIE , or BIGPINKELEPHANT , the bottom line is that licenses are contracts and as such as soon as you accept them they are biding to the extend the law allows them to be binding , as I mentioned earlier Thus When we venture into the commercial world and profit is involved, people who will want a piece of that profit may emerge and use the license against you. Thus do not accept any license even if it is certified MIT before giving the text to a lawyer to read it and find any traps , hidden doors or anything that can put you in a compromising position. There are even cases when both parties have good intentions yet they entangle in a legal battle because the license is too vague, confusing or it does not specify a special case that may apply. Contracts can be extremely complex entities, even though I am not a copyright lawyer , I do general practice and martitime law, that Greek Law and European Law by the way, I know how hairy things can get , especially with big contracts. I also have a single experience with Copyright of the code , between an individual and the company and it was very very messy for both parties. Unfortunately judges still do not understand computers and I can tell you that also apples to other European countries and the USA because I have a master degreen on commercial and e-commerce from a UK uinversity with a disertation "Legal protections against malicious software". I examined UK, Eurpean and International law for this dissertation and what I have seen has severely disappointed me how law professionals, not just judges are so clueless when it comes to technology and yet are expected to provide fair protection and judgements. Summary : If you plan to make profit, go talk with your lawyer. If you intend to make a company a lawyer and an accountant is a MUST HAVE and wil save you tons of money than they will cost you. Also never wait for the last second to seek legal advise , in law everything is under a time limit, you dont want to be late. Trust me ;) On Sun, Sep 17, 2017 at 8:01 AM Jimmie Houchin wrote: > I understand that Pharo people will in general want to stay away from > the GPL. I just didn't know if it would potentially be more equivalent > to how other languages work. > > In Python to my understanding I could do something like > > #into my MIT licensed app > import GPL_library > import MIT_library > > And the GPL not be viral in my app provided I only use the GPL library > and am not modifying it in my app. > > Do I understand this wrong? > > I ha
Re: [Pharo-users] Standalone HTML Model
> Am 17.09.2017 um 13:34 schrieb Stephane Ducasse : > > Norbert can you explain the difference between "a HTML model that can > be used for streaming, too, instead just the streaming." > because indeed in Pillar we have another HTML exporter and I would > like to reuse :) The difference is having a streaming API like seaside that uses brushes to write a HTML tag with its attributes and uses blocks to nest tags.This way at the end of the code you don't have a document model but a serialized form of the DOM that depends on the canvas you use. The standalone HTML model would be a DOM on which you can work afterwards. You can navigate, decorate etc. before serializing this the a html string. For the PharoJS this would ease the development in the pharo image. For pillar it would be a theoretical improvement to convert a pillar DOM to a HTML DOM and this to a HTML string representation. But as long as the benefits aren't clear the intermediate step for pillar likes a bit too much. But I have the strong feeling it would be good if there would be more directions you can go. We have a good XML parser that produces a XML DOM. We have pillar with its own DOM that can be converted to HTML. I don't know what SOUP is producing. And we have web frameworks where people have different ways producing for the web. I see potential in supporting multiple ways of reading and writing HTML and making this experience much more powerful. Norbert >> On Sun, Sep 17, 2017 at 1:29 PM, Norbert Hartl wrote: >> >> Am 17.09.2017 um 12:12 schrieb Pierce Ng : On Mon, Sep 11, 2017 at 06:25:55PM +0200, Stephane Ducasse wrote: Hi Pierce Ng How different is the API from Seaside? Because I would like to use it. I like to think modularly :) >>> >>> Hi Stef, >>> >>> I modeled it after Seaside's API. However, it was really just a start and >>> needs >>> much more work. I created this when investigating writing web apps in Cuis, >>> hence the perceived need for a standalone library. Eventually I ran out of >>> time >>> and decided to stick to full Seaside loaded into Pharo. >>> >> So you've built something like seaside canvas? I like to emphasize that >> seaside is not really a standalone HTML model but (as the name says) a >> canvas which streams markup. >> What we should explore is the possibility of having a HTML model that can be >> used for streaming, too, instead just the streaming. There could be a lot of >> synergies here because web frameworks, pillar, PharoJS are all working close >> to something like that. >> >> my 2 cents, >> >> Norbert
Re: [Pharo-users] UFFI problem / doubt
yes, he is using that. but he is porting it yo UFFI (it was NB) and to 64bits and to Chipmunk 7.0 (it was 6.1) So… in one of those places, is failing :( Esteban > On 17 Sep 2017, at 13:32, Stephane Ducasse wrote: > > Look at http://smalltalkhub.com/#!/~estebanlm/Storm > > A small game engine. > > For being able to use this you will need: > > NB capable VM. > Athens. > Chipmunk library. You can download it at Chipmunk > > On Sun, Sep 17, 2017 at 1:31 PM, Stephane Ducasse > wrote: >> Jean-Baptiste Arnaud extended the Chipmunk binding that esteban did a >> while ago and Damien Pollet did a tutorial >> at ESUG Annecy to show how to use FFI (nativeboost) to call chipmunk >> so it should be around. >> >> Stef >> >> On Sat, Sep 16, 2017 at 2:09 PM, alvaro piorno >> wrote: >>> Hi Stephan, >>> Thanks for your answer, i found the booklet, but it was a draft, so it was >>> incomplete. An example of FFIOpaqueObject would be healpful, i think. >>> Esteban already talked to me, and is helping me with this. >>> What do you mean with "Chipmunk existing bindings" ?. >>> >>> 2017-09-16 4:42 GMT-03:00 Stephane Ducasse : Hi alvaro Thanks for the question. If you have any suggestion for the booklet on UFFI let us know. I will let esteban anwser because I do not know. BTW did you check the chipmunk existing bindings? Stef On Fri, Sep 15, 2017 at 3:42 PM, alvaro piorno wrote: > Hi everybody, i´m using UnifiedFFI with Chipmunk2D library . > I want to get a pointer to a C Structure (cpBody) and set a position to > it. > I have a subClass of FFIOpaqueObject to handle pointer. > > This is the "new " ffiCall : >self ffiCall: #(cpBody* cpBodyNew(cpFloat m, cpFloat i)) > > And this is a "seter" ffiCall: > >self ffiCall: #( void cpBodySetPosition( self, cpVect vector ) ). > > I`m not getting any "error" but the position is not updating. > I tried the same using Chipmunk directly and it works, so there is a > problem > with what i have in Pharo. > Any suggestion? > Thanks in advance. > > Alvaro Piorno >>> >
Re: [Pharo-users] Standalone HTML Model
Norbert can you explain the difference between "a HTML model that can be used for streaming, too, instead just the streaming." because indeed in Pillar we have another HTML exporter and I would like to reuse :) On Sun, Sep 17, 2017 at 1:29 PM, Norbert Hartl wrote: > > >> Am 17.09.2017 um 12:12 schrieb Pierce Ng : >> >>> On Mon, Sep 11, 2017 at 06:25:55PM +0200, Stephane Ducasse wrote: >>> Hi Pierce Ng >>> How different is the API from Seaside? >>> Because I would like to use it. >>> I like to think modularly :) >> >> Hi Stef, >> >> I modeled it after Seaside's API. However, it was really just a start and >> needs >> much more work. I created this when investigating writing web apps in Cuis, >> hence the perceived need for a standalone library. Eventually I ran out of >> time >> and decided to stick to full Seaside loaded into Pharo. >> > So you've built something like seaside canvas? I like to emphasize that > seaside is not really a standalone HTML model but (as the name says) a canvas > which streams markup. > What we should explore is the possibility of having a HTML model that can be > used for streaming, too, instead just the streaming. There could be a lot of > synergies here because web frameworks, pillar, PharoJS are all working close > to something like that. > > my 2 cents, > > Norbert
Re: [Pharo-users] UFFI problem / doubt
Look at http://smalltalkhub.com/#!/~estebanlm/Storm A small game engine. For being able to use this you will need: NB capable VM. Athens. Chipmunk library. You can download it at Chipmunk On Sun, Sep 17, 2017 at 1:31 PM, Stephane Ducasse wrote: > Jean-Baptiste Arnaud extended the Chipmunk binding that esteban did a > while ago and Damien Pollet did a tutorial > at ESUG Annecy to show how to use FFI (nativeboost) to call chipmunk > so it should be around. > > Stef > > On Sat, Sep 16, 2017 at 2:09 PM, alvaro piorno > wrote: >> Hi Stephan, >> Thanks for your answer, i found the booklet, but it was a draft, so it was >> incomplete. An example of FFIOpaqueObject would be healpful, i think. >> Esteban already talked to me, and is helping me with this. >> What do you mean with "Chipmunk existing bindings" ?. >> >> 2017-09-16 4:42 GMT-03:00 Stephane Ducasse : >>> >>> Hi alvaro >>> >>> Thanks for the question. If you have any suggestion for the booklet on >>> UFFI let us know. >>> I will let esteban anwser because I do not know. >>> BTW did you check the chipmunk existing bindings? >>> >>> Stef >>> >>> On Fri, Sep 15, 2017 at 3:42 PM, alvaro piorno >>> wrote: >>> > Hi everybody, i´m using UnifiedFFI with Chipmunk2D library . >>> > I want to get a pointer to a C Structure (cpBody) and set a position to >>> > it. >>> > I have a subClass of FFIOpaqueObject to handle pointer. >>> > >>> > This is the "new " ffiCall : >>> > self ffiCall: #(cpBody* cpBodyNew(cpFloat m, cpFloat i)) >>> > >>> > And this is a "seter" ffiCall: >>> > >>> > self ffiCall: #( void cpBodySetPosition( self, cpVect vector ) ). >>> > >>> > I`m not getting any "error" but the position is not updating. >>> > I tried the same using Chipmunk directly and it works, so there is a >>> > problem >>> > with what i have in Pharo. >>> > Any suggestion? >>> > Thanks in advance. >>> > >>> > Alvaro Piorno >>> >>
Re: [Pharo-users] UFFI problem / doubt
Jean-Baptiste Arnaud extended the Chipmunk binding that esteban did a while ago and Damien Pollet did a tutorial at ESUG Annecy to show how to use FFI (nativeboost) to call chipmunk so it should be around. Stef On Sat, Sep 16, 2017 at 2:09 PM, alvaro piorno wrote: > Hi Stephan, > Thanks for your answer, i found the booklet, but it was a draft, so it was > incomplete. An example of FFIOpaqueObject would be healpful, i think. > Esteban already talked to me, and is helping me with this. > What do you mean with "Chipmunk existing bindings" ?. > > 2017-09-16 4:42 GMT-03:00 Stephane Ducasse : >> >> Hi alvaro >> >> Thanks for the question. If you have any suggestion for the booklet on >> UFFI let us know. >> I will let esteban anwser because I do not know. >> BTW did you check the chipmunk existing bindings? >> >> Stef >> >> On Fri, Sep 15, 2017 at 3:42 PM, alvaro piorno >> wrote: >> > Hi everybody, i´m using UnifiedFFI with Chipmunk2D library . >> > I want to get a pointer to a C Structure (cpBody) and set a position to >> > it. >> > I have a subClass of FFIOpaqueObject to handle pointer. >> > >> > This is the "new " ffiCall : >> > self ffiCall: #(cpBody* cpBodyNew(cpFloat m, cpFloat i)) >> > >> > And this is a "seter" ffiCall: >> > >> > self ffiCall: #( void cpBodySetPosition( self, cpVect vector ) ). >> > >> > I`m not getting any "error" but the position is not updating. >> > I tried the same using Chipmunk directly and it works, so there is a >> > problem >> > with what i have in Pharo. >> > Any suggestion? >> > Thanks in advance. >> > >> > Alvaro Piorno >> >
Re: [Pharo-users] Standalone HTML Model
> Am 17.09.2017 um 12:12 schrieb Pierce Ng : > >> On Mon, Sep 11, 2017 at 06:25:55PM +0200, Stephane Ducasse wrote: >> Hi Pierce Ng >> How different is the API from Seaside? >> Because I would like to use it. >> I like to think modularly :) > > Hi Stef, > > I modeled it after Seaside's API. However, it was really just a start and > needs > much more work. I created this when investigating writing web apps in Cuis, > hence the perceived need for a standalone library. Eventually I ran out of > time > and decided to stick to full Seaside loaded into Pharo. > So you've built something like seaside canvas? I like to emphasize that seaside is not really a standalone HTML model but (as the name says) a canvas which streams markup. What we should explore is the possibility of having a HTML model that can be used for streaming, too, instead just the streaming. There could be a lot of synergies here because web frameworks, pillar, PharoJS are all working close to something like that. my 2 cents, Norbert
Re: [Pharo-users] Pharo 7 license question
On 17-09-17 06:59, Jimmie Houchin wrote: And the GPL not be viral in my app provided I only use the GPL library and am not modifying it in my app. Do I understand this wrong? Yes. With GPL everything is now GPL. With LGPL, as long as you only link to it, the viral aspect is limited to the library. In Pharo, that means you can use UFFI to connect to LGPL libraries, and you can probably create plugins. Loading smalltalk libraries that are LGPL is not exactly the same as linking, there is no clear boundary between compile-time and run-time, as everything is in the image. That makes the LGPL difficult to interpret in the smalltalk case, and potentially viral. Stephan
Re: [Pharo-users] Pharo 7 license question
On 17-09-17 12:09, Hilaire wrote: For library, alternative is LGPL and I read this interesting note: One should note that subclassing a Java (or other OO) class licensed under the LGPL is regarded as a use of an interface of a library comparable to a function call of a library. It is not regarded as a modification of the original class. Therefore the subclass does not fall under the requirements of the LGPL. So using a LGPL library, even extending it, does not force the user to be in the GPL family license. Loading an LGPL library in a smalltalk image is not linking, in the strict interpretation. So no. FSF is aware of this problem Stephan
Re: [Pharo-users] UFFI problem / doubt
On Sat, Sep 16, 2017 at 09:09:23AM -0300, alvaro piorno wrote: > incomplete. An example of FFIOpaqueObject would be healpful, i think. Hi Alvaro, I mentioned libffidemo on Discord. Reading the blog post and the library's unit tests will hopefully make clearer how to use FFIOpaqueObject. http://www.samadhiweb.com/blog/2016.03.17.demoffi.html https://github.com/PierceNg/libffidemo Pierce
Re: [Pharo-users] Pharo 7 license question
On Sun, Sep 17, 2017 at 02:47:16AM +0200, stephan wrote: > On 16-09-17 18:51, Peter Uhnák wrote: > > This is the reason why LGPL exists. LGPL is not contagious. > > It is not clear that that would be the case with smalltalk. > We tend to reuse by subclassing, and linking is not so > well-defined. There is no license that has the same effect as > LGPL has for c programs for smalltalk. The Common Lisp people have LLGPL: http://www.cliki.net/LLGPL http://opensource.franz.com/preamble.html Pierce
Re: [Pharo-users] Standalone HTML Model
On Mon, Sep 11, 2017 at 10:14:54AM -0300, Esteban A. Maringolo wrote: > I don't know how modular it is, but maybe loading only the 'Seaside-Canvas' > package you can use the WAHtmlCanvas to create the HTML content. I also experimented with loading enough of Seaside in bits and pieces to get the canvas thing working. Was not successful back then. Pierce
Re: [Pharo-users] Standalone HTML Model
On Mon, Sep 11, 2017 at 06:25:55PM +0200, Stephane Ducasse wrote: > Hi Pierce Ng > How different is the API from Seaside? > Because I would like to use it. > I like to think modularly :) Hi Stef, I modeled it after Seaside's API. However, it was really just a start and needs much more work. I created this when investigating writing web apps in Cuis, hence the perceived need for a standalone library. Eventually I ran out of time and decided to stick to full Seaside loaded into Pharo. Pierce
Re: [Pharo-users] Pharo 7 license question
Hi Jimmie, Dr. Geo is distributed under the GPL and shipped with Pharo. As Pharo is MIT, you can redistribute your whole software under the license you want, proprietary or free software ones as GPL. Regarding porting GPL software, I guess you mean rewriting with Smalltalk, you should be free to license it as you want, for example as MIT. AFAIK there is no evil restriction as "seen the code" under the GPL. For library, alternative is LGPL and I read this interesting note: One should note that subclassing a Java (or other OO) class licensed under the LGPL is regarded as a use of an interface of a library comparable to a function call of a library. It is not regarded as a modification of the original class. Therefore the subclass does not fall under the requirements of the LGPL. So using a LGPL library, even extending it, does not force the user to be in the GPL family license. The only restriction is the receiver should be capable to update the LGPL package independently of the application using the package. Anyway, I don't think you should worried about porting GPL/LGPL libraries as long as your are rewriting it. You can license it under MIT. Then LGPL is also possible. -- Dr. Geo http://drgeo.eu
Re: [Pharo-users] (no subject)
On 17-09-17 05:21, Sean P. DeNigris wrote: Was this issue [1] fixed: I think I found it. It seems to be a bug in the way Launcher/Pharo unzips the downloaded VM. The symlink libgit2.dylib becomes unlinked and appears as just a regular file. If I delete the Pharo.app and unzip 70.zip (which btw maybe should have been deleted during cleanup after the dl) to ./vms/70, the error disappears! [1] From http://forum.world.st/Launcher-Error-w-Pharo-7-tt4959777.html#a4960417 That sounds like the problem I encountered Stephan
Re: [Pharo-users] (no subject)
On 14-09-17 22:52, Christophe Demarey wrote: For Pharo 7 images, no sources file are dowloaded since they come with the image. They are not installed Stephan
Re: [Pharo-users] execute a code block at a given time in pharo ?
Thanks Stef, this app is just a quick hack but I already can stop the wifi from my phone and I feel like I have new negociations superpowers... Thanks Hernán ! That's a perfect fit :) On Thu, Sep 14, 2017 at 9:24 PM Hernán Morales Durand < hernan.mora...@gmail.com> wrote: > http://www.smalltalkhub.com/#!/~TorstenBergmann/Scheduler > > Cheers, > > Hernán > > 2017-09-13 17:36 GMT-03:00 Daniel BLANC : > > Hi All, > > > > I'm a very beginner with smalltalk. I am building a small seaside app for > > controlling wifi access of my teenagers kids. In this app I need to > start or > > stop the wifi acces at a given time. > > For the moment I'm doing it with an infinite loop in a process, with this > > code: > > > > WifiController >> startScheduler > > ^ SchedulerProcess > > ifNil: [ SchedulerProcess := [ [ true ] > > whileTrue: [ self schedulerApplyAutoStartStopRules. > > 56 seconds wait ] ] forkNamed: 'DanWifiManagerScheduler' ] > > > > > > I'm wondering if there is a way to do this without this infinite loop ? > May > > be there is a class in the standard pharo image that can execute a code > > block at a given time ? > > > > Thanks, > > Daniel > >