[Pharo-users] What can we look forward to in 2017?
Fellow Pharoers: What is the most exciting development in 2017 to look forward to? I'm asking for things to put into the end-of-year post in my "Make Smalltalk Great Again!" campaign. Thanks. -- View this message in context: http://forum.world.st/What-can-we-look-forward-to-in-2017-tp4926791.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] Hash collision
On 12/10/16 10:36 , Martin McClure wrote: On 12/09/2016 09:45 AM, Ben Coman wrote: The suggested fix depended on being willing to let go of byte ordering (which we might not want different results on different platforms) Float>>hash ^ByteArray hashBytes: self startingWith: self species hash This fix contains a good idea, but has at least two problems: 1) The check for integers is important, that's what makes sure that 1.0 has the same hash as 1. Which it must, since they compare equal. 2) #hashBytes:startingWith: is designed to hash *bytes*. A BoxedFloat64 is two *words*, which ensures that when you hashMultiply the high-order bits of each word get discarded. The high order bits of each word, yes. However, I would have expected the byte oriented code to be, basically, h := some constant. bytes do: [:x | h * 1644525 + x] or h := some constant. bytes do: [:x | h + x * 1644525] In either case, the sign bit in one of the x values should have made a difference. Apparently it didn't. What am I missing here? I tried implementing a hash that actually uses the bytes of the float (code at bottom of this message). I didn't do any real analysis of it, but at least it gives different answers for 0.5 and -0.5. I think it matches the *intent* of the code above (though would still need the integer check, which I didn't bother with). Side comment: equality between integers, floats, fractions and other numbers induces a desire to have equal hashes... in my opinion, the resulting complexity hard to justify. I see Squeak5's float hash has changed... Float>>hash "Squeak5" (self isFinite and: [self fractionPart = 0.0]) ifTrue: [^self truncated hash]. ^ ((self basicAt: 1) bitShift: -4) + ((self basicAt: 2) bitShift: -4) This is slightly better. It's only discarding eight bits out of 64, instead of discarding 32. But it would be better to mix all the bits into the hash. Yes. Note that all of these hash implementations end up manipulating at least one large integer most of the time, since each word can be a large integer. It's possible that a primitive to copy a word object into the equivalent bytes might speed things up somewhat. ... or use the byte oriented hash. "Strictly experimental method on BoxedFloat64, could probably be made faster even without a primitive." bytesHash | bytes word1 word2 | bytes := ByteArray new: 8. word1 := self basicAt: 1. word2 := self basicAt: 2. bytes at: 1 put: (word1 bitShift: -24). bytes at: 2 put: ((word1 bitShift: -16) bitAnd: 16rFF). bytes at: 3 put: ((word1 bitShift: -8) bitAnd: 16rFF). bytes at: 4 put: (word1 bitAnd: 16rFF). bytes at: 5 put: (word2 bitShift: -24). bytes at: 6 put: ((word2 bitShift: -16) bitAnd: 16rFF). bytes at: 7 put: ((word2 bitShift: -8) bitAnd: 16rFF). bytes at: 8 put: (word2 bitAnd: 16rFF). ^ ByteArray hashBytes: bytes startingWith: self class hash I would have expected the floats to be a byte object of size 8. Why is this conversion needed? Is somehow the primitive thinking the float has size 2? Or is the primitive hashing 32 bits at a time? The prim used to be a C version of the byte oriented 1644525 multiplicative hash, did this change? Andres.
[Pharo-users] NeoJSON will not install on Pharo5
NeoJSON will not install from package browser in Pharo5. Is there a work around? - Brad Selfridge -- View this message in context: http://forum.world.st/NeoJSON-will-not-install-on-Pharo5-tp4926797.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] What can we look forward to in 2017?
Hi, As an alternative to "most exciting developments for next year" I would propose "Mapping the place that Smalltalk/Pharo has for you". For example, if someone is interested in data driven storytelling, interactive documentation, reproducible research, and/or data activism, I would think that Grafoscopio[1] is a project to put into the radar. It's also a showcase of both, other Pharo technologies (Roassal, GT-Tools, STON, NeoJSON, WebBrowser, etc.) and, also, how Pharo ecosystem and community can empower learners. [1] http://mutabit.com/grafoscopio/index.en.html Of course others have their own bets about their own projects and why they're important and for who. So my approach would be to prepare kind of a short interview, with some questions that Pharo users/developers could answer to tell the story of their territory explorations on the map that Smalltalk/Pharo has for you. Cheers, Offray On 13/12/16 11:00, horrido wrote: Fellow Pharoers: What is the most exciting development in 2017 to look forward to? I'm asking for things to put into the end-of-year post in my "Make Smalltalk Great Again!" campaign. Thanks. -- View this message in context: http://forum.world.st/What-can-we-look-forward-to-in-2017-tp4926791.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] NeoJSON will not install on Pharo5
Hi Brad, You mean the catalog browser ? What error do you get, exactly ? You could try loading manually from one of its repositories (http://mc.stfx.eu/Neo or http://smalltalkhub.com/mc/SvenVanCaekenberghe/Neo/main). CI build matrix is all green https://ci.inria.fr/pharo-contribution/job/NeoCSV/ Sven > On 13 Dec 2016, at 18:12, Brad Selfridge wrote: > > NeoJSON will not install from package browser in Pharo5. Is there a work > around? > > > > - > Brad Selfridge > -- > View this message in context: > http://forum.world.st/NeoJSON-will-not-install-on-Pharo5-tp4926797.html > Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. >
Re: [Pharo-users] What can we look forward to in 2017?
On Wed, Dec 14, 2016 at 12:00 AM, horrido wrote: > Fellow Pharoers: What is the most exciting development in 2017 to look > forward to? I'm asking for things to put into the end-of-year post in my > "Make Smalltalk Great Again!" campaign. Thanks. > > Worthwhile 2016 news... - VM sources moved to git. Broadening of VM brand from historical SqueakVM to opensmalltalk-vm serving Squeak, Pharo, Cuis, Newspeak. Pharo 6 release due April 2017. - 64-bit!!! - Sista - adaptive method inlining at the bytecode level https://clementbera.wordpress.com/2014/01/09/the-sista-chronicles-i-an-introduction-to-adaptive-recompilation/ http://www.mirandabanda.org/cogblog/on-line-papers-and-presentations/ Pharo 7 - Iceberg UI interface to git http://www.esug.org/wiki/pier/Conferences/2016/Tuesday/1100-1130-Iceberg - Pharo workflow moving to git. http://forum.world.st/Notes-about-Pharo-6-release-and-new-process-for-Pharo-7-td4920100.html cheers -ben
Re: [Pharo-users] real world pharo web application set ups
Here is one I am really impressed with; I can't say just how much of it is Pharo: https://medium.com/concerning-pharo/pharo-beta-nine-59ee972d321a On Tue, Dec 13, 2016 at 12:00 PM, wrote: > -- > > Message: 1 > Date: Mon, 12 Dec 2016 19:16:26 +0100 > From: Volkert > To: Any question about pharo is welcome > Subject: [Pharo-users] real world pharo web application set ups > Message-ID: <7b7e6144-724f-1eb7-8033-8cfe87a34...@nivoba.de> > Content-Type: text/plain; charset=utf-8; format=flowed > > After reading reading "Enterprise Pharo a Web perspective", i am curious > to learn more about current real world pharo web application set ups. > any case studies or blue prints around? i am interested in application > domain, system architecture, infrastructure (HW/OS/DB), performance > goals (concurrent users, transactions, ...), system sizing, scalability > strategies, > > everything which could important to convince "me" to select pharo as a > platform for a saas solution ... > > Thanks, > Volkert > > > > >
Re: [Pharo-users] real world pharo web application set ups
On 12.12.2016 19:52, Norbert Hartl wrote: Am 12.12.2016 um 19:16 schrieb Volkert : After reading reading "Enterprise Pharo a Web perspective", i am curious to learn more about current real world pharo web application set ups. any case studies or blue prints around? i am interested in application domain, system architecture, infrastructure (HW/OS/DB), performance goals (concurrent users, transactions, ...), system sizing, scalability strategies, everything which could important to convince "me" to select pharo as a platform for a saas solution … What you really want to know? All the things you mentioned above are not pharo related at all! Can you at least roughly sketch in which area you would consider to use pharo? Norbert I like to know more about current real world pharo web application set up ... not more, not less. Think of a environmental information management system 5 User / 500 Concurrent Data Aggregation Data Refinement / Processing Data Visualization 15-20 Dataprovider Web UI
Re: [Pharo-users] real world pharo web application set ups
On 12.12.2016 20:05, Sven Van Caekenberghe wrote: Yes, it is a bit too wide a subject ;-) Anyway, all the cases you find at http://pharo.org/success are successful real-world deployments, but I am sure they are all quite different. i looked already, but there is a problem with the page. all screenshots/pictures have a wrong scaling ... On 12 Dec 2016, at 19:52, Norbert Hartl wrote: Am 12.12.2016 um 19:16 schrieb Volkert : After reading reading "Enterprise Pharo a Web perspective", i am curious to learn more about current real world pharo web application set ups. any case studies or blue prints around? i am interested in application domain, system architecture, infrastructure (HW/OS/DB), performance goals (concurrent users, transactions, ...), system sizing, scalability strategies, everything which could important to convince "me" to select pharo as a platform for a saas solution … What you really want to know? All the things you mentioned above are not pharo related at all! Can you at least roughly sketch in which area you would consider to use pharo? Norbert
Re: [Pharo-users] NeoJSON will not install on Pharo5
H. I just tried reloading NeoJSON on a Pharo5 image and it prompted me with the message that a newer version was found. I clicked proceed and it installed without errors. Not sure why this happened, but as long as it works. Thank you for your time. - Brad Selfridge -- View this message in context: http://forum.world.st/NeoJSON-will-not-install-on-Pharo5-tp4926797p4926814.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] real world pharo web application set ups
Volkert, I surely cannot help you with concrete answers. We are not even using Pharo for our Seaside App. All I've learned is that all of these questions are extremely hard to answer. Will Pharo or any other Server side technology scale? Forget it, nobody will be able to tell you the truth. What I've learnt so far is that this whole thing is mostly a question of distributing services between servers (images and external processes). Make things small and devidable. Load the number crunching off of your web facing image and build clever UIs that give good feedback about the progress of lengthy operations. If I tell you that my current estimate is that a Smalltalk image with Seaside will not be able to handle more than 20 concurrent users, in many cases even less. What does that actually tell you? YMMV based on the work that is done in that image, and there are so many influencing factors. If of these 20 users only 1 currently asks for heavy computation, this can already mean the server is slow for the other 19. Our Application is very different from what you describe: Accounting is mostly CRUD operations, which means there are not many things you can delegate to external programs or even servers. Your scenario sounds very different. It sounds like you can do the data aggregation and refinement part in a separate (maybe REST based and stateless) server and mostly render nice "wait, we're working for you" dialogs and present nice results once they're done. This scales wonderfully and the front-end web server mostly does nothing other than send out self-reloading please-wait pages. Such a server (image) can probably even handle 50 or more concurrent users. Thus you end up with several layers on which you can scale easily and mostly independently. If your aggreations are slow, add a few images that do the aggregations. So if your question is whether you can handle 500 concurrent users in Smalltalk or Pharo with Seaside, the answer is definitely YES. If you want to know how many Images are needed, how many servers you'd have to order, you'll probably not get any useful answers. My feeling is that you can't know exactly because every app is so different. There probably are just not enough projects out there to collect relevant data... Joachim Am 13.12.16 um 20:06 schrieb Volkert: On 12.12.2016 19:52, Norbert Hartl wrote: Am 12.12.2016 um 19:16 schrieb Volkert : After reading reading "Enterprise Pharo a Web perspective", i am curious to learn more about current real world pharo web application set ups. any case studies or blue prints around? i am interested in application domain, system architecture, infrastructure (HW/OS/DB), performance goals (concurrent users, transactions, ...), system sizing, scalability strategies, everything which could important to convince "me" to select pharo as a platform for a saas solution … What you really want to know? All the things you mentioned above are not pharo related at all! Can you at least roughly sketch in which area you would consider to use pharo? Norbert I like to know more about current real world pharo web application set up ... not more, not less. Think of a environmental information management system 5 User / 500 Concurrent Data Aggregation Data Refinement / Processing Data Visualization 15-20 Dataprovider Web UI
Re: [Pharo-users] real world pharo web application set ups
> On 13 Dec 2016, at 19:48, Joe Shirk wrote: > > Here is one I am really impressed with; I can't say just how much of it is > Pharo: > > https://medium.com/concerning-pharo/pharo-beta-nine-59ee972d321a Well, not all of it is Pharo, far from it, but currently we have about 20 Pharo images running in production, doing various jobs ranging from web apps to various back end application server tasks under real world load. Sven > On Tue, Dec 13, 2016 at 12:00 PM, wrote: > -- > > Message: 1 > Date: Mon, 12 Dec 2016 19:16:26 +0100 > From: Volkert > To: Any question about pharo is welcome > Subject: [Pharo-users] real world pharo web application set ups > Message-ID: <7b7e6144-724f-1eb7-8033-8cfe87a34...@nivoba.de> > Content-Type: text/plain; charset=utf-8; format=flowed > > After reading reading "Enterprise Pharo a Web perspective", i am curious > to learn more about current real world pharo web application set ups. > any case studies or blue prints around? i am interested in application > domain, system architecture, infrastructure (HW/OS/DB), performance > goals (concurrent users, transactions, ...), system sizing, scalability > strategies, > > everything which could important to convince "me" to select pharo as a > platform for a saas solution ... > > Thanks, > Volkert > > > >
Re: [Pharo-users] real world pharo web application set ups
> On 13 Dec 2016, at 20:07, Volkert wrote: > > > > On 12.12.2016 20:05, Sven Van Caekenberghe wrote: >> Yes, it is a bit too wide a subject ;-) >> >> Anyway, all the cases you find at http://pharo.org/success are successful >> real-world deployments, but I am sure they are all quite different. > i looked already, but there is a problem with the page. all > screenshots/pictures have a wrong scaling ... Hmm, they look fine on Safari and Google Chrome, but they seem off in Firefox - weird. >>> On 12 Dec 2016, at 19:52, Norbert Hartl wrote: >>> Am 12.12.2016 um 19:16 schrieb Volkert : After reading reading "Enterprise Pharo a Web perspective", i am curious to learn more about current real world pharo web application set ups. any case studies or blue prints around? i am interested in application domain, system architecture, infrastructure (HW/OS/DB), performance goals (concurrent users, transactions, ...), system sizing, scalability strategies, everything which could important to convince "me" to select pharo as a platform for a saas solution … >>> What you really want to know? All the things you mentioned above are not >>> pharo related at all! Can you at least roughly sketch in which area you >>> would consider to use pharo? >>> >>> Norbert >> > >
[Pharo-users] The Iceberg TechTalk recording
Hi, for those who couldn’t join us, this is the recording: https://www.youtube.com/watch?v=AuZAFfWS34w I think it was a great talk :) cheers, Esteban
Re: [Pharo-users] The Iceberg TechTalk recording
Ah, but you need to skip until minute 10 :P Esteban > On 13 Dec 2016, at 21:19, Esteban Lorenzano wrote: > > Hi, > > for those who couldn’t join us, this is the recording: > > https://www.youtube.com/watch?v=AuZAFfWS34w > > I think it was a great talk :) > > cheers, > Esteban
[Pharo-users] Modeling a join table
Hello, all. This question is not as much a question about smalltalk as one about modeling in smalltalk. I am currently writing an API using Teapot that will be serving up data about internet radio stations. I want to be able to let users tag the stations with arbitrary tags. Using a relational database, I would create an object like "Tagging" with foreign keys pointing to the "Stations" class and the "Tag" Class. It would have station_id and tag_id. If this was going to be even a tiny bit more complex, I would probably just make it a polymorphic association. My question is, how would I approach this in smalltalk? Would I just make methods on tag and station (and whatever else) that stored arrays of each other? Would I create an intermediary model like "Tagging" and have that do the heavy lifting? Ideas? Thanks!; peace, sergio photographer, journalist, visionary Public Key: http://bit.ly/29z9fG0 #BitMessage BM-NBaswViL21xqgg9STRJjaJaUoyiNe2dV http://www.Village-Buzz.com http://www.ThoseOptimizeGuys.com http://www.coffee-black.com http://www.painlessfrugality.com http://www.twitter.com/sergio_101 http://www.facebook.com/sergio101 signature.asc Description: Message signed with OpenPGP using AMPGpg
Re: [Pharo-users] The Iceberg TechTalk recording
Maybe we could try to edit the video? Is it possible? 2016-12-13 21:20 GMT+01:00 Esteban Lorenzano : > Ah, but you need to skip until minute 10 :P > > Esteban > > > On 13 Dec 2016, at 21:19, Esteban Lorenzano wrote: > > > > Hi, > > > > for those who couldn’t join us, this is the recording: > > > > https://www.youtube.com/watch?v=AuZAFfWS34w > > > > I think it was a great talk :) > > > > cheers, > > Esteban > >
Re: [Pharo-users] [Pharo-dev] The Iceberg TechTalk recording
you can add an annotation for the first 10 minutes that links directly to the time the techtalk actually starts you can also link to the precise time like this https://youtu.be/AuZAFfWS34w?t=598 you can get this link by pushing the playback cursor to the time you want to link and then right click and choose Copy URL at current time On Tue, Dec 13, 2016 at 11:57 PM Nicolas Passerini wrote: > Maybe we could try to edit the video? Is it possible? > > 2016-12-13 21:20 GMT+01:00 Esteban Lorenzano : > > Ah, but you need to skip until minute 10 :P > > Esteban > > > On 13 Dec 2016, at 21:19, Esteban Lorenzano wrote: > > > > Hi, > > > > for those who couldn’t join us, this is the recording: > > > > https://www.youtube.com/watch?v=AuZAFfWS34w > > > > I think it was a great talk :) > > > > cheers, > > Esteban > > >
Re: [Pharo-users] Hash collision
On 12/13/2016 08:39 AM, Andres Valloud wrote: > I would have expected the floats to be a byte object of size 8. Why is > this conversion needed? Is somehow the primitive thinking the float has > size 2? Or is the primitive hashing 32 bits at a time? The prim used > to be a C version of the byte oriented 1644525 multiplicative hash, did > this change? The float is not a byte object of size 8, it's a word object of size 2. When you feed it to #hashBytes:startingWith: the primitive fails. (I didn't look at why -- maybe because it isn't a byte object?) The alternative Smalltalk code treats it like it was a byte object, even though it's not. So it iterates through the two words, multiplying each by 1664525, then keeping only the low-order 28 bits of the result. But since each word is a full 32 bits, the high-order four bits of each word, which include the sign bit, can never affect the hash. Regards, -Martin
Re: [Pharo-users] Hash collision
Oh, ok... then the failure code isn't doing what was intended :). On 12/13/16 15:16 , Martin McClure wrote: On 12/13/2016 08:39 AM, Andres Valloud wrote: I would have expected the floats to be a byte object of size 8. Why is this conversion needed? Is somehow the primitive thinking the float has size 2? Or is the primitive hashing 32 bits at a time? The prim used to be a C version of the byte oriented 1644525 multiplicative hash, did this change? The float is not a byte object of size 8, it's a word object of size 2. When you feed it to #hashBytes:startingWith: the primitive fails. (I didn't look at why -- maybe because it isn't a byte object?) The alternative Smalltalk code treats it like it was a byte object, even though it's not. So it iterates through the two words, multiplying each by 1664525, then keeping only the low-order 28 bits of the result. But since each word is a full 32 bits, the high-order four bits of each word, which include the sign bit, can never affect the hash. Regards, -Martin
Re: [Pharo-users] What can we look forward to in 2017?
Wow! These *are* exciting. Thanks! Ben Coman wrote > Pharo 6 release due April 2017. > - 64-bit!!! > - Sista - adaptive method inlining at the bytecode level > > https://clementbera.wordpress.com/2014/01/09/the-sista-chronicles-i-an-introduction-to-adaptive-recompilation/ >http://www.mirandabanda.org/cogblog/on-line-papers-and-presentations/ > > Pharo 7 > - Iceberg UI interface to git > > http://www.esug.org/wiki/pier/Conferences/2016/Tuesday/1100-1130-Iceberg > - Pharo workflow moving to git. > > http://forum.world.st/Notes-about-Pharo-6-release-and-new-process-for-Pharo-7-td4920100.html > > > cheers -ben -- View this message in context: http://forum.world.st/What-can-we-look-forward-to-in-2017-tp4926791p4926841.html Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.
Re: [Pharo-users] What can we look forward to in 2017?
On Wed, Dec 14, 2016 at 8:11 AM, horrido wrote: > Wow! These *are* exciting. Thanks! > > > Ben Coman wrote > > Pharo 6 release due April 2017. > > - 64-bit!!! > Actually to be specific, this is the 64-bit JIT'ed Cog VM, as distinct from the old 64-bit Interpreter VM [1] circa 2010 that I've seen people on discussion boards confuse. [1] http://www.squeakvm.org/squeak64/ cheers -ben > > - Sista - adaptive method inlining at the bytecode level > > > > https://clementbera.wordpress.com/2014/01/09/the-sista- > chronicles-i-an-introduction-to-adaptive-recompilation/ > >http://www.mirandabanda.org/cogblog/on-line-papers-and-presentations/ > > > > Pharo 7 > > - Iceberg UI interface to git > > > > http://www.esug.org/wiki/pier/Conferences/2016/Tuesday/1100-1130-Iceberg > > - Pharo workflow moving to git. > > > > http://forum.world.st/Notes-about-Pharo-6-release-and-new- > process-for-Pharo-7-td4920100.html > > > > > > cheers -ben > > > > > > -- > View this message in context: http://forum.world.st/What- > can-we-look-forward-to-in-2017-tp4926791p4926841.html > Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. > >
Re: [Pharo-users] What can we look forward to in 2017?
+1 On Tue, Dec 13, 2016 at 6:41 PM, Offray Vladimir Luna Cárdenas < offray.l...@mutabit.com> wrote: > Hi, > > As an alternative to "most exciting developments for next year" I would > propose "Mapping the place that Smalltalk/Pharo has for you". For example, > if someone is interested in data driven storytelling, interactive > documentation, reproducible research, and/or data activism, I would think > that Grafoscopio[1] is a project to put into the radar. It's also a > showcase of both, other Pharo technologies (Roassal, GT-Tools, STON, > NeoJSON, WebBrowser, etc.) and, also, how Pharo ecosystem and community can > empower learners. > > [1] http://mutabit.com/grafoscopio/index.en.html > > Of course others have their own bets about their own projects and why > they're important and for who. > > So my approach would be to prepare kind of a short interview, with some > questions that Pharo users/developers could answer to tell the story of > their territory explorations on the map that Smalltalk/Pharo has for you. > > Cheers, > > Offray > > > > On 13/12/16 11:00, horrido wrote: > >> Fellow Pharoers: What is the most exciting development in 2017 to look >> forward to? I'm asking for things to put into the end-of-year post in my >> "Make Smalltalk Great Again!" campaign. Thanks. >> >> >> >> -- >> View this message in context: http://forum.world.st/What-can >> -we-look-forward-to-in-2017-tp4926791.html >> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. >> >> >> > >