Announcing the release of StarLogo 2.0

Hello StarLogo Users.

We are pleased to announce the much anticipated release of StarLogo 2.0.  We have added many features to StarLogo over the last year, and we're still working on a couple more (look for the upcoming release of StarLogo en Espanol and "Server Side StarLogo").  Highlights of our new release include:
  *A redesigned interface
  *Turtle shapes
  *A graphing wizard with bar charts, line charts, histograms, scatterplots and xy plots.
  *A templating tool
  *A legend widget
  *Tool tips
  *Speed control
  *Many more printing and saving options
  *Many new commands, including improved list support

Below you will find detailed descriptions of the new features and bug fixes since our last release.  

You can download StarLogo from the new StarLogo web site at http://education.mit.edu/starlogo.  Also be sure to check out Adventures in Modeling and the StarLogo Design Discussion Area described below.

Enjoy!

	The StarLogo Team
	
=============================================================	

Adventures in Modeling and the StarLogo Design Discussion Area

Last year we published a book, Adventures in Modeling (http://education.mit.edu/starlogo/adventures), that introduces learners of all ages to designing, creating and exploring models in StarLogo. Adventures in Modeling focuses on a series of open ended design challenges that build in complexity. It comes with a series of sample projects, that are available inside of your StarLogo download folder. 

The StarLogo Design Discussion Area (http://education.mit.edu/dda) is an online forum for posting and discussing StarLogo projects. It may be used in conjunction with Adventures in Modeling, or simply to share StarLogo models with other users. There are already hundreds of proejcts available there to browse and to search. Through the DDA, you can look at other user's code and use StarLogo models as applets in a compatible browser. 

================================================================

Bugs Fixed Since 1.2.2:

* Fixed parsing of statements similar to: sum-of-turtles [xcor] /  count-turtles so that you don't need parens: (sum-of-turtles [xcor]) /  count-turtles.

* If a turtle dies while being asked to do something (inside of an  ask-turtles), he will stop obeying the commands, but will stay alive  (in a zombie state) long enough to respond to all queries about his  state (e.g. xcor, ycor, etc). Once the ask-turtles is finished, the  zombie turtle will then die.

* A turtle that dies while grabbing other turtles now lets go before dying.

* Turtles shouldn't show up outside the patch grid anymore (sometimes  they would appear one patch outside).

* Compiler now reports a bug if you forget to put a space between your  operators (+, -, *, /, etc) inside of a parenthesized expression (e.g.  set foo (3 +4) will now report an error that +4 isn't understood).  Previously, the erroneous operator and whatever followed it were  ignored and not included in the compiled code.

* max-of-turtles now returns the proper answer if the answer is  negative.

* Sometimes when StarLogo saved/loaded a project, all of the buttons  got the same id number (invisible to the user) causing all but one  button to stop working. This is fixed.

* Fixed a bug in diffuse4 that caused it to hang.

* The case primitive now takes up MUCH less memory (a constant amount)  on the stack, so you can have enormous (or even small) case statements  without overflowing the turtle's stack memory.

* Widgets that need to draw black actually draw in a really really dark  gray now, so that if you drag them ontop of a black patch grid, they're  still visible.

* When an enumerated variable (e.g. turtles-own [temp [hot cold warm]])  is the same name as some other already defined thing, the compiler now  reports an error.

* setplot-xrange and setplot-yrange arguments were interpreted in the  wrong order.

* When you drop the max or raise the min value of a slider, the current  value, if out of range, will now peg itself to the min or max,  whichever is closer.

* Sometimes when you compiled, the cursor would remain an hourglass. We  think this one is licked.

* Sometimes after you compiled by clicking on the Interface window onto  a button, the cursor would get stuck as a Move cursor. We think this  one is licked, too.

* Sometimes the keyboard focus would be lost from the interface window,  making the keyboard command 'delete' to delete a widget not work right.  This always works now.

* All the following commands now exclude the caller turtle from the  calculation: sum-of-turtles, sum-of-breeds, list-of-turtles,  list-of-breeds, one-of-turtles, one-of-breeds, min-of-turtles,  max-of-turtles, min-of-breeds, max-of-breeds, average-of-turtles,  average-of-breeds, variance-of-turtles, variance-of-breeds,  median-of-turtles, median-of-breeds, list-of-turtles-with,  list-of-breeds-with, min-of-turtles-with, min-of-breeds-with,  max-of-turtles-with, max-of-breeds-with, average-of-turtles-with,  average-of-breeds-with, variance-of-turtles-with,  variance-of-breeds-with, median-of-turtles-with, median-of-breeds-with.  All the other variants of these commands were already correct.

Note: count-turtles, count-turtles-with, count-breeds,  count-breeds-with will not exclude the calling turtle. That's so that  whenever a turtle asks for this value, he gets the same value as all  other turtles.

* When we save the output window and the info window, they now save  with Windows linefeeds, rather than always using a \n.

* Fixed memory leak in count-turtles-with.

* one-of-{turtles, breeds}-{here, at, towards} now returns a random  turtle who is not yourself, rather than just the topmost turtle on that  patch.

* You can now change the size of of the patch grid while the turtles  are moving without causing a crash.

* If you ask a turtle to do something, but that turtle doesn't exist,  StarLogo used to freeze up. That's fixed.

* When you invoke New Project from the menu, it now creates 100  turtles, just like starting the StarLogo application.

* If you load a project that causes the interface window to become  larger than your screen, we shrink it to fit.

* We now use a better oval drawing algorithm in the paint tools.


Features Added Since 1.2.2:

* Added shapes feature for turtles.  There is a shape editor that  allows you to create new shapes, and a shape chooser that allows you to  choose individual shapes for your turtles.  Turtle shape can also be  set using the setshape command.  Shapes appear at patch sizes 8, 16,  and 32.

* Added templates (not compatible with Mac OS 9) that allow users to  easily begin creating models using a "wizard".

* Added many new kinds of plots (histograms, bar charts, x-y plots,  scatter plots), all of which can be placed on the StarLogo interface  and created with simple point and click procedures.

* Added a legend widget that allows the user to define what specific  colors or shapes represent.

* Removed the MS-DOS Windows that pops up when you run StarLogo in  Microsoft Windows.

* Support more of Resnick's TT&TJ StarLogo syntax, including  turtles-have, patches-have, added dash between "set" and the variable  name (e.g. turtles-have [foo-bar]  set-foo-bar 5) but only if the  variable itself has a dash in it.

* Increased StarLogo's maximum memory size to 256 MB. It won't take 256  MB initially, but if need be, it will grow to that size. In Microsoft  Windows, the maximum size will be capped at the amount of free physical  RAM or 256 MB, whichever is smaller (with a minimum of 32 MB allocated  to StarLogo).

* Scroll-wheel mice should be supported in Java 1.4, thus being  supported by StarLogo as we install it on Microsoft Windows. If you  have a different platform that comes with its own Java, scroll-wheel  mouse support must be added by your platform vender's Java, not by us.

* Support for native MacOSX Java application.

* In Microsoft Windows, changed the default folder that File/Open...  and File/Save menu items go to the Users's My Documents folder.

* Swing is now required (and included) on all supported StarLogo  platforms. This should fix problems where the control center resize  panel bar was not working on MacOS 9.

* Added tooltips. Users can add their own tooltips to their buttons,  sliders, monitors, text boxes and legends.

* Added cut-copy-paste support in the Interface window for buttons,  sliders, monitors, text boxes, legends and plot widgets.

* We no longer run the compiler every time after you click out of the  procedures page. We now run it on-demand, the first time you perform an  action that requires compiled code after making a modification to the  procedures pane, a button, slider or monitor.

* You can now only resize the patches to sizes 1, 2, 3, 4, 5, 6, 7, 8,  16, and 32. Shapes only show up in sizes 8, 16 and 32.

* Added code template generation feature to make it easier to begin  certain kinds of StarLogo projects without training in the StarLogo  programming language.

* Added a speed-control slider to enable you to control the speed of  StarLogo simulations. Believe it or not, sometimes StarLogo runs too  fast. With this slider you can slow it down and even pause it.

* Can now save the patches/turtles as a GIF (without the interface part  of the window).

* Added a display in the color bar to show you what color is currently  selected. You can also type in your own StarLogo expression (that  evaluates to a number between 0 and 140 (larger numbers will be  rounded)) to select the perfect color.

* Added a status bar to the main Interface window to show you what  patch your cursor is over. Also lets you see the size of a widget as  you resize it.

* StarLogo now saves a backup project every three minutes and deletes  it when you manually save your project. Think of this as insurance in  case StarLogo crashes on you. When StarLogo starts up and tries to load  a project that has a backup, it will let you choose which version to  keep, the backup or the most recently saved version of the project.

* Put the StarLogo project's name on the Control Center window so you  can tell which one is which if you have StarLogo running twice (You can  only run StarLogo twice on Windows and Unix).

* Added a trash can to the user interface to make it really obvious how  to delete a widget. Drag it to the trash. Note: the trash deletes the  widget immediately. There is no undo.

* remove, sublist, insert, remove-element, reverse

* asin, acos, log

* Removed the Stop All button from the Control Center and replaced it  with a Stop sign button in the Interface window. When your project is  running, you tend to look at the Interface window, not the Control  Center. And a button with words was less obvious to click on than a  picture of a stop sign.

* Removed the Clear Graphics button from the Control Center. No one  ever touched it. And once people started painting things on the patch  canvas, they didn't want to casually clear their painting with one  click.

* Added a Snap to Grid feature in the Interface window.

* Much of StarLogo has Spanish support. We'll release a  spanish-language version of StarLogo soon.

* You can now import pictures (JPG, GIF and PNG) without having  Quicktime installed. If you have Quicktime installed (and StarLogo can  tell) it'll use it instead, for loading pictures, because Quicktime  supports more image formats than we do.

* You can now save the graphing window as a GIF.

* StarLogo can now print any of its windows.

* Paint tools are now always visible instead of hidden behind a toolbar  button.

* Added Show Spaces menu item so you can see little squares between  words in the procedures pane. This makes it easier for kids to copy  code.

* The command center now displays what you type in bold, and what  StarLogo returns in plain text. It's prettier, no?

* The default patch size is now 8x8, and there are 51x51 patches.

* You can now turn off the gray border around text widgets.

* Note: partner and partners may only be used textually within a grab  statement. A procedure called from within grab does not have access to  partner or partners.

* If you used plot commands in your StarLogo 1.x project and load it  into StarLogo 2.0, you'll get a new plot widget created in your  interface. This is where the plot commands will go. You will not be  able to delete this plot widget (unless you remove all the plot  commands from your code).

* To push a button from code, you now have to say start<buttonname>  instead of <buttonname> in order to avoid name conflicts by users  naming the button the same as a procedure.


New Commands Added Since 1.2.2:

* asin, acos * alive?, alive?-of * ask-turtles-with, ask-patches-with, ask-frogs-with * plotxy * clear-plots * log * dolist, dotimes * sort-num-list, average-of-list, max-of-list, median-of-list,  min-of-list,    mode-of-list, sdev-of-list, variance-of-list * average-of-patches, average-of-turtles, median-of-patches,  median-of-turtles,    mode-of-patches, mode-of-turtles, sdev-of-patches, sdev-of-turtles,    variance-of-patches, variance-of-turtles * sum-of-patches-with, min-of-patches-with, max-of-patches-with,    average-of-patches-with, median-of-patches-with, mode-of-patches-with,    variance-of-patches-with, sdev-of-patches-with * sum-of-turtles-with, min-of-turtles-with, max-of-turtles-with,    average-of-turtles-with, median-of-turtles-with, mode-of-turtles-with,    variance-of-turtles-with, sdev-of-turtles-with, sum-of-frogs-with, min-of-frogs-with, max-of-frogs-with, average-of-frogs-with, median-of-frogs-with, mode-of-frogs-with, variance-of-frogs-with, sdev-of-frogs-with,
* print-status * insert, remove, remove-element, reverse * save-next-version * shape, shape-at, shape-towards * setshape, setshape-of, setshape-at, setshape-towards * who-max-of-frogs, who-max-of-frogs-with, who-max-of-turtles,    who-max-of-turtles-with, who-min-of-frogs, who-min-of-frogs-with,    who-min-of-turtles, who-min-of-turtles-with


Bugs Remaining in 2.0:

* Can't run StarLogo applets via https.

* Windows 2000 and XP introduced a new kind of mouse pointer feature  called a pointer shadow. When you have this turned on (which it is by  default) it wreaks havoc with graphical Java applications. It causes  them to draw much more slowly and makes the cursor flicker on and off  really fast. To get much better graphics performance in StarLogo, go to  your Mouse control panel, and turn Pointer Shadows off.

* Code templates don't work on MacOS 9 or X. The code doesn't properly  interpret the difference between Windows and Mac/Unix line feeds.

* Don't use the backtick (`) character in your StarLogo code or in the  Info window. We don't deal with it well.

* On Windows 95, you see the Windows 2000 trash can, rather than the  Windows 95 trash can. On Unix systems you always see the Windows 2000  trash can, rather than the ones native to KDE or Gnome or whatever  desktop manager you are using.

* The turtle in the about box has a strange smile.

* Many dialog boxes aren't aesthetically pleasing. We'll work on it.  Java (AWT and Swing) sure doesn't make this easy.

* MacOS X does not recognize file type and creator codes any more.  StarLogo has been changed to open any type of file, but to be safe, on  MacOS X we save project with a .slogo ending (and no creator/type  code). If you have saved a project in MacOS X and try to use it in  MacOS 9/Classic it will not have a proper creator/type code. You'll  need to add a creator code of 'StrL' and a type code of 'TEXT' to be  able to load it.

* Double-clicking on a project file in MacOS X will properly launch  StarLogo, but will not open the project. This is a bug in Java in MacOS  X and as of MacOS X 10.2, has not been resolved.

* Still no 3-D holographic cerebral interface. 