resources to study smalltalk and pharo? - smalltalk

I have downloaded the pharobyexample.org ebook, but it seems out of sync with the latest release of pharo, also I would like to know about resources which can help me learn smalltalk.

While a bit outdated (or a lot :P), PharoByExample is still the best way to learn you can find around. You can download the image provided in the web page: http://www.pharobyexample.org/image/PBE-OneClick-1.1.app.zip (is not very visible, I'm sorry), and use it to learn... then you can jump to the latest version and you will find all you learned will apply with almost no change :)
You can find other sources to learn, but they are much more distant to the "up to date" versions you can find around: http://stephane.ducasse.free.fr/FreeBooks.html
You also can look around: http://pharo.org/documentation, there are some good stuff there (including links to Pharo by example, of course!).
Finally, you can also suscribe to pharo-users#lists.pharo.org list... is a list where you can make any questions you want.

Yes there is an updated PBE that you can find here
https://ci.inria.fr/pharo-contribution/view/Books/job/UpdatedPharoByExample/lastSuccessfulBuild/artifact/book-result/UpdatedPharoByExample.pdf
other books you can use is this
http://deepintopharo.com/
and this
https://ci.inria.fr/pharo-contribution/job/PharoForTheEnterprise/lastSuccessfulBuild/artifact/EnterprisePharo.pdf
there are also books you can build by yourself, those are created by executing the download.sh and then the compile.sh scripts. The first script will download Pillar which is a Pharo library that can generate html files.
Building the docs yourself is a very good idea if you want to get the very latest docs for Pharo.
Those books can be found here
https://github.com/SquareBracketAssociates
if you want to also generate a pdf then you will need to install Latex depending on your OS.
All together there is a ton of documentation out there. Unfortunately because most books are very recent , there has not be care to make it easily accessible and visible to newcomers.

pharo-users#lists.pharo.org is also the place to ask for questions if you get stuck in pharo-by-example. If you find any problems with the book, we would certainly like to know about them.
You can also ask questions on IRC (as i have seen you doing) but you need to hang out longer to get any answers. Most pharo users and developers are in different timezones, so they are not usually awake at the same times as you.
update: a while ago the pharo community moved from IRC on to discord. you can find the link on the pharo community page: http://pharo.org/community

Related

How to check out test code in squeak for the "Inbox"?

What is the process in Squeak to check out some test code for the Inbox, e.g. from the package KernelTests-Numbers? Should I have a local repo and save my extended version in it?
YouTube has a good screencast for creating a local repo, but no videos on "how to checkout in Inbox".
The video that you found was a good clue. While adding the local repository, they clicked on "directory". To add the inbox, click on "HTTP" instead, and change the URL template to 'http://source.squeak.org/inbox'.
p.s. IMHO really basic questions like this would be better asked on the Squeak Beginner list (http://lists.squeak.org/mailman/listinfo/beginners). It seems to me that this process should be better documented and asking there will both allow you to have a give and take more easily then peppering SO with multiple questions, as well as give them the opportunity to see the apparent lack of clarity in the current documentation.
p.p.s. Although you obviously know this since you've already made your change, there seems to be a little confusion in the terminology... You don't have to "checkout" anything. Squeak does not use locking in its VCS. The package in question is already in a Squeak trunk image. Make your changes locally in such an image, and then commit to the inbox via the Monticello Browser. From there, a core developer will integrate the changes if approved.

What's the best way to use vim for Cocoa development?

First time poster, long time reader. I searched and found no questions that answered this question. If I missed a thread somewhere I apologize.
I've been looking at doing some serious Cocoa development for a few years now. Even attended WWDC back about 5 years ago. With the App Stores making things easier for distribution I figured now is about as good of a time as any.
There's also been a fair amount of discussion regarding Vim lately and how it can increase productivity once you get a good handle on it. So I've purchased a couple books on Vim and bookmarked a dozen or two websites that I've seen lately.
My question is what plugins or whatever could I use with Vim to make developing with Cocoa/ObjC better?
I'm familiar with the Cocoa.vim plugin, but looking at the site there it hasn't been actively worked on for around 10 months. Before I get used to the features in that plugin I'd rather look at alternatives that have seen more development (if there are any).
That said, I'm interested in any and all tips regarding Vim and Cocoa/ObjC. Any easy ways to integrate them? I know you can set MacVim as the default editor in Xcode. What else might someone be able to do? Doing a Command-R to build&run would be great (Cocoa.vim claims to do this), but again, lack of development makes me cautious.
Thanks,
gks
Install the XVim plugin for Xcode. It gives Vim-like key bindings to Xcode.
I start using Vim one month ago, so I'm not a master but I'm quite familiar now.
As a Cocoa developer, I've been also looking to integrate things better, but until now, even with cocoa.vim I think Xcode still better for "application development". With this expression, I mean developing the easy part, that is logic like designing controllers.
You may agree with me. That's the easy part. Writing IBActions and so on. We don't need many editing commands to do that, and Xcode has a lot of advantages here. The auto-completion is phenomenal, it's intelligent and reads what you have been typing like no other. And can you imagine things with Xcode 4? Dragging an outlet from the interface directly into code is something that will not be available in Vim in a recent future.
Now, when it comes to writing models with heavy logic and C things, I stick with Vim.
You see, I still need to learn a lot. I'd love to have Vim running in the exact place of Xcode editor, but while that doesn't happens I have been trying to get the best from both worlds. Xcode is not all about editing text, it's about developing and debugging and many more, and it does these things in a fantastic way.
I'll let more experienced users continue…
I use vim for every text editing job except Cocoa. I agree with the things Sidyll says about the advantages of Xcode. Xcode is a pretty decent development environment with it's native editor.
I do have my Xcode set so that a double click brings up the file in Vim. I use this for things like fairly complex find and replace with regular expressions.
Another feature I'd like to see in Xcode is support for literate programing. In Haskell I can compile a file wih lhs suffix, and run the same file through Pandoc (or txt2tags) and get an HTML or PDF version. With Xcode I have to keep my development notes in a separate file.

How to create an online rebol console?

Where can I find the code for creating an online rebol console like the one here ?
http://tryrebol.esperconsultancy.nl/
Update: for the sandbox system on the server, can't Rebol manage it itself with some security wrapper and its security options ?
As for console itself, I don't know Ruby so I don't want to use TryRuby and why would I need it ? Can't I mimic Rebol console itself by "remoting" it somehow ? Why RT or Esper Consultancy can't make an opensource version ? There's no value in keeping it closed source. Rebol needs to prove it's more open than in the past.
In my opinion, you should aim higher with something like the already open-sourced Try Ruby. You'd type in expressions and it would guide you. Their showcase site is at tryruby.org and is fairly slick.
I modified TryRuby to work with Rebol and it wound up looking like this:
But I'm not going to run it on my server because I didn't want to belabor the necessary sandboxing/etc. or protections against someone running an infinite loop. I can give you what I've got so far if you want it.
I started a tutorial script here that no one seemed interested in helping me with, so I wandered off to other tasks:
http://www.rebol.net/wiki/Interactive_tutorial_script
I'm not sure what exactly you want. You mention you want a remote REBOL shell instead of a tutoring setup, but that's what the Try REBOL site is. There are several reasons it's not open source:
It's in heavy development. I'm currently changing the code regularly.
So it's not in a release state. Preparing it for release, documenting and publishing it would take a lot of extra work, as with most projects.
It's written in my CMS that's also in heavy development. Even if the Try REBOL site were open source, it wouldn't run. The CMS is not planned to be open sourced soon.
It's not meant as a generic REBOL remoting tool, but as a one-off demo site. If that site is running, what's the use of more of them?
As others have answered, there are many generic solutions for remoting that you could use. Also, most parts of the Try REBOL site are readily available as open source:
Syllable Server, produced and published by us.
The Cheyenne web server.
The HTML source of the web client can be viewed, including my simple JavaScript command service bus.
Syllable Server is an essential part of the site, as the sandboxing is not done with REBOL facilities (except some extra limits in the R3 backend), but with standard Linux facilities.
A truly air tight (do I mean silica tight?) sandbox is close to impossible with R2.
R3 (still in alpha) is looking a lot more promising. The deep technical discussions in flight right now (see Cure code and AltME/REBOL3 Proposals regarding unwinds and protect and even occasionally mentioning sandboxes should lead to an excellent sandbox capability.
Right now, the big advance R3 has that makes Kaj's tryREBOL possible is R3's secure policy settings which make it possible (with some careful wrapper code) to construct an alpha/demo sandbox.
To answer your precise question("where can I find code...", you could try asking Kaj for his :)
I'm new to StackOverflow. I'm not sure if this is going to end up as a reply to your comment, or as a new answer.
The somewhat common idea that any project can be open sourced and contributed to by others is a naive view. In the case of my Try REBOL site, it makes no sense. It's not just in heavy development; it's written in a CMS that's also in heavy development. Basically noone could contribute to it at this point, because I'm the only one who knows my CMS. Or in any case its newest features, which I develop by developing Try REBOL, and other example sites. So developing Try REBOL means developing the CMS at the same time, and by definition, I'm the only one who can do that.
More generally, my projects are bleeding edge, innovative technology with a strong vision. The vision is mine, and to teach it to others, I have to build it to show how I intended it to work. So there's a catch 22: to enable others to contribute, I have to finish my projects first, because people typically don't understand them until I show them how they work.
There certainly are other projects where mass contribution makes more sense. Still, only the top projects get the contributors. We found that out the hard way. We created Syllable Desktop and Syllable Server with surrounding infrastructure for contributions. These are fairly classic, well understood operating systems that many people could work on in parallel. However, despite years of begging, we get very few contributions.
So, if you feel a burning need to contribute to our projects, please pick one of the many tasks in Syllable to execute. :-)

Writing Intelli-J inspections?

How would I go about writing my own Intelli-J inspection? I'm looking for some general guides or resources.
I want to bring up an inspection hint every time a collection class is instantiated manually, rather than through the Guava (List.newArrayList()/Maps.newHashMap()) etc. as per a team-wide standard.
I'd appreciate any direction.
For such an inspection you don't need to write a plug-in, instead use the Structural Search and Replace (SSR) feature which allows to create custom inspections with quick fixes.
See also the Creating your own inspections section and documentation for this feature.
Note that it's available in the Ultimate version only.
I'll have to disappoint you but there are no written guidelines nor resources nor documentation for almost everything related to plug-ins and IntelliJ :(.
(this is the main reason many IntelliJ fans haven't worked on plug-ins for their favorite tool).
That company makes fantastic products, but when it comes to documentation, books, and guidelines for developers (not users) - well, they're practically non-existing :(.
Your only bet is to take a look the source of actual IntelliJ plug-ins (some of them are here: http://git.jetbrains.org/) and ask very concrete questions on the IntelliJ plug-in list since the development team will gladly answer you usually in a matter of minutes.
Late to the game, but this question still comes up high on a google search, so see:
http://confluence.jetbrains.com/display/IDEADEV/Inspection+of+Code+Source

XRCed learning resources?

I've seen many people saying XRCed very strong "if you have learned how to use it". Unfortuntately, there're few documents about it, and many of the links on SF.net home page is 404 now.
The best I can found is XRCed Tutorial, however it is too primitive - so, does anyone have some idea for where can I find better documents about it?
Just a suggestion; have you tried wxFormBuilder? XRCed seems a little outdated (hasn't been updated for a while), and it does the same thing as wxFB. I've been using wxFB for a while in several projects and it's a life saver.
Alongside the already mentioned wxFormBuilder, I'm going to throw in wxGlade, as well. While I prefer wxFormbuilders GUI, I found it to be lacking in the available widgets. So I moved to wxGlade based on the amount of widgets it offers.
Both can create XRC files (and some other codes like C++ and python) and I think both are actively maintained. I think XRCed hasn't been updated since 2007.
For ease of use, I would go with wxFormBuilder. If you want to use various different widgets, for the moment, go with wxGlade. I don't know if wxFormbuilder is planning on incorporating ToggleButtons and the like in their future releases. It isn't in the one that I am using...