Hi, Is nice to see this thread.
Our approach to building documentation is a problem/local first one. So we go from particular problems/projects as need of the community dictate them. We do workshops and create the documentation while the workshop is happening and then we compile such documentation in booklets (see for example Documentathon: Agile and resilient tools and techniques to write and publish together -- In Spanish [1]). Is similar to the book sprints[1a] but we did a parallel development without knowing them. We use CodiMD[2] for collaborative workshop note taking and then we combine Pandoc, Markdeep[3], Fossil[4] and others with Pharo and Grafoscopio to create the publication and collaborate on it asynchronously. This problem based approach means that we are kind of intermediate level oriented by design and tt also means that we have gaps in our knowledge (particularly on the TDD front), as we have learn as we go/need. We are combining stuff from data and file (STON, JSON, FileLocator) serialization and manipulation and also calling external programs and scheduling taks (OSSubprocess, TaskIt), making visualizations (Roassal) and coming with solutions on how to combine such technologies to solve/easy the tasks at hand and making compelling arguments to (h)ac(k)tivists, researchers or/and journalist (see for example the Panama Papers as reproducible research[5] or domain specific visualizations for governments medicine information[5a]). All this is powered by Pharo technologies and communities, but I think that we still can make a compelling case for wider audiences about Pharo and making it more visible. Now with Covid, the need for self/autonomous publishing is becoming more visible again, as educators, activists, communities are turning to more activities online and also need more autonomy over their online presence beyond what is provided by oligopolistic providers. So we're going to start a series of workshops on agile and resilient Indie Web[6] with Pharo, building blogs, wikis and portfolios with it (and Fossil, Markdeep, etc), using Pharo for orchestration and articulation of other technologies, but making it more visible also (as agility and resilience are not properties of the overcomplicated web of today). Usually I try to bootstrap the problem solving environment, so probably the web presences we build in the the workshops (starting on August 15th) will serve to document and share the experience. The workshops will be given in Spanish (I'll share the invitation in the Pharo Spanish discord channel), because of our local first approach, but the software we develop to support the experience will be useful to non Spanish speakers also. So I hope this contribute to showcase the Pharo usage in solving intermediate ("real life") level problems and even to involve non Spanish speakers with code reviews and testing, making suggestions and helping us to improve the software engineering parts behind such problems/projects, as I greatly appreciate the experience and teachings of this community. I'll keep you informed. Cheers, Offray [1] https://mutabit.com/repos.fossil/documentaton/ [1a] https://en.wikipedia.org/wiki/Book_sprint [2] https://demo.codimd.org/ [3] https://casual-effects.com/markdeep/ [4] https://fossil-scm.org/ [5] https://mutabit.com/offray/blog/en/entry/panama-papers-1 [5a] https://mutabit.com/offray/blog/en/entry/sdv-infomed [6] https://indieweb.org/ On 2/08/20 12:51 p. m., tbrunz wrote: >>> I've been thinking lately that it would be nice to expand the number of >>> Pharo tutorials we have available. But rather than (or along with) >>> creating >>> more "beginner" level tutorials, I'd like to see some good "intermediate" >>> level Pharo tutorials. >> Me too :) > Let's do it, then. I'll volunteer to do most of the work. :^) > > My hope is that participating in this will make me capable of creating > advanced tutorials all by myself. > >>> I think that programmers who already know the Pharo >>> syntax and messaging semantics could benefit from more advanced tutorials >>> that demonstrate how to develop "real world" Pharo code for "real world" >>> processing needs. >> Yes yes I would love that. > That was part of my motivation for creating a Pharo app to solve the Zebra > Puzzle. First, of course, I wanted to solve it. ;^) > >>> What I'm talking about is something that assumes you know the language, >>> the >>> basics of the IDE (but not necessarily how to leverage its capabilities >>> to >>> aid development), and the basics of the foundation classes (but not its >>> details). I'd like a tutorial for intermediate Pharo programmers who >>> want >>> to become experts with Pharo. Something that can show you how to apply >>> the >>> tools of the IDE and the features of the language and base classes to >>> create >>> solutions that solve complex problems. >> do you have ideas? > I do! > > As I started building the Logic Puzzle app, it occurred to me that I could > probably find several different, common structures in OOP (specifically, > Pharo) to add to the solution. And then each would be its own example of > "what real Pharo code looks like". I.e., be good examples. > > But first, I needed to explore "how to do it in Pharo" for myself, which > naturally would have me working the IDE strongly. > > Then I thought, the entire application can/should be an example, so it > should be a tutorial. > > That means that I need more than just a completed application (that's "just > an example"). To be a *tutorial*, it means starting from scratch, showing > how to approach the solution, how to start a Pharo app, how to use the IDE, > how to write tests, how to refactor code, etc. > > Then I thought, this needs a GUI. Either a Spec2 UI or a web app UI (with > Seaside or Teapot). But I would need help with that! So I'll start by > creating a message-based solution, and maybe get help to add a UI later. > > I did some prototyping, then got what I think might be a good code structure > (by version 4; it took a while to "think pure OOP"; old habits are hard to > fight against). It runs, it works. > > But.. Is it "good Pharo code"? I'm not experienced enough to answer that > question. I need a code review, criticism, guidance. Point me in the right > direction and I'll keep working on it, and start thinking about how to > express the "meta" elements (how to use the IDE to make/test the code, > etc.). > >>> What does the community think of this idea? >> I love it. I did Pharo by example so that I can get of rid of the beginner > parts. >> After I did learning OOP and Pharo with style so that I do not have to talk > about it >> again. >> >> So definitively. > Okay, great. I'll do most of the work. But I need help... > > I don't want to go any further without someone much more experienced than I > am to review what I have and let me know what I'm doing right & what I'm > doing "no quite so right". Yes, it runs, it works -- but that's *not* good > enough. The goal here isn't to "hack out a solution and move on", the goal > is to "create an example and tutorial that's high enough quality to use to > teach Pharo to other people". I don't want to be teaching *my* bad habits! > > Also, I know next to nothing about Spec2 or Seaside/Teapot. I just know > that I need to learn it, and I need to use it to give my tutorial a UI (or > two). Newcomers will show up wanting to learn Pharo, and they need to be > reassured that they can create nice (enough) UIs without a huge effort. > (Not everyone is a command line hacker, and end-users certainly don't want > to be.) > > The more I learn (from you), the more I can be independent, and the more > tutorials I could produce -- without a lot of help. I'm willing to do the > work, because that will help make me a Pharo "master programmer". (I don't > want to be a hack, and I can't really be a trainer if I'm just a hack > myself.) > > I'll pay back the community by helping to attract and advance more > developers' skills. I just have to have the more advanced knowledge & > skills myself. So, train the (future) trainer, anyone?? > > -Ted > > > > -- > Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html >