<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss'><id>tag:blogger.com,1999:blog-3009865372128506306</id><updated>2009-10-13T06:01:09.941Z</updated><title type='text'>Summer of Squeak</title><subtitle type='html'>The collective blog for Squeak's Google Summer of Code 2008 projects.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default?start-index=26&amp;max-results=25'/><author><name>gcorriga</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>73</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-674140216675731707</id><published>2009-08-23T11:44:00.003Z</published><updated>2009-08-23T11:52:38.287Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Safarà'/><category scheme='http://www.blogger.com/atom/ns#' term='Pharo'/><category scheme='http://www.blogger.com/atom/ns#' term='editor'/><title type='text'>Safarà Development Status</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_7U9hpEh9c6s/SpEr-Hz-P6I/AAAAAAAAADM/yY96qimRAME/s1600-h/Immagine+1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://2.bp.blogspot.com/_7U9hpEh9c6s/SpEr-Hz-P6I/AAAAAAAAADM/yY96qimRAME/s320/Immagine+1.png" alt="" id="BLOGGER_PHOTO_ID_5373124176678633378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Hi Squeakers, few news about the Safarà development status.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Portability&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Safarà now runs on &lt;a href="http://www.pharo-project.org/"&gt;Pharo&lt;/a&gt;&lt;br /&gt;With few changes, the main features of Safarà runs on Pharo, which, here on, will be the main platform of development. The only issue, I will tackle, in maintaining Safarà working both on Squeak and on Pharo is about the Parser class as I previously used the Parser2 class for editing Smalltalk code.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Stability&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;As we need to refactor some internal part of Safarà to improve the speed, I worked a lot on adding more unit tests. They are really useful to check that refactorings do not introduce new bugs and to find with the profiler the bottlenecks of the system.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;We got the 92% of code coverage of the Safarà-Core category by running all the tests in Safarà-Core-Tests (98 tests). The remaining 8% is mainly about methods of abstract classes (question: is there a way to make Test Runner Coverage analysis ignore an abstract class?) and some basic accessors. This part can be improved further  as some tests do not test some behaviors at boundaries, but, actually, they already give me a good warranty when refactoring.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Code Quality&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;A big effort has been also put in refactoring the code (both of the implementation and the tests) to make the code critics tool "happy". At the moment we have only two problems, related to the main object SAEditor which have too many variables (14) and too many methods (64).&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;I tried to group variables in new objects: a MarkManager (4 of them), an UIManager (3 of them), CommandManager (2 of them), but I was not satisfied with this solution, too much complicated.&lt;br /&gt;Furthermore, objects that should use the SAEditor accessors with statements like&lt;br /&gt;editor markManager cursorsAtPoint size = 1 fails the Demeter Law.&lt;br /&gt;&lt;br /&gt;I do not know if I should mind about the problem of having too many methods, as the SAEditor object should be the only object exposed to the GUI. The GUI communicates with the model through the Command pattern, and a lot of other communications are implemented with  Announcements, but queries about the editor internal state is mainly done with traditional methods sending.&lt;br /&gt;Thus, the number of methods for cursor/range/marker querying is big. For the same reason stated above I do not find useful to use an other solution.&lt;br /&gt;In facts, we can have a clear design just by partitioning methods into categories.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Next steps&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Here on, we can work on improving performance of Safarà. The problems resides mainly in the Morphic part.&lt;br /&gt;For the model part, the task is not so difficult as I individuated, thanks to the Profiler, the bottlenecks.&lt;br /&gt;For the UI part, I started also to look at Sophie, who use a complete different drawing scheme. It should not be difficult to rewrite the SASafaraMorph in the same way. More in the next posts.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Happy Hacking&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-674140216675731707?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/674140216675731707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=674140216675731707' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/674140216675731707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/674140216675731707'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2009/08/safara-development-status.html' title='Safarà Development Status'/><author><name>defmacro</name><uri>http://www.blogger.com/profile/16649764021099952228</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06895693939666775873'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_7U9hpEh9c6s/SpEr-Hz-P6I/AAAAAAAAADM/yY96qimRAME/s72-c/Immagine+1.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-7493957311715552250</id><published>2008-10-08T16:03:00.004Z</published><updated>2008-10-10T08:55:08.740Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Safarà'/><category scheme='http://www.blogger.com/atom/ns#' term='SummerOfCode'/><category scheme='http://www.blogger.com/atom/ns#' term='status'/><category scheme='http://www.blogger.com/atom/ns#' term='squeak'/><title type='text'>Safara project: results, personal experience and future directions</title><content type='html'>Hi Squeakers,&lt;br /&gt;&lt;br /&gt;The Google Summer of Code period is over and I'd like to spend some words about the project I was involved in, Safara, a text editor for Squeak . The results obtained (from a project and a personal perspective) and what we still need to do is the gist of the post. If you are interested in knowing what Safara is look at &lt;a href="http://www.squeaksource.com/Safara.html"&gt;squeak-source&lt;/a&gt; or in the blog archive.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Results&lt;/h2&gt;First the bad news: Safara is not ready to use yet. It needs more&lt;br /&gt;major features (like undo, completion, search/replace, templates) and&lt;br /&gt;it should be a little bit faster (though some steps in that direction&lt;br /&gt;has been already made). Safara is a big and ambitious project so I&lt;br /&gt;expected this situation.&lt;br /&gt;&lt;br /&gt;Then the good one: Safara is extensible and easily portable, so the&lt;br /&gt;main goal of the Summer of Code project has been achieved. I am quite&lt;br /&gt;satisfied about the design decision we took. Also the code quality&lt;br /&gt;should be quite good as stated by SLint.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;My first true Smalltalk Experience&lt;/h2&gt;Safara was the first (real) Smalltalk project I was involved in.&lt;br /&gt;Actually I decided to join the Summer of Code with the Squeak Org.&lt;br /&gt;because I needed an opportunity to improve my Smalltalk skills. You&lt;br /&gt;can never learn a language without writing a big (roughly in terms of&lt;br /&gt;number of lines of code) software. Playing with morphic toy examples,&lt;br /&gt;developing little seaside apps or just copying some examples from a&lt;br /&gt;book can be enough to learn the language and some good code styling&lt;br /&gt;convention but not to really understand how the language can help you&lt;br /&gt;in modeling the problem you want to solve. IMHO.&lt;br /&gt;&lt;br /&gt;After three months of full time development with Squeak Smalltalk I&lt;br /&gt;changed my mind about Smalltalk, and maybe Smalltalk changed a little&lt;br /&gt;bit my mind about programming. Maybe now I am a better programmer also&lt;br /&gt;when I develop with another object oriented language.&lt;br /&gt;I was impressed by two aspects.&lt;br /&gt;&lt;br /&gt;Smalltalk snippets of code, intended as the real lines of code you&lt;br /&gt;write, are really simple and clear. The consequence is that when you&lt;br /&gt;develop in Smalltalk you put your focus more on the whole design of&lt;br /&gt;the software, and less on the single line of code.&lt;br /&gt;&lt;br /&gt;Again, as the syntax rules are simple and the whole environment is&lt;br /&gt;object oriented you have really powerful tools that helps you to code,&lt;br /&gt;as the linter and the refactoring tools.&lt;br /&gt;&lt;br /&gt;I also appreaciated the image-based style of development but I was&lt;br /&gt;already used to it, so I got less surprises and I just enjoy my self&lt;br /&gt;playing with inspectors and debuggers, modifying my application when&lt;br /&gt;It is live and running.&lt;br /&gt;&lt;h2&gt;Next steps&lt;/h2&gt;I have a short to-do list, whose outline follows. We need to run a code&lt;br /&gt;coverage analysis, and write more tests to fix some bugs (mainly&lt;br /&gt;related to command extensions and text presentation). We also need to&lt;br /&gt;refactor the context menu (the one usually triggered by a right&lt;br /&gt;click), in order to allow extensions like completion, spell checking&lt;br /&gt;and so on.&lt;br /&gt;&lt;br /&gt;I am still working on Safara but obviously putting less effort than in&lt;br /&gt;the Summer of Code period, as I'd like to bring a new editor to the&lt;br /&gt;Squeak community, or at least an alpha version before Christmas. I&lt;br /&gt;don't want to release too early as I think it can be a bad advertising&lt;br /&gt;for the whole project. After the first release It will be important to&lt;br /&gt;create a community around Safara, with a website, a bug/issue tracker&lt;br /&gt;and so on. At the moment the development mailing list is enough.&lt;br /&gt;&lt;br /&gt;So if you are interested in the Safara project stay tuned and look at&lt;br /&gt;the squeak-dev and the squeak-announcements mailing list.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-7493957311715552250?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/7493957311715552250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=7493957311715552250' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/7493957311715552250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/7493957311715552250'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/10/safara-project-results-personal.html' title='Safara project: results, personal experience and future directions'/><author><name>defmacro</name><uri>http://www.blogger.com/profile/16649764021099952228</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06895693939666775873'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-3472447245952177163</id><published>2008-10-04T17:07:00.000Z</published><updated>2008-10-04T17:08:48.726Z</updated><title type='text'>Smalltalk and FreeCAD/Croquet</title><content type='html'>I’m writing this article not only to fulfill the requirements of the Squeak Organization but also to remind myself how pleasant it is to be programming in Smalltalk. I have always liked computers and always did want to learn programming but never had the opportunity to do it right. There was always the complication factor and other obstacles such as the scarce availability of resources to me but the emergence of the internet age change that. I got serious with programming while doing my pre-u course in college. As with almost everyone else, I started with C and over the years, I did C++, VHDL and Java. Nothing really came out of it until I did my final year project with my mentor Dr. A.S. Koh. I was introduced to the world of Smalltalk and I had a goal which was to create a full fledge CAD system in Croquet and the journey begins.&lt;br /&gt;&lt;br /&gt;In my short year of experience with Smalltalk, I find that it has really helped simplify a lot of things that were cumbersome or complicated in the other languages I have learned. The point that Smalltalk is purely object-oriented already makes it’s code more reusable and implementation a lot simpler. For my project, I use the Squeak implementation of Smalltalk and being open source, Squeak has a lot of good and usable classes already incorporated. I just had to work with them to get what I need.&lt;br /&gt;&lt;br /&gt;Another thing I like about Smalltalk is the ability to just pass objects around without the need to stick to strict rules for types and all. This has made my working with Smalltalk very easy and reduces the time needed for debugging. I would not even want to think how to do the same things I have done in Squeak in the other languages I have learned. It would be a total mess and I might not have achieved this much in the same time frame.&lt;br /&gt;&lt;br /&gt;Besides that, working with the Squeak tools such as the inspector, explorer, class browser, etc.. has been a great experience. It somehow gives me a feeling that the classes and objects actually have some sort of physical form that I can dig in to and understand properly. It saved me a lot of time considering the fact that I did not need to draw diagrams and charts to figure out the structure and flow of my project. It can be done there and then. Speaking of that, the late-binding characteristic of Smalltalk gave me the edge in debugging and testing.&lt;br /&gt;Since this is a short write-up of what Smalltalk did for me, I just highlighted the most important points that came to my mind. Of course, the advantages of Smalltalk is not only limited to the few that I have mentioned. If you are reading this and new to Smalltalk, I would very much like to encourage you to try it out yourself and hopefully, you will feel the same way I do for this beautiful and versatile language.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-3472447245952177163?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/3472447245952177163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=3472447245952177163' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/3472447245952177163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/3472447245952177163'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/10/smalltalk-and-freecadcroquet.html' title='Smalltalk and FreeCAD/Croquet'/><author><name>kayef</name><uri>http://www.blogger.com/profile/00542366408552043118</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09494998074749935978'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-5296215165152089907</id><published>2008-10-01T08:43:00.001Z</published><updated>2008-10-01T08:45:09.325Z</updated><title type='text'>Future of FreeCAD/Croquet</title><content type='html'>I have been working on porting freeCAD to Croquet for about 15 months now. A lot has been done and the base of the porting can be evidently seen and used in the current releases but this is just the tip of the iceberg of a somewhat adventurous career pursuit I have chosen. I have chosen to dedicate my first few months since graduating into developing FreeCAD/Croquet rather than joining the corporate world.&lt;br /&gt;If all goes well and my mentor is able to secure funding for our project, a lot of features will be continually be developed and added into it. &lt;br /&gt;&lt;br /&gt;Up till this point of writing, FreeCAD/Croquet is being developed in Cobalt and is able to draw basic solids and do simulation. Future plans will include doing Boolean operations for the solids. This means that we will be able to add and subtract solid shapes to and from one another. It will definitely be a great feature since we are aiming to develop FreeCAD/Croquet into a full fledged CAD system.&lt;br /&gt;&lt;br /&gt;Other than that, I plan to complete the motion simulator in the near future so that it is useable like freeCAD with the added advantage of being in a collaborative virtual environment. Engineers and educators alike will be able to use it for work or educational purposes. All these will be free to the public too and anyone can download and use FreeCAD/Croquet.&lt;br /&gt;&lt;br /&gt;We have generated quite a lot of interest among fellow enthusiast and our next project should be to create an importer for Google SketchUP  models. This will allow users to import millions of models available in Google’s own 3D warehouse for use in FreeCAD/Croquet or even in Cobalt itself. If we manage to complete this, it will draw more attention from other communities into the work we are doing, into Croquet and into Smalltalk. It should be a boost for the Squeak and other Smalltalk communities alike.&lt;br /&gt;&lt;br /&gt;Besides that, I hope to be able to put FreeCAD/Croquet online as a virtual world with accessible links to the public. Anyone can connect into it and each player would have their own avatar and virtual space allocated. This way, we will be able to achieve one of our goals which is to have FreeCAD/Croquet be used as a content creator to create objects in the virtual world. &lt;br /&gt;&lt;br /&gt;Finally, I would like to express my gratitude to all those who have been directly or indirectly involve in making this project a success. It would be great if more people could help with the testing and debugging as it will definitely speed things up and help make FreeCAD/Croquet more user friendly. I will continue to put my heart into making all the plans work out nicely and hopefully, we will be able to see a full fledge CAD system in a virtual world very soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-5296215165152089907?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/5296215165152089907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=5296215165152089907' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/5296215165152089907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/5296215165152089907'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/10/future-of-freecadcroquet.html' title='Future of FreeCAD/Croquet'/><author><name>kayef</name><uri>http://www.blogger.com/profile/00542366408552043118</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09494998074749935978'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-4194717497266895327</id><published>2008-10-01T08:38:00.003Z</published><updated>2008-10-01T08:43:42.586Z</updated><title type='text'>About FreeCAD/Croquet</title><content type='html'>For GSOC 2008, I worked on FreeCAD/Croquet building the graphical interface and 3D solids. FreeCAD/Croquet is meant to be a content creation tool in the collaborative virtual world Croquet. It is based on freeCAD by Dr. A.S. Koh and currently runs in the Cobalt version of the Croquet system. When completed, users will be able to create 3D models in a virtual world, simulate them and share it out to other users in real time. &lt;br /&gt;&lt;br /&gt;One of the features that was added in the course of this program is the interactive tree view menu. The tree displays assemblies, parts, markers, etc. It can be used to select the objects in the world and also to bring up a menu by right clicking on the selected item. Some keyboard functions have also been added in for better avatar navigation control and view adjustability.&lt;br /&gt;&lt;br /&gt;Besides that, I have added in a lot of windows that allow users to operate on the objects that are created. For example, there are windows that allow the user to change the properties and position of the drawing and 3D solid, window for animation, window to adjust rotation, etc. Click and drag functions were also added in for easy manipulation of the solids.&lt;br /&gt;&lt;br /&gt;Other than that, the 3D models were broken down into separate faces and each face is contained in its own frame. This way, individual faces can be selected and manipulated. One example of this usage is the ability to add in markers to the face of a 3D solid. The markers will in the future be used to connect joints for simulation. &lt;br /&gt;&lt;br /&gt;Currently, FreeCAD/Croquet has the simulation engine built into it and can do some simulation. There are a few demos of simulation done and the videos are posted on YouTube (It can also be viewed &lt;a href="http://www.oopgames.com/freecad"&gt;here&lt;/a&gt;)&lt;br /&gt;The main goal is to port the whole freeCAD which is written in Visual Works to Croquet and my mentor, Dr. Koh and I are very close to achieving that. In the mean time, users can load freeCAD assembly files preloaded with simulation data into FreeCAD/Croquet and run the animation. This gives an idea of what solid modeling in Croquet will be like. &lt;br /&gt;&lt;br /&gt;To conclude, I am very happy that I got accepted into GSOC 2008 because it has given me a great experience and also funds to continue working on FreeCAD/Croquet. With the funds that I have received, I will continue working full time on this project for as long as I can. We hope that more people will get interested and contribute to our work or even draw some attention to the Croquet/Cobalt community. Check out my &lt;a href="http://www.oopgames.com/freecad"&gt;website&lt;/a&gt; for future news and release of FreeCAD/Croquet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-4194717497266895327?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/4194717497266895327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=4194717497266895327' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/4194717497266895327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/4194717497266895327'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/10/about-freecadcroquet_3946.html' title='About FreeCAD/Croquet'/><author><name>kayef</name><uri>http://www.blogger.com/profile/00542366408552043118</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09494998074749935978'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-4114202058120396558</id><published>2008-08-10T13:58:00.003Z</published><updated>2008-08-10T14:03:00.480Z</updated><title type='text'>SqueakGtk Launcher</title><content type='html'>I've made good progress :&lt;br /&gt;&lt;br /&gt;  * there is a new main interface and we don't need no more morphs :D&lt;br /&gt;  * Exceptions during the events are handled with a new Exception UI&lt;br /&gt;  * A new website : &lt;a href="http://code.google.com/p/squeakgtk/"&gt;http://code.google.com/p/squeakgtk/&lt;/a&gt;&lt;br /&gt;  * A new image which autostart the Gtk user interface :p&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://squeakgtk.googlecode.com/files/squeakLauncher.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://squeakgtk.googlecode.com/files/squeakLauncher.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-4114202058120396558?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/4114202058120396558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=4114202058120396558' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/4114202058120396558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/4114202058120396558'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/08/squeakgtk-launcher.html' title='SqueakGtk Launcher'/><author><name>MrGwen</name><uri>http://www.blogger.com/profile/16368203436347410413</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10260486362263182361'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-3262353852776626226</id><published>2008-08-06T10:13:00.000Z</published><updated>2008-08-06T10:27:39.304Z</updated><title type='text'>Week 10 of GSOC - FreeCAD/Croquet</title><content type='html'>&lt;span style="font-weight:bold;"&gt;1) What did you do in the past week?&lt;/span&gt;&lt;br /&gt;-Grid on sketch board is up&lt;br /&gt;-Joints are ready now for simulation to be added&lt;br /&gt;-Click and rotate around an object is ready(a bit more tweaking left)&lt;br /&gt;-Fixed lost of keyboard focus on world when clicked on tree menu&lt;br /&gt;-New buffered axis for smoother rendering and better looks&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2) What do plan to do this week?&lt;/span&gt;&lt;br /&gt;-Work with my mentor in adding simulation code&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-3262353852776626226?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/3262353852776626226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=3262353852776626226' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/3262353852776626226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/3262353852776626226'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/08/week-10-of-gsoc-freecadcroquet.html' title='Week 10 of GSOC - FreeCAD/Croquet'/><author><name>kayef</name><uri>http://www.blogger.com/profile/00542366408552043118</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09494998074749935978'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-8449548266418231834</id><published>2008-08-05T20:25:00.003Z</published><updated>2008-08-05T20:44:47.099Z</updated><title type='text'>SqueakGtk</title><content type='html'>I've improved the support of the Omnibrowser tools, the Gtk port support&lt;br /&gt;more events and is more stable :p I've also made a huge improvement&lt;br /&gt;with the events handling it is no more an active waiting loop.&lt;br /&gt;I use a thread in C and wake up the smalltalk process with a semaphore.&lt;br /&gt;So the CPU is no more used at 99,99% by squeakGtk :D&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_53qduWx9Law/SJi3dsoq4vI/AAAAAAAAADU/emxyueiepPg/s1600-h/squeakOB2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_53qduWx9Law/SJi3dsoq4vI/AAAAAAAAADU/emxyueiepPg/s320/squeakOB2.png" alt="" id="BLOGGER_PHOTO_ID_5231132688016663282" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-8449548266418231834?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/8449548266418231834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=8449548266418231834' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/8449548266418231834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/8449548266418231834'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/08/squeakgtk.html' title='SqueakGtk'/><author><name>MrGwen</name><uri>http://www.blogger.com/profile/16368203436347410413</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10260486362263182361'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_53qduWx9Law/SJi3dsoq4vI/AAAAAAAAADU/emxyueiepPg/s72-c/squeakOB2.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-6766630217969938361</id><published>2008-07-30T11:34:00.002Z</published><updated>2008-07-30T11:39:31.872Z</updated><title type='text'>Week 9 of GSOC - FreeCAD/Croquet</title><content type='html'>1) What did you do in the past week?&lt;br /&gt;-Added new camera controls e.g. tilt,forward,rotate etc&lt;br /&gt;-Added tool to rotate objects around X,Y and Z&lt;br /&gt;-Set up website to publish FreeCAD/Croquet and provide instructions&lt;br /&gt;&lt;br /&gt;2) What do plan to do this week?&lt;br /&gt;-Implement a grid plan on the drawing board to act as a ruler and guide when drawing.&lt;br /&gt;-Add the much needed and delayed Joints to connect two markers&lt;br /&gt;&lt;br /&gt;3) What can possibly stand in the way of your work?&lt;br /&gt;-Still, 3D transforms are complicated but I'm getting the hang of it&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-6766630217969938361?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/6766630217969938361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=6766630217969938361' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/6766630217969938361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/6766630217969938361'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/07/week-9-of-gsoc-freecadcroquet.html' title='Week 9 of GSOC - FreeCAD/Croquet'/><author><name>kayef</name><uri>http://www.blogger.com/profile/00542366408552043118</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09494998074749935978'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-3280209134131937211</id><published>2008-07-30T07:26:00.004Z</published><updated>2008-07-30T08:01:58.625Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='nars'/><title type='text'>OpenNARS - End of July Status</title><content type='html'>&lt;p&gt;I've spent the last 2 weeks giving more love to the &lt;a href="http://www.squeakside.com/seaside/pier/"&gt;wiki&lt;/a&gt; and polishing what was ported since the start of the project. It was done in conjunction with design and comprehension decisions. &lt;/p&gt;&lt;p&gt;Until now, the main entities are ported as the primitives inference functions that acts on 2 special NARS arithmetic entities (TruthValue and BudgetValue).&lt;/p&gt;&lt;p&gt;What's missing are the inference rules as the glue with the existing entities in particular Memory who is the central class that implements the reasoning process. It has also on its state all the storage entities (NARS Bag) and organize their contents interaction. NARS bags are not only usual collection. They have in this design the responsabilies of pickOut and putIn (driven by a probabilistic selection using BudgetValue).&lt;/p&gt;&lt;p&gt;So here is a summary ot what was done recently:&lt;/p&gt;&lt;h3&gt;&lt;a name="157177874"&gt;&lt;/a&gt;Wiki&lt;/h3&gt;&lt;p&gt;reorganization around the following sections &lt;strong&gt;:&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;strong&gt;Code Section&lt;/strong&gt; For all code aspect of the port&lt;ul&gt;&lt;li&gt;&lt;a class="internal component" title="Code Browser 2.0" href="http://www.squeakside.com/seaside/pier/Code+section/Squeak+Code+Browser?_s=sHd0VIkfucDNpuM7&amp;amp;_k=hvIQ9m6V&amp;amp;_n&amp;amp;46"&gt;Code Browser&lt;/a&gt;&lt;ul&gt;&lt;li&gt;ajax based - scriptaculous version extended&lt;ul&gt;&lt;li&gt;read-only&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Squeak and Java Doc&lt;ul&gt;&lt;li&gt;gives package and class comment&lt;/li&gt;&lt;li&gt;shortcut to the last java version, and to the squeak one&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Java structure and design discussion&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;NARS Section&lt;/strong&gt;&lt;ul&gt;&lt;li&gt;&lt;a class="internal page" title="Introduction" href="http://www.squeakside.com/seaside/pier/OpenNARS/Introduction?_s=sHd0VIkfucDNpuM7&amp;amp;_k=hvIQ9m6V&amp;amp;_n&amp;amp;47"&gt;Introduction to the system&lt;/a&gt;&lt;ul&gt;&lt;li&gt;Architecture description&lt;/li&gt;&lt;li&gt;&lt;a class="internal file" title="Graphic" href="http://www.squeakside.com/seaside/pier/OpenNARS/Introduction/Architecture/Graphic?_s=sHd0VIkfucDNpuM7&amp;amp;_k=hvIQ9m6V&amp;amp;_n&amp;amp;48"&gt;Overview pictures&lt;/a&gt;&lt;/li&gt;&lt;li&gt;External Links&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Blog&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;A blog to ask questions, relates actuality of the port...&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Timeline&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;Section in relation to the timeline and objectives of the GSoC Prject&lt;/span&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;h3&gt;&lt;a name="242660146"&gt;&lt;/a&gt;&lt;a class="internal page" title="Functional Tests" href="http://www.squeakside.com/seaside/pier/Code+section/Functional+Tests?"&gt;Functional test applications&lt;/a&gt;&lt;/h3&gt;&lt;p&gt;I haven't made a lot of unit tests yet mainly because my understanding of the system was not really clear (until now?). Instead I did &lt;a href="http://www.squeakside.com/seaside/pier/Code+section/Functional+Tests?"&gt;two functional test applications (seaside)&lt;/a&gt;. They allow testing most of the inference primitives methods on TruthValue and BudgetValue. I plan to continue this kind of functional test with the inference rules and if possible providing a seaside application that will do an inference cycle step by step (kind of WATask).&lt;/p&gt;&lt;h3&gt;&lt;a name="26454730"&gt;&lt;/a&gt;What's next ?&lt;/h3&gt;&lt;p&gt;I also had a reflection on how to implement the rule dispatcher and the rule body. Given our objective (mainly syllogistic rules as we deal only with atomic terms), there are not too many classes and methods but they are quite long. The discussion we had with Klaus was whether to dispatch or not :).&lt;/p&gt;&lt;p&gt;The conclusion is to stick to the actual implementation for several reasons:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Pei wants the code in one place as the NARS is not stabilized yet (AGI research project)&lt;/li&gt;&lt;li&gt;Refactoring is quite uncertain now.&lt;/li&gt;&lt;li&gt;Writing rules with Smalltalk ifTrue:'s isSometing's and:[]'s, the code will be quite shorter and so a bit more readable. For instane, see &lt;a href="http://www.squeakside.com/seaside/pier/Code+section/Squeak+Code+Browser?c=NAStatement&amp;amp;s=2&amp;amp;m=makeFromRelation:subject:predicate:"&gt;there &lt;/a&gt;(the java version is commented below).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;we keep our ideas for later. Dispatching would surely making look a bit nicer but it could be worthless if there is a major move (like using prolog - having rule in a declarative language).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;So next steps are, finishing and fixing language statement class and subclasses. Then I'll have to port 3 inference classes. I think 3 weeks is reasonable to have the system starting to work as a whole (still far form doing all kind of inference and logic expression). At this time, we'll have to test, optimize the reasoning process and in the same time I'll do seaside interfaces. I also would like to do a screencast with the Java version to show how NARS behave and can be used. I plan to do this &lt;a class="internal page" title="Tutorial" href="http://www.squeakside.com/seaside/pier/OpenNARS/Examples/Tutorial?"&gt;tutorial&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;That's it for now.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Happy squeaking ;-)&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-3280209134131937211?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/3280209134131937211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=3280209134131937211' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/3280209134131937211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/3280209134131937211'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/07/opennars-end-of-july-status.html' title='OpenNARS - End of July Status'/><author><name>cdrick</name><uri>http://www.blogger.com/profile/01992092307214403698</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13197043835388262169'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-5347949531772079700</id><published>2008-07-23T10:29:00.002Z</published><updated>2008-07-23T10:37:08.505Z</updated><title type='text'>Week 8 of GSOC - FreeCAD/Croquet</title><content type='html'>1) What did you do in the past week?&lt;br /&gt;-Fixed drawing movement with mouse. Drag and move properly enabled now. Drag and rotate is also fixed.&lt;br /&gt;-Experimenting with camera movements. Tilt, forward, back, rotate are some of the motions enabled on keyboard.&lt;br /&gt;-Added a pop up info board that shows the position of the mouse on the drawing board to enable better and more accurate drawing. Pop up also added to drawing when dragged and moved to show the position of the drawing.&lt;br /&gt;&lt;br /&gt;2) What do plan to do this week?&lt;br /&gt;-Finalize camera movement and try to integrate some of it with the mouse.&lt;br /&gt;-Implement a grid plan on the drawing board to act as a ruler and guide when drawing.&lt;br /&gt;&lt;br /&gt;3) What can possibly stand in the way of your work?&lt;br /&gt;-No feedback and no one trying out the things I have done puts me in the dark about how user friendly the controls are.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-5347949531772079700?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/5347949531772079700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=5347949531772079700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/5347949531772079700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/5347949531772079700'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/07/week-8-of-gsoc-freecadcroquet.html' title='Week 8 of GSOC - FreeCAD/Croquet'/><author><name>kayef</name><uri>http://www.blogger.com/profile/00542366408552043118</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09494998074749935978'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-8598766894631241713</id><published>2008-07-22T15:52:00.004Z</published><updated>2008-07-22T16:32:40.830Z</updated><title type='text'>squeakGtk Omnibrowser</title><content type='html'>I've updated the squeakGtk website look at : &lt;a href="http://squeakgtk.pbwiki.com/"&gt;http://squeakgtk.pbwiki.com/&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;Here is the first release of the Omnibrowser with Gtk :&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_53qduWx9Law/SIYCsxo7CyI/AAAAAAAAAC0/RqJ8pfo8jYQ/s1600-h/squeakOB.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_53qduWx9Law/SIYCsxo7CyI/AAAAAAAAAC0/RqJ8pfo8jYQ/s320/squeakOB.png" alt="" id="BLOGGER_PHOTO_ID_5225867385872517922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;At this time this is only read-only and there is not menu support.&lt;br /&gt;&lt;br /&gt;I've solved the problem of the active waiting with a thread in C in which gtk waits&lt;br /&gt;for an event and when there is an event send a signal to a semaphore and wake up&lt;br /&gt;the Smalltalk process, it works but I should remove the Morphs because X events&lt;br /&gt;handling is not thread safe.&lt;br /&gt;&lt;br /&gt;I'll create an image without the morphs if it possible...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-8598766894631241713?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/8598766894631241713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=8598766894631241713' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/8598766894631241713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/8598766894631241713'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/07/squeakgtk-omnibrowser.html' title='squeakGtk Omnibrowser'/><author><name>MrGwen</name><uri>http://www.blogger.com/profile/16368203436347410413</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10260486362263182361'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_53qduWx9Law/SIYCsxo7CyI/AAAAAAAAAC0/RqJ8pfo8jYQ/s72-c/squeakOB.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-6224793879622546832</id><published>2008-07-17T14:39:00.000Z</published><updated>2008-07-18T14:59:13.619Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='nars'/><title type='text'>OpenNARS - Development Progress - 2nd phase</title><content type='html'>The port of NARS is now getting in the more complex/interesting part ie. porting inference rules and make the whole thing work.&lt;br /&gt;&lt;br /&gt;It hasn't been possible to focus on simple inference as there's not a clear distinction in the rules implementation. So I did choose to port the maximum I could understood. Most of the stable classes that are not evolving much are ported. Some are tested, some are not as I need other parts to make them work.&lt;br /&gt;&lt;br /&gt;We had also a discussion with Klaus to agree on the objectives and ways to tackle some problems. I also had to read again documentation on the NARS approach as it's still difficult to me to explain to others. Also, java code is not always explaining by itself :).&lt;br /&gt;&lt;br /&gt;I've extended an overview document with picture to explain relation between statement (logic expression), sentence, reasoningItems (tasks that encapsulates sentences, judgment, question goal...) and reasoning artefacts (memory...bags...). &lt;a href="http://www.squeakside.com/seaside/pier/OpenNARS/Big+Pictures+NARS"&gt;See here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Where I'm right now is thinking about the implementation choice of Inference rules.&lt;br /&gt;Indeed, Pei choose to implement inference rules, as some utility functions and the memory as static methods only in several distinct classes. I understand his choice as it's easier for him to find and modify them (java world), but this is another difficulty for me to understand the system. It's therefore kind of mixed because several methods should belong to others objects and so, hard to port as I ask myself whose object responsibility it is... I've started that for all Utility functions (that are really stable). All three classes don't exist anymore and are either extension method.&lt;br /&gt;&lt;br /&gt;Also dispatching them in Smalltalk is less problematic as I can use Pragma or even flags to access them quickly...   Besides the static'ness of these methods, I find they are too long... which makes them hard to have a global view. Over the 4 inferences classes (+ a kind of rule dispatcher - RulesTable), there around 10 reasonning method per class which is not much but they are quite long... So fisrt, I'll port skeletton, bypass the parts in relation to complex inference (temporal, structural...) and I'll try to see common parts so as to create convenience methods etc...&lt;br /&gt;&lt;br /&gt;That's why I'm spending this week getting a better understanding of the system to propose an alternative design. I think for instance that the memory class is the reasoning controller. It has links to several bags (Nars bags), that are the real storage of the working memory (names can be very confusing sometimes). I find I need some more abstraction and one of them is a reasoning controller which will hold the reasoning process (an inference engine?). I'm also discussing that point with Pei on the &lt;a href="http://groups.google.com/group/open-nars/browse_thread/thread/e55e6e115126bda6/778341eaa4e145c9#778341eaa4e145c9"&gt;Nars mailing list&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The other missing parts is the full implementation of NARS language (NARSESE) that allows to express logics expression (input belief, outputs). I'll focus on implementing first simple statements like "swan is black" "yoyo is a swan" etc... The inference engine would be already usable for more complex expression. Still the future seaside interface will only focus on simple statements, presenting inference and result(s).&lt;br /&gt;&lt;br /&gt;To deal with language terms, I may use a visitor pattern, or at least a better dispatch but I'll focus on that later.&lt;br /&gt;&lt;br /&gt;So, next objectives are:&lt;br /&gt;-port CompoundTerms, Statements and relations subclasses (inheritance, equivalence, implication, instance...) to be able to express tasks - statement which is a logic statement with a truth value plus some meta information that allow to deal with priority, decay, life of the belief in the working memory ...&lt;br /&gt;-then make NAMemory work, maybe split it into 2 classes. I need to implement inference rules (some not all)&lt;br /&gt;&lt;br /&gt;See you all... Feel free to leave comments, give pointers on pattern or application that use rule and inference (SOUL ? NeOPUS ?)...&lt;br /&gt;&lt;br /&gt;Cédrick&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-6224793879622546832?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/6224793879622546832/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=6224793879622546832' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/6224793879622546832'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/6224793879622546832'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/06/opennars-development-progress-2nd-phase.html' title='OpenNARS - Development Progress - 2nd phase'/><author><name>cdrick</name><uri>http://www.blogger.com/profile/01992092307214403698</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13197043835388262169'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-1788136477635533908</id><published>2008-07-16T10:44:00.002Z</published><updated>2008-07-16T10:49:46.141Z</updated><title type='text'>Week 7 of GSOC - FreeCAD/Croquet</title><content type='html'>&lt;span style="font-weight:bold;"&gt;1) What did you do in the past week?&lt;/span&gt;&lt;br /&gt;-Experiment with different camera movements&lt;br /&gt;-Implemented keyboard keys with avatar motion e.g. tilt, move around etc&lt;br /&gt;-Experiment with solid transformation, trying to put in better control of solids with mouse movement &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2) What do plan to do this week?&lt;/span&gt;&lt;br /&gt;-Continue to work on avatar movement with keyboard and applying different movements to have a better CAD view of assembly&lt;br /&gt;-Restructure drawing of solids for better integration with mouse movement&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3) What can possibly stand in the way of your work?&lt;/span&gt;&lt;br /&gt;3D transform theories are really complicating!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-1788136477635533908?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/1788136477635533908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=1788136477635533908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/1788136477635533908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/1788136477635533908'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/07/week-7-of-gsoc-freecadcroquet.html' title='Week 7 of GSOC - FreeCAD/Croquet'/><author><name>kayef</name><uri>http://www.blogger.com/profile/00542366408552043118</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09494998074749935978'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-3287121161048479471</id><published>2008-07-15T14:16:00.003Z</published><updated>2008-07-16T10:10:43.135Z</updated><title type='text'>Safarà status: New commands and a new SATextMorph</title><content type='html'>These week I added some support to implement commands based on multiple cursors.&lt;br /&gt;As an example I provided commands to move the current point of editing between words (e.g. next-word, previous-word, etc.).&lt;br /&gt;&lt;br /&gt;The second issue I attacked was the one related with how present the characters. Now we use a custom morph to present the content of a buffer.&lt;br /&gt;&lt;br /&gt;The next step will be to define a GUI-independent model for styles and interactions with ranges of text. This will enable us to provide some features like text-selection, syntax-highlighting or "Do it".&lt;br /&gt;&lt;br /&gt;As in the last post and from now on, I will try to provide a snapshot:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_7U9hpEh9c6s/SHyzB-KH1LI/AAAAAAAAAAw/fEW-zmAXvZ4/s1600-h/Immagine+2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_7U9hpEh9c6s/SHyzB-KH1LI/AAAAAAAAAAw/fEW-zmAXvZ4/s320/Immagine+2.png" alt="" id="BLOGGER_PHOTO_ID_5223246514289628338" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-3287121161048479471?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/3287121161048479471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=3287121161048479471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/3287121161048479471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/3287121161048479471'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/07/these-week-i-added-some-support-to.html' title='Safarà status: New commands and a new SATextMorph'/><author><name>defmacro</name><uri>http://www.blogger.com/profile/16649764021099952228</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06895693939666775873'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_7U9hpEh9c6s/SHyzB-KH1LI/AAAAAAAAAAw/fEW-zmAXvZ4/s72-c/Immagine+2.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-241509508031619214</id><published>2008-07-14T14:09:00.003Z</published><updated>2008-07-14T14:14:28.816Z</updated><title type='text'>Cairo support under SqueakGtk</title><content type='html'>Cairo is a 2D graphics library with support for multiple output devices. Currently supported &lt;a href="http://cairographics.org/backends/"&gt;output targets&lt;/a&gt; include the X Window System, Quartz, Win32, image buffers, PostScript, PDF, and SVG file output. Experimental backends include OpenGL (through &lt;a href="http://www.freedesktop.org/wiki/Software/glitz"&gt;glitz&lt;/a&gt;), XCB, BeOS, OS/2, and DirectFB.&lt;br /&gt;&lt;br /&gt;for more informations go to the cairo website : &lt;a href="http://cairographics.org/"&gt;http://cairographics.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The support of Cairo under squeakGtk is not complete but most of the functions are supported, it lacks the support of the transformations functions, ...&lt;br /&gt;&lt;br /&gt;May be it will be possible to use cairo for the morphs ?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_53qduWx9Law/SHte8RO6v0I/AAAAAAAAACQ/X0P2Wg0zMAA/s1600-h/squeakCairo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp0.blogger.com/_53qduWx9Law/SHte8RO6v0I/AAAAAAAAACQ/X0P2Wg0zMAA/s320/squeakCairo.png" alt="" id="BLOGGER_PHOTO_ID_5222872582377357122" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-241509508031619214?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/241509508031619214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=241509508031619214' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/241509508031619214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/241509508031619214'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/07/cairo-support-under-squeakgtk.html' title='Cairo support under SqueakGtk'/><author><name>MrGwen</name><uri>http://www.blogger.com/profile/16368203436347410413</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10260486362263182361'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_53qduWx9Law/SHte8RO6v0I/AAAAAAAAACQ/X0P2Wg0zMAA/s72-c/squeakCairo.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-7445421192767034052</id><published>2008-07-14T08:42:00.003Z</published><updated>2008-07-14T09:01:46.347Z</updated><title type='text'>SqueakGtk status</title><content type='html'>Here are some news of the SqueakGtk project :&lt;br /&gt;&lt;br /&gt;I've extended the Gtk support with new widgets :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;GtkAboutDialog (added some fields)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;GtkFontSelectionDialog&lt;/li&gt;&lt;li&gt;GtkAccelLabel&lt;/li&gt;&lt;li&gt;GtkLinkButton&lt;/li&gt;&lt;li&gt;GtkScaleButton&lt;/li&gt;&lt;li&gt;GtkVolumeButton&lt;/li&gt;&lt;li&gt;WebKit&lt;/li&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ul&gt;I've corrected a bug with the memory management, it seems that Gtk doesn't like&lt;br /&gt;g_object_unref when there is a parent widget. The support of Gtk&lt;br /&gt;is more stable but there are others problems in the events handling&lt;br /&gt;this is an active waiting so it uses a lot of cpu times, an other problem&lt;br /&gt;is when the user save the image a "Gtk" object in Squeak only contains&lt;br /&gt;a pointer in a C structure and I need to save and restore this structure.&lt;br /&gt;&lt;br /&gt;I'm working on the Omnibrowser support and in the improvement of the&lt;br /&gt;new tools :p&lt;br /&gt;&lt;br /&gt;Some basic tools :&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_53qduWx9Law/SHsR9lKrPKI/AAAAAAAAACA/qrB9mfMkto8/s1600-h/SqueakGTK.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_53qduWx9Law/SHsR9lKrPKI/AAAAAAAAACA/qrB9mfMkto8/s320/SqueakGTK.png" alt="" id="BLOGGER_PHOTO_ID_5222787942512802978" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Squeakzilla&lt;/span&gt; a new browser :p&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_53qduWx9Law/SHsR9-dCBII/AAAAAAAAACI/UIRQZusTM3g/s1600-h/Squeakzilla.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_53qduWx9Law/SHsR9-dCBII/AAAAAAAAACI/UIRQZusTM3g/s320/Squeakzilla.png" alt="" id="BLOGGER_PHOTO_ID_5222787949300679810" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-7445421192767034052?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/7445421192767034052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=7445421192767034052' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/7445421192767034052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/7445421192767034052'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/07/squeakgtk-status.html' title='SqueakGtk status'/><author><name>MrGwen</name><uri>http://www.blogger.com/profile/16368203436347410413</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='10260486362263182361'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_53qduWx9Law/SHsR9lKrPKI/AAAAAAAAACA/qrB9mfMkto8/s72-c/SqueakGTK.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-8831074686485311309</id><published>2008-07-09T22:29:00.004Z</published><updated>2008-07-09T23:19:13.844Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Safarà'/><category scheme='http://www.blogger.com/atom/ns#' term='SummerOfCode'/><category scheme='http://www.blogger.com/atom/ns#' term='squeak'/><category scheme='http://www.blogger.com/atom/ns#' term='Matley'/><title type='text'>Safarà Status</title><content type='html'>A first prototype of Safarà is ready at last.&lt;br /&gt;&lt;br /&gt;Currently it supports basic ascii text editing, that can seem not so much.&lt;br /&gt;&lt;br /&gt;Actually I am really happy for the work done as I think (and I hope) I met several goals:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;extensibility in terms of features: you can add features (commands gestures syntaxes) to Safarà at runtime, without interfering or having to interact with other layers;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;portability over implementations: the model does not know anything about the UI as they are completely decoupled and communication between them occurs by using announcements. Thus, you can write also a non-morphic UI for example. Just make your UI objects subscribe to the right announce and write a bridge to translate the GUI-dependent events to the Safarà events;&lt;/li&gt;&lt;li&gt;Classes and methods are well categorized, documented and tested.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;So, what are the next steps?&lt;br /&gt;&lt;br /&gt;For the Morphic UI: Do not use TextMorph as base class but a custom morph&lt;br /&gt;&lt;br /&gt;For the model: Integrate into Safarà some code wrote by Lukas for syntax-aware commands&lt;br /&gt;&lt;br /&gt;You can find the latest snapshot &lt;a href="http://www.squeaksource.com/Safara.html"&gt;here&lt;/a&gt;. There is also a developer &lt;a href="mailto:safara@lists.squeakfoundation.org"&gt;mailing list&lt;/a&gt;, you can &lt;a href="http://lists.squeakfoundation.org/mailman/listinfo/safara"&gt;subscribe &lt;/a&gt;to. As Safarà partecipate to the ESUG 2008 awards you can find additional documentation about the project goals and design &lt;a href="http://vst.ensm-douai.fr/Esug2008Media/uploads/1/safara-EsugAwards2008.pdf"&gt;here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For the most curious, this is a snapshot&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_7U9hpEh9c6s/SHVFWv0tOFI/AAAAAAAAAAo/OU5ulruZrWw/s1600-h/Immagine+1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://bp2.blogger.com/_7U9hpEh9c6s/SHVFWv0tOFI/AAAAAAAAAAo/OU5ulruZrWw/s320/Immagine+1.png" alt="" id="BLOGGER_PHOTO_ID_5221155600102930514" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-8831074686485311309?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/8831074686485311309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=8831074686485311309' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/8831074686485311309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/8831074686485311309'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/07/safar-status.html' title='Safarà Status'/><author><name>defmacro</name><uri>http://www.blogger.com/profile/16649764021099952228</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='06895693939666775873'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_7U9hpEh9c6s/SHVFWv0tOFI/AAAAAAAAAAo/OU5ulruZrWw/s72-c/Immagine+1.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-2456751395369028084</id><published>2008-07-09T09:34:00.003Z</published><updated>2008-07-09T09:44:58.914Z</updated><title type='text'>Week 6 of GSOC - FreeCAD/Croquet</title><content type='html'>&lt;span style="font-weight: bold;"&gt;1) What did you do in the past week?&lt;/span&gt;&lt;br /&gt;-Created handles to interactively draw objects.&lt;br /&gt;-Handles allows extending and rotating the drawing.&lt;br /&gt;-Putting in markers and selecting them so that Joints can be created and linked to them.&lt;br /&gt;-2D drawing detection to move drawings and to select it&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 2) What do plan to do this week?&lt;/span&gt;&lt;br /&gt;-Will continue work to create Joints that will reference 2 markers for simulation purpose&lt;br /&gt;-Look into how the camera view can be adjusted for better viewing angles. Any suggestions on this is much appreciated&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 3) What can possibly stand in the way of your work?&lt;br /&gt;&lt;/span&gt;3D transformation is quite complex and i'll need some time to understand it better in order to create better functions.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Here's a video showing some of the work I did:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/tJIiNETjo4k&amp;amp;hl=en&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/tJIiNETjo4k&amp;amp;hl=en&amp;amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-2456751395369028084?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/2456751395369028084/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=2456751395369028084' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/2456751395369028084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/2456751395369028084'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/07/week-6-of-gsoc-freecadcroquet.html' title='Week 6 of GSOC - FreeCAD/Croquet'/><author><name>kayef</name><uri>http://www.blogger.com/profile/00542366408552043118</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09494998074749935978'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-3902311549537542924</id><published>2008-07-08T19:48:00.003Z</published><updated>2008-07-08T23:07:31.126Z</updated><title type='text'>Status</title><content type='html'>&lt;a href="http://blog.summer.squeak.org/2008/07/squeak-impressions.html"&gt;As promised&lt;/a&gt;, some news of the project!&lt;br /&gt;&lt;br /&gt;So far, the bot framework is on the good way... I tried as much as possible to have an easy public interface so that it should be easy for anyone to develop with the framework. The base is maturing and shouldn't change much in the future.&lt;br /&gt;I've developed some basic functionalities: an administration interface, a help system, a greeting (a bot has to be polite) and a simple infobot that can memorise definitions.&lt;br /&gt;&lt;br /&gt;At the moment, the IRC protocol is handled by the &lt;a href="http://wiki.squeak.org/squeak/3711"&gt;existing IRC client&lt;/a&gt; in Squeak. Unfortunately it relies on Morphic ( in short; the gui ). I've abstracted it so that the bot isnow completely indenpendant of it. It is planned to develop a clean IRC library which wont rely on any gui.&lt;br /&gt;&lt;br /&gt;So what next ?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Continue the real world tests (yesterday was the first attempt on freenode :),&lt;/li&gt;&lt;li&gt;Polish the admin and help, &lt;/li&gt;&lt;li&gt;Add logging functionalities&lt;/li&gt;&lt;li&gt;Develop a web interface (with &lt;a href="http://www.aidaweb.si/"&gt;Aida&lt;/a&gt; or &lt;a href="http://seaside.st/"&gt;Seaside&lt;/a&gt;)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Develop a clean IRC library&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Write docs&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Stay tuned!&lt;br /&gt;(if you see squeakbot on freenode, introduce yourself to him :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-3902311549537542924?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/3902311549537542924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=3902311549537542924' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/3902311549537542924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/3902311549537542924'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/07/as-promised-some-news-of-project-so-far.html' title='Status'/><author><name>Francois Stephany</name><uri>http://www.blogger.com/profile/00122646082338460855</uri><email>francois.stephany@agilitic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02736686424012588355'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-3518514787683270667</id><published>2008-07-05T18:55:00.003Z</published><updated>2008-07-05T19:31:18.879Z</updated><title type='text'>Squeak - Impressions</title><content type='html'>Wow.&lt;br /&gt;&lt;br /&gt;The more i code, the more i fall in love with &lt;a href="http://squeak.org/"&gt;Squeak&lt;/a&gt; and Smalltalk in general.  I've properly started my gsoc project after my last exam (20 June) and i'm already addicted to the different Smalltalk tools. Iknew quite well the classic System Browser but was a little bit intimidated by the other ones.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_SfBZyYc3XA8/SG_KHtC9j7I/AAAAAAAAAFk/uX9EQ-9nHJw/s1600-h/system_browser.png"&gt;&lt;img style="cursor: pointer;" src="http://bp0.blogger.com/_SfBZyYc3XA8/SG_KHtC9j7I/AAAAAAAAAFk/uX9EQ-9nHJw/s320/system_browser.png" alt="" id="BLOGGER_PHOTO_ID_5219612726845607858" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Little by little, i've started to code in the debugger (i can imagine non smalltalkers shocked while reading this but it _really_ is an eyes opening experience) and guess what...I like it! I've learned to appreciate the refactoring, senders, hierarchy, variables and versions broswers. Most of the modern IDEs have those functionalities but Smalltalk had those for years and they are so well integrated in the environment. All those tools encourage you to explore the image. It feels like reading wikipedia: you start to look at an article about something and link after link you end up reading about the &lt;a href="http://en.wikipedia.org/wiki/Pyongyang_Metro"&gt;Pyongyang metro&lt;/a&gt;...&lt;br /&gt;&lt;br /&gt;The only drawback is that you are quickly overwhelmed with windows popping up everywhere... especially on a 12 inches screen :)&lt;br /&gt;&lt;br /&gt;Another common problem for beginners is the syndrom of 'Where the hell do i have to start?'. Interesting opinions can be found in the comments of a &lt;a href="http://onsmalltalk.com/programming/smalltalk/what-are-the-barriers-to-entry-for-smalltalk-and-seaside/"&gt;Ramon Leon's post&lt;/a&gt;. Now, there's a fantastic open book that everyone willing to learn Squeak/Smalltalk should read: &lt;a href="http://squeakbyexample.org/"&gt;'Squeak By Example'&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;More news about the &lt;a href="http://wiki.squeak.org/squeak/SqueakIrcBot"&gt;project&lt;/a&gt; itself very soon!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-3518514787683270667?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/3518514787683270667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=3518514787683270667' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/3518514787683270667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/3518514787683270667'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/07/squeak-impressions.html' title='Squeak - Impressions'/><author><name>Francois Stephany</name><uri>http://www.blogger.com/profile/00122646082338460855</uri><email>francois.stephany@agilitic.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='02736686424012588355'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_SfBZyYc3XA8/SG_KHtC9j7I/AAAAAAAAAFk/uX9EQ-9nHJw/s72-c/system_browser.png' height='72' width='72'/><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-5405905692187396058</id><published>2008-06-30T15:35:00.000Z</published><updated>2008-06-30T15:36:48.227Z</updated><title type='text'>Week 5 of GSOC - FreeCAD/Croquet</title><content type='html'>&lt;span style="font-weight: bold;"&gt;1) What did you do in the past week?&lt;/span&gt;&lt;br /&gt;- I have done detection of planes and points on the plane. I can now select a Cube, click a point on it and add another solid on that point.&lt;br /&gt;- Corrected all problems of rendering and picking objects. Had problems rendering and picking objects earlier because of the different coordinate systems used by FreeCAD and Croquet. It took me a while to figure everything out but its all fixed now.&lt;br /&gt;-Completed a window UI to place a solid precisely on a specified point.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 2) What do plan to do this week?&lt;/span&gt;&lt;br /&gt;-Create more UI windows to manipulate solids&lt;br /&gt;-Enable markers to be referenced by Joints for animation/simulation purposes&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 3) What can possibly stand in the way of your work?&lt;/span&gt;&lt;br /&gt;Nothing much except that my internet connection is no set up yet due to very very slow services by my ISP. Doing online research and replying mails in a cyber cafe nearby at the moment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-5405905692187396058?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/5405905692187396058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=5405905692187396058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/5405905692187396058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/5405905692187396058'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/06/week-5-of-gsoc-freecadcroquet.html' title='Week 5 of GSOC - FreeCAD/Croquet'/><author><name>kayef</name><uri>http://www.blogger.com/profile/00542366408552043118</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09494998074749935978'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-7380091697915932147</id><published>2008-06-24T10:49:00.002Z</published><updated>2008-06-24T10:57:58.759Z</updated><title type='text'>Week 4 of GSOC - FreeCAD/Croquet</title><content type='html'>&lt;span style="font-weight: bold;"&gt;1) What did you do in the past week?&lt;/span&gt;&lt;br /&gt;-Coded in picking methods for cubes and cylinders, not 100% working but I'm able to move things relative to their plane&lt;br /&gt;-Combined all solids under one main class &amp;amp; trying to make rendering more efficient&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) What do plan to do this week?&lt;/span&gt;&lt;br /&gt;-Continue to implement the face/plane detection for polygons and ellipses.&lt;br /&gt;-Fix some rendering bugs&lt;br /&gt;-Other minor fixes for better rendering efficiency&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) What can possibly stand in the way of your work?&lt;br /&gt;&lt;/span&gt;-No internet connection at my new place yet (still waiting for my ISP)&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-7380091697915932147?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/7380091697915932147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=7380091697915932147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/7380091697915932147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/7380091697915932147'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/06/week-4-of-gsoc-freecadcroquet.html' title='Week 4 of GSOC - FreeCAD/Croquet'/><author><name>kayef</name><uri>http://www.blogger.com/profile/00542366408552043118</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09494998074749935978'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-754271135118519745</id><published>2008-06-24T10:48:00.001Z</published><updated>2008-06-24T10:49:40.768Z</updated><title type='text'>Week 3 of GSOC - FreeCAD/Croquet</title><content type='html'>&lt;span style="font-weight: bold;"&gt;1) What did you do in the past week?&lt;/span&gt;&lt;br /&gt;Played with FreeCAD and learning the tutorials so that I can replicate most of the interactive stuff on replicate. Still trying to implement the face/plane detection.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) What do plan to do this week?&lt;/span&gt;&lt;br /&gt;Face/plane detection for the 3D solids&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) What can possibly stand in the way of your work?&lt;/span&gt;&lt;br /&gt;I just moved to a new place, trying to settle down ASAP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-754271135118519745?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/754271135118519745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=754271135118519745' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/754271135118519745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/754271135118519745'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/06/week-3-of-gsoc-freecadcroquet.html' title='Week 3 of GSOC - FreeCAD/Croquet'/><author><name>kayef</name><uri>http://www.blogger.com/profile/00542366408552043118</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09494998074749935978'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3009865372128506306.post-3822997095908926437</id><published>2008-06-24T10:46:00.001Z</published><updated>2008-06-24T10:48:12.853Z</updated><title type='text'>Week 2 of GSOC - FreeCAD/Croquet</title><content type='html'>&lt;span style="font-weight: bold;"&gt;1) What did you do in the past week?&lt;/span&gt;&lt;br /&gt;-Cleaning up some code and solved an initialization problem of the Croquet world.&lt;br /&gt;-Also released a working version of FreeCAD/Croquet using Monticello.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2) What do plan to do this week?&lt;/span&gt;&lt;br /&gt;-Implement face detection of 3D solids starting with the cube first.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3) What can possibly stand in the way of your work?&lt;/span&gt;&lt;br /&gt;-Might not have enough time because I'm moving to another place this week.&lt;br /&gt;-Croquet keeps crashing on me in debug mode due to asynchronous processes thus slowing down progress.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3009865372128506306-3822997095908926437?l=blog.summer.squeak.org' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.summer.squeak.org/feeds/3822997095908926437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://www.blogger.com/comment.g?blogID=3009865372128506306&amp;postID=3822997095908926437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/3822997095908926437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3009865372128506306/posts/default/3822997095908926437'/><link rel='alternate' type='text/html' href='http://blog.summer.squeak.org/2008/06/week-2-of-gsoc-freecadcroquet.html' title='Week 2 of GSOC - FreeCAD/Croquet'/><author><name>kayef</name><uri>http://www.blogger.com/profile/00542366408552043118</uri><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='09494998074749935978'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>