On 01/13/2017 01:01 PM, Dimitris Chloupis wrote:
> For example Ben recently posted a very nice guide for UFFI. Hi, where do i find Bens blog? i think it is not mentioned at http://pharo.org/web/blogs . btw another very informative blog about pharo, not mentioned there, is Peters https://www.peteruhnak.com/blog/ werner |
Oh, and then there are really helpful articles on medium
> Am 13.01.2017 um 13:54 schrieb werner kassens <[hidden email]>: > >> On 01/13/2017 01:01 PM, Dimitris Chloupis wrote: >> For example Ben recently posted a very nice guide for UFFI. > > Hi, > where do i find Bens blog? i think it is not mentioned at http://pharo.org/web/blogs . > btw another very informative blog about pharo, not mentioned there, is Peters https://www.peteruhnak.com/blog/ > werner > > > |
In reply to this post by wernerk
here you go
http://blog.openinworld.com/author/admin/ On Fri, Jan 13, 2017 at 2:55 PM werner kassens <[hidden email]> wrote: On 01/13/2017 01:01 PM, Dimitris Chloupis wrote: |
In reply to this post by jtuchel
Yes Sven posts some really nice pharo articles in his medium blog from time to time
https://medium.com/concerning-pharo On Fri, Jan 13, 2017 at 3:00 PM Joachim Tuchel <[hidden email]> wrote: Oh, and then there are really helpful articles on medium |
> On 13 Jan 2017, at 14:17, Dimitris Chloupis <[hidden email]> wrote: > > Yes Sven posts some really nice pharo articles in his medium blog from time to time > > https://medium.com/concerning-pharo 'Concerning Pharo' is what is called a 'Publication' on Medium.com, it is a grouping of articles by multiple authors. Most are mine, and I am the owner/editor, but I am very happy that others allowed me to include their great articles as well: - Torsten Bergmann - Julien Delplanque - Stephan Eggermont I hope that others will join: it is very easy and very pleasant to write an article on Medium.com, but above all it is very important that more long form documentation about Pharo gets written and promoted. Sven > On Fri, Jan 13, 2017 at 3:00 PM Joachim Tuchel <[hidden email]> wrote: > Oh, and then there are really helpful articles on medium > > > Am 13.01.2017 um 13:54 schrieb werner kassens <[hidden email]>: > > > >> On 01/13/2017 01:01 PM, Dimitris Chloupis wrote: > >> For example Ben recently posted a very nice guide for UFFI. > > > > Hi, > > where do i find Bens blog? i think it is not mentioned at http://pharo.org/web/blogs . > > btw another very informative blog about pharo, not mentioned there, is Peters https://www.peteruhnak.com/blog/ > > werner > > > > > > > > |
In reply to this post by kilon.alios
Hi, On custom searches, I know that duckduckgo[1] has a program for
developers. Now is focused on popular languages, but maybe we
could put our own search button in pharo.org to provide that
custom search that harvest the Pharo community intelligence. That
could be a project for a small Pharo hackathon. On ransomware (I will hold the data you provide me until you pay), yes, the problem was that we did not start to use FLOSS alternatives before, mostly because of the effort to setup and maintain them and migration is costly now. As a small community, addressing that problems to have our own infrastructure (or scrapping others infrastructure) is expensive, so we're using gratis infrastructure that cost our collective memory in the long term. On STHub, fortunately is live enough to let some of us being productive without the noise of git in front. Cheers, Offray On 13/01/17 07:01, Dimitris Chloupis
wrote:
|
> On 14 Jan 2017, at 00:48, Offray Vladimir Luna Cárdenas <[hidden email]> wrote: > > On STHub, fortunately is live enough to let some of us being productive without the noise of git in front. So true. Let's stop bashing StHub: it works fine for 1000s of projects. I know we are building something new and I am all for it, but as long as it is not as user friendly as Monticello (all operations clean and simple in Pharo, reliably) we are not there yet. The point is: we all know how to use git, but most Pharo developers don't want to deal with file based Pharo code, at all, ever. Sven |
I fail to see what is user friendly about Monticello , I find its GUI and the total workflow really bad, certainly the worst VCS GUI I have ever used. But I will admit this is my personal taste and my opinion that can be safely ignore. StHub on the other hand is whole different situation. My criticism about StHub unlike Monticello are not opinion based, they are fact based, StHub is unmaintaned , with the usual failures prompting Esteban to reset the whole thing and lacking the most fundamental features like a sophisticated search facility and any form of browsing. I could go on, but I think the shortcomings are obvious. That's no bashing, its a statement of facts. On Sat, Jan 14, 2017 at 11:10 AM Sven Van Caekenberghe <[hidden email]> wrote:
|
> On 14 Jan 2017, at 12:58, Dimitris Chloupis <[hidden email]> wrote: > > I fail to see what is user friendly about Monticello , I find its GUI and the total workflow really bad, certainly the worst VCS GUI I have ever used. But I will admit this is my personal taste and my opinion that can be safely ignore. That is your opinion and you are entitled to it, but I am pretty sure you don't speak for the majority of Smalltalk users in general. I don't understand what is bad about MC in the IDE: your code is easily put in packages, you look at changes at the method and class definition level, you compare and commit, look at incoming changes and that's it. Merging is just as easy or difficult as anywhere else. Is it perfect ? Does it have all features ? No, of course not. Remember that we have total control over its model and implementation in code. > StHub on the other hand is whole different situation. > > My criticism about StHub unlike Monticello are not opinion based, they are fact based, StHub is unmaintaned , with the usual failures prompting Esteban to reset the whole thing and lacking the most fundamental features like a sophisticated search facility and any form of browsing. I could go on, but I think the shortcomings are obvious. That's no bashing, its a statement of facts. It is true that StHub is not actively maintained, but that does not change the fact that it just works. Indeed certain features were/are missing, nothing is perfect. Given the load is has to endure it is pretty stable (remember that SqueakSource collapsed under the Pharo load) even if it needs an occasional reset. Do I want something better ? Sure, people are working on that. > On the subject of file based code, I wonder what you use for Pharo VCS because the default Pharo VCS is basically zip (mcz extension) files containing source code files , the usual text files with the "st" extension. If you mean the fact of actually worrying about the files themselves, the only worrying you do with Git is for the gitignore file (if you actually use one) that basically there can be listed what files or directories should be ignored by Git. The rest are done automagically by Filetree, GitFileTree or in my case my Git GUI client. No normal user looks or needs to look inside .mcz files. That is the whole point, it is based on a model/abstraction visible/manipulated in the IDE only. Again, I know git, I use git, even for Pharo. But the current approach is not good enough and it is far from stable or user friendly enough for prime time (I don't mean that git, GitHub or any other git tool is not good, I am talking about the interface with the Pharo IDE and workflow). Here is an example. I have this pull request open https://github.com/svenvc/ston/pull/17/files it is so big, changes so much that I cannot even begin figuring out what happened. I want my in-IDE tools that understand Smalltalk. One day (soon) the new tools (Iceberg ?) will allow me to do that, allow me to see git as just an opaque back end, allow me to remain inside the Pharo IDE (again, not that I can not or do not work in a terminal, far from it, I just don't want to for my Pharo workflow). Still, MC and its classic repositories will remain with us for a long time. > I also never said "Do not use Pharo VCS" , if that is what rocks your boat, but to actual claim that Pharo VCS is more reliable, easier to use and more powerful would require a huge leap of faith because from the very first experience it pretty crystal clear that is not. > > And there is not just Git, there are plenty of other VCS out there that are just light years ahead, some probably better than Git. I disagree. > But I have no problem if some people prefer to use the old VCS instead of Git. I am not here to impose my workflow and I never stated that we should. > > As a matter of fact I do not mind any choice the community makes as long as I have freedom to choose my own tools and my own workflow. I am pretty sure all options will remain open. > On Sat, Jan 14, 2017 at 11:10 AM Sven Van Caekenberghe <[hidden email]> wrote: > > > On 14 Jan 2017, at 00:48, Offray Vladimir Luna Cárdenas <[hidden email]> wrote: > > > > On STHub, fortunately is live enough to let some of us being productive without the noise of git in front. > > So true. > > Let's stop bashing StHub: it works fine for 1000s of projects. I know we are building something new and I am all for it, but as long as it is not as user friendly as Monticello (all operations clean and simple in Pharo, reliably) we are not there yet. > > The point is: we all know how to use git, but most Pharo developers don't want to deal with file based Pharo code, at all, ever. > > Sven |
On Sat, Jan 14, 2017 at 3:21 PM Sven Van Caekenberghe <[hidden email]> wrote:
The only way to know for sure is to do some form of survey, but as I said its my opinion. Even if others agree with me, we still may have different opinions. I don't understand what is bad about MC in the IDE: your code is easily put in packages, you look at changes at the method and class definition level, you compare and commit, look at incoming changes and that's it. Merging is just as easy or difficult as anywhere else. My reason for not liking Monticello a) GUI looks ugly b) GUI opens needless windows (a generic Pharo problem) c) No syntax highlighting in case of Browsing online code (diffs, changes etc) d) No visualization of the commit history. e) the usual problems with documentation f) No easy undo functionality g) Need to press a refresh button for monticello to be kept up to date h) Monticello contacts irrelevant online repos even for local commits, as a result a slow connection can freeze the image (WTF) i) No clear indication of where the history branches and where it merges and the list goes on , but those are the main I wonder even if Monticello improved at all since Pharo forked from Squeak. It is true that StHub is not actively maintained, but that does not change the fact that it just works. Indeed certain features were/are missing, nothing is perfect. Given the load is has to endure it is pretty stable (remember that SqueakSource collapsed under the Pharo load) even if it needs an occasional reset. "nothing is perfect" is a lousy excuse and a cliche. Yes it works but this is not the image I think that will inspire newcomers to use Pharo. Remember we have to compete with languages like Ruby and Python . Here is an example. I have this pull request open One sec... one sec are you trying to tell me that this a good commit ? https://github.com/svenvc/ston/pull/17/commits/5c03481aeda7804317e6d9efbb761399fe0e7b67 seriously ? 84 files changed in ONE commit ? seriously ? please do not blame Git if you guys have terrible workflows. This would be even bigger mess with the Pharo VCS . But this definitely not a good way to use Git or any VCS. Let be serious here, I know you guys love Smalltalk But common A bit of common sense would not hurt. If someone have sent me such a pull request I would have rejected it in an instant without even looking at the code. But if you guys like to deal with this kind of mess inside the Pharo image, be my guest. I prefer the Git way of using Git and not the "whatever" way and avoid the mess as much as possible. One day (soon) the new tools (Iceberg ?) will allow me to do that, allow me to see git as just an opaque back end, allow me to remain inside the Pharo IDE (again, not that I can not or do not work in a terminal, far from it, I just don't want to for my Pharo workflow) So basically the mentality here is "give me Iceberg so I do not have to learn Git or work like Git" , yeah good luck with that one. I am not against Iceberg but I am sure it will be used as an excuse , like with many other things to bash Git and other non-Smalltalk technologies, each time it fails. You already compare Iceberg with using Git from the terminal. Of course you will not mention SourceTree , GitUP, SmartGit , GitKraken and a ton of other brilliant Git GUIs . Hell even Github offers its own Git GUI client that makes using Git a breeze. I think you greatly overestimate the opinion that people have about Smalltalk, I can assure you its both positive and negative and VCS falls under the negative category. I would like to see a community that treats Smalltalk not as the holy grail. The pull request example you used against Pharo and Git shows exactly this kind of attitude , taking extremely bad situations that can be easily be avoided as an excuse to present Smalltalk as "the superior tool". And when people do not bite the bait, you blame Smalltalk and emphasize that Pharo is not really Smalltalk but Smalltalk inspired. I have never been part of this ideology and will never going to be. You guys are amazing and building a great tools, but in so many cases you just lose touch with reality. You ask me how many Smalltalkers agree with me, let me ask you how many coders in general you think would agree with you ? I am trying to avoid having this kind of discussions but on the other hand I do not think all this denial is a good thing for Pharo. Another thing I like to stress here, is that your goal to create a self contained enviroment fully implemented in Smalltalk sorry I meant Pharo, will not happens. Gone are the times of 70, 80s and even 90s that a simple GUI could cut it. Nowdays a modern coder uses a vast array of tools at his arsenal because coding has become very complex to accomodate the high expectations of modern users. We do not have the time, the money or the community to build a tool that can compete on equal terms with the ocean of tools that exist out there. People do not use Git because they cannot use far simpler VCS , of course not. They use because they know that projects grow and demands changes and the time comes that they wish they have picked Git in the first place because the more the project grows the more difficult it becomes to switch VCS. |
In reply to this post by kilon.alios
Hi,
On 14/01/17 06:58, Dimitris Chloupis wrote: [...] > > I also never said "Do not use Pharo VCS" , if that is what rocks your > boat, but to actual claim that Pharo VCS is more reliable, easier to > use and more powerful would require a huge leap of faith because from > the very first experience it pretty crystal clear that is not. > > And there is not just Git, there are plenty of other VCS out there > that are just light years ahead, some probably better than Git. > [...] In our case, with field work with not programmers and newbies, I can tell there is no leap of faith at all. We have been using external DVCs and internal ones. The workflow with the later is simpler, they don't see anything about reliability or difficult. Just update and commit (fossil is similar in someway). Maybe is the small scale of the project or the local community, but in this context, git has been really obtrusive, while StHub for code and fossil for files are not. Cheers, Offray |
fair enough, its a free world :) On Sat, Jan 14, 2017 at 4:58 PM Offray Vladimir Luna Cárdenas <[hidden email]> wrote: Hi, |
In reply to this post by kilon.alios
We disagree, I should not have responded.
Eclipse, IntelliJ, Emacs and so many other IDEs with massive user bases all try to make things nice and easy to use inside their own IDE, to give developers a cool, intelligent, language aware workflow. Of course Pharo wants to do the same without being an island. Pharo/Smalltalk will never become a flat file based language. And yes, the pull request example was too big, but if it is only two minor changes, any tool will do, if it is complex, all tools suffer, that is my opinion. About your list of points: > My reason for not liking Monticello > a) GUI looks ugly Is an opinion > b) GUI opens needless windows (a generic Pharo problem) Is an opinion > c) No syntax highlighting in case of Browsing online code (diffs, changes etc) An annoyance, not impossible to fix > d) No visualization of the commit history. Ok > e) the usual problems with documentation Not directly relevant here > f) No easy undo functionality Ok > g) Need to press a refresh button for monticello to be kept up to date An implementation detail > h) Monticello contacts irrelevant online repos even for local commits, as a result a slow connection can freeze the image (WTF) It can be turned off, but yes it is annoying, although the reason for this behaviour can be explained I also don't like this. > i) No clear indication of where the history branches and where it merges Same as d) This biggest issue is that it is not easy to get standard resources inside MC. > On 14 Jan 2017, at 15:14, Dimitris Chloupis <[hidden email]> wrote: > > > > On Sat, Jan 14, 2017 at 3:21 PM Sven Van Caekenberghe <[hidden email]> wrote: > > > On 14 Jan 2017, at 12:58, Dimitris Chloupis <[hidden email]> wrote: > > > > I fail to see what is user friendly about Monticello , I find its GUI and the total workflow really bad, certainly the worst VCS GUI I have ever used. But I will admit this is my personal taste and my opinion that can be safely ignore. > > That is your opinion and you are entitled to it, but I am pretty sure you don't speak for the majority of Smalltalk users in general. > > > The only way to know for sure is to do some form of survey, but as I said its my opinion. Even if others agree with me, we still may have different opinions. > > I don't understand what is bad about MC in the IDE: your code is easily put in packages, you look at changes at the method and class definition level, you compare and commit, look at incoming changes and that's it. Merging is just as easy or difficult as anywhere else. > > > My reason for not liking Monticello > a) GUI looks ugly > b) GUI opens needless windows (a generic Pharo problem) > c) No syntax highlighting in case of Browsing online code (diffs, changes etc) > d) No visualization of the commit history. > e) the usual problems with documentation > f) No easy undo functionality > g) Need to press a refresh button for monticello to be kept up to date > h) Monticello contacts irrelevant online repos even for local commits, as a result a slow connection can freeze the image (WTF) > i) No clear indication of where the history branches and where it merges > > and the list goes on , but those are the main > > I wonder even if Monticello improved at all since Pharo forked from Squeak. > > It is true that StHub is not actively maintained, but that does not change the fact that it just works. Indeed certain features were/are missing, nothing is perfect. Given the load is has to endure it is pretty stable (remember that SqueakSource collapsed under the Pharo load) even if it needs an occasional reset. > > "nothing is perfect" is a lousy excuse and a cliche. Yes it works but this is not the image I think that will inspire newcomers to use Pharo. > > Remember we have to compete with languages like Ruby and Python . > > Here is an example. I have this pull request open > > https://github.com/svenvc/ston/pull/17/files > > it is so big, changes so much that I cannot even begin figuring out what happened. I want my in-IDE tools that understand Smalltalk. > > > One sec... one sec > are you trying to tell me that this a good commit ? > https://github.com/svenvc/ston/pull/17/commits/5c03481aeda7804317e6d9efbb761399fe0e7b67 > > seriously ? > > 84 files changed in ONE commit ? > > seriously ? > > please do not blame Git if you guys have terrible workflows. This would be even bigger mess with the Pharo VCS . > > But this definitely not a good way to use Git or any VCS. > > Let be serious here, I know you guys love Smalltalk > But common > A bit of common sense would not hurt. > If someone have sent me such a pull request I would have rejected it in an instant without even looking at the code. > > But if you guys like to deal with this kind of mess inside the Pharo image, be my guest. I prefer the Git way of using Git and not the "whatever" way and avoid the mess as much as possible. > > One day (soon) the new tools (Iceberg ?) will allow me to do that, allow me to see git as just an opaque back end, allow me to remain inside the Pharo IDE (again, not that I can not or do not work in a terminal, far from it, I just don't want to for my Pharo workflow) > > So basically the mentality here is "give me Iceberg so I do not have to learn Git or work like Git" , yeah good luck with that one. > > I am not against Iceberg but I am sure it will be used as an excuse , like with many other things to bash Git and other non-Smalltalk technologies, each time it fails. > > You already compare Iceberg with using Git from the terminal. Of course you will not mention SourceTree , GitUP, SmartGit , GitKraken and a ton of other brilliant Git GUIs . Hell even Github offers its own Git GUI client that makes using Git a breeze. > > I think you greatly overestimate the opinion that people have about Smalltalk, I can assure you its both positive and negative and VCS falls under the negative category. I would like to see a community that treats Smalltalk not as the holy grail. > > The pull request example you used against Pharo and Git shows exactly this kind of attitude , taking extremely bad situations that can be easily be avoided as an excuse to present Smalltalk as "the superior tool". > > And when people do not bite the bait, you blame Smalltalk and emphasize that Pharo is not really Smalltalk but Smalltalk inspired. > > I have never been part of this ideology and will never going to be. > > You guys are amazing and building a great tools, but in so many cases you just lose touch with reality. > > You ask me how many Smalltalkers agree with me, let me ask you how many coders in general you think would agree with you ? > > I am trying to avoid having this kind of discussions but on the other hand I do not think all this denial is a good thing for Pharo. > > Another thing I like to stress here, is that your goal to create a self contained enviroment fully implemented in Smalltalk sorry I meant Pharo, will not happens. > Gone are the times of 70, 80s and even 90s that a simple GUI could cut it. Nowdays a modern coder uses a vast array of tools at his arsenal because coding has become very complex to accomodate the high expectations of modern users. We do not have the time, the money or the community to build a tool that can compete on equal terms with the ocean of tools that exist out there. > > People do not use Git because they cannot use far simpler VCS , of course not. They use because they know that projects grow and demands changes and the time comes that they wish they have picked Git in the first place because the more the project grows the more difficult it becomes to switch VCS. |
We agree that we disagree, that's ok , we all have our own ways we like to work. On Sat, 14 Jan 2017 at 17:08, Sven Van Caekenberghe <[hidden email]> wrote: We disagree, I should not have responded. |
In reply to this post by kilon.alios
On 14/01/17 09:14, Dimitris Chloupis
wrote:
[...] [...] And in the live coding and moldability camp the competition goes pretty well (Ruby has Sonic Pi, Python has Jupyter, for other audience, but none of those are as moldable as Pharo or bring so much liveness to coding, and not all competition is for the soul and heart of developers, there is a wider world were we can offer a pretty interesting value proposal
I agree with not having git in front. So yes, I will wait for Iceberg and will use StHub as much as I can. I share that Smalltalk and Pharo need to be less insular, by supporting external technologies and formats (git, markdown, etc), but the experience should be as smooth as possible and we need ways to map the live coding experience to that external world.
I don't know if denial is the proper world. I have said before I do not want become part of a holy war anytime someone mentions a DVCS that is not git or markup that is no pillar and so on, but I think that we, as a community are getting better at increasing diversity, despite of our own passion for some technologies. I don't think that the proper way is fully implementing all in Smalltalk, but "internalizing" the environment in the language as much as we can (in a similar way to Racket people). FileSystem or ZipArchive are a good examples of how to talk with the environment while being inside Pharo making the OS invisible for the user and with a smoother experience. "Internalizing" the environment in the language is the key to keep community and technologies diverse, while keeping the fluid experience of live coding in Pharo. Cheers, Offray
|
In reply to this post by kilon.alios
Hi Dimitris,
i as a simple user tend to think about these things in simple terms: i download a program, add something, upload my addition. lets take an upload step, _one_ simple step with monticello: i upload something once (git add), i upload it a second time (git commit), i upload it a third time (git push), i try to upload it a fourth time (pull request), only then i'm done (yes, there are possible shortcuts but so what). i'm sure all this makes sense for the seasoned coder, but i certainly won't learn that. <friendly grin> just as a small example how a user like me thinks about this. werner On 01/14/2017 03:14 PM, Dimitris Chloupis wrote:
|
Administrator
|
In reply to this post by Sven Van Caekenberghe-2
+1. I was concerned from the beginning that our conversations would get more fragmented. I rarely have time to check slack and the mailing list recently seems to be missing quite a bit of deliberation that's happening elsewhere. My 2c
Cheers,
Sean |
On Sun, 15 Jan 2017 06:22:59 +0100, Sean P. DeNigris
<[hidden email]> wrote: > Sven Van Caekenberghe-2 wrote >> so it is not a good idea for an open source project, as I feared. > > +1. I was concerned from the beginning that our conversations would get > more > fragmented. I rarely have time to check slack and the mailing list > recently > seems to be missing quite a bit of deliberation that's happening > elsewhere. I agree same for me. I cannot be connected all the time. I prefer emails because I can consume them the way I want. Stef > > My 2c > > > > ----- > Cheers, > Sean > -- > View this message in context: > http://forum.world.st/Google-visibility-tp4929414p4929660.html > Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. > -- Using Opera's mail client: http://www.opera.com/mail/ |
Steph, Sven, Sean and everybody else,
Am 15.01.17 um 09:41 schrieb stepharong: > On Sun, 15 Jan 2017 06:22:59 +0100, Sean P. DeNigris > <[hidden email]> wrote: > >> Sven Van Caekenberghe-2 wrote >>> so it is not a good idea for an open source project, as I feared. >> >> +1. I was concerned from the beginning that our conversations would >> get more >> fragmented. I rarely have time to check slack and the mailing list >> recently >> seems to be missing quite a bit of deliberation that's happening >> elsewhere. > > > I agree same for me. > I cannot be connected all the time. I prefer emails because I can > consume them the way I want. And that's exactly why I still like the usenet: I can read/answer whenever I want, using my mail client (opera, thunderbird) and all is archived and can be searched from within the mail client or by a search engine, Usenet is a central place, accessible to anybody, anytime, and you don't have to search for mailing lists and go through strange opt-in/out mail exchanges, What was actually wrong with comp.lang.smalltalk and subforums that could only be fixed by opening new sites and mailing lists and whatnot that more or less all look abandoned these days? Joachim |
In reply to this post by Sven Van Caekenberghe-2
On Sat, 14 Jan 2017 10:09:02 +0100, Sven Van Caekenberghe <[hidden email]>
wrote: > >> On 14 Jan 2017, at 00:48, Offray Vladimir Luna Cárdenas >> <[hidden email]> wrote: >> >> On STHub, fortunately is live enough to let some of us being productive >> without the noise of git in front. > > So true. > > Let's stop bashing StHub: it works fine for 1000s of projects. I know we > are building something new and I am all for it, but as long as it is not > as user friendly as Monticello (all operations clean and simple in > Pharo, reliably) we are not there yet. > > The point is: we all know how to use git, but most Pharo developers > don't want to deal with file based Pharo code, at all, ever. + 10000 And so far we deliver and I would add that I appreciate particularly when I see code commits for improvements instead of just rants. > > Sven -- Using Opera's mail client: http://www.opera.com/mail/ |
Free forum by Nabble | Edit this page |