<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ascend4.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aakash</id>
	<title>ASCEND - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://ascend4.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Aakash"/>
	<link rel="alternate" type="text/html" href="https://ascend4.org/Special:Contributions/Aakash"/>
	<updated>2026-04-28T22:00:19Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=3013</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=3013"/>
		<updated>2011-08-20T02:23:56Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Summary of work done */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Summary of work done ==&lt;br /&gt;
&lt;br /&gt;
* Ported the PyGTK GUI from libglade to GTK Builder ({{bug|493}})&lt;br /&gt;
* Improvements to the observer functionality:&lt;br /&gt;
*# Added the ability to delete an observer tab.&lt;br /&gt;
*# Rows can now be deleted, either by using the right click popup menu or the delete or backspace key.&lt;br /&gt;
*# Improved the way the observer tab behaves when the model is reloaded or a new model is loaded.&lt;br /&gt;
*# Better support for multiple observers.&lt;br /&gt;
*# Regarding plotting, the user can now select which columns to plot and whether to leave out points where the solver failed.&lt;br /&gt;
&lt;br /&gt;
* Implemented 1D Study ({{bug|294}}) in PyGTK with the following features:&lt;br /&gt;
*# Intuitive units of measurement checking.&lt;br /&gt;
*# Option of Logarithmic and Linear step distribution&lt;br /&gt;
*# Option to run a particular method before solving for each point.&lt;br /&gt;
*# The values for which the solver failed are highlighted in red in the observer tab, with the solver error as the tooltip for that row.&lt;br /&gt;
*# It uses a separate Study status dialog, derived from the existing solver status dialog. The dialog shows relevant information regarding the point being solved currently, no of points solved, etc.&lt;br /&gt;
&lt;br /&gt;
* Implemented Automatic (weekly) checking for updates.&lt;br /&gt;
&lt;br /&gt;
* Improved the units of measurement checking in the &amp;quot;Variable Properties&amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
* Fixed some bugs- {{bug|473}}, {{bug|360}}, {{bug|515}}, {{bug|510}}, {{bug|514}}, {{bug|331}}.&lt;br /&gt;
&lt;br /&gt;
== More that can be done ==&lt;br /&gt;
&lt;br /&gt;
Every few days, John and I would have a discussion regarding the work I had done and what more I could do. During those, a number of things were suggested, and I worked on many of them. However for a project like ASCEND, the possibilities are unlimited, and there is a lot that can still be done:&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;Observer Tab&amp;quot;,&lt;br /&gt;
*# Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
*# Extend the plotting interface for (optionally) dual plots, example - http://matplotlib.sourceforge.net/examples/api/two_scales.html#api-two-scales&lt;br /&gt;
*# Add the ability to select line type using matplotlib specifiers like &amp;quot;r-&amp;quot;, &amp;quot;b.&amp;quot; etc.&lt;br /&gt;
*# Presently, tainting of rows is only done when the solver fails while the Study function is used. It could also be implemented for the normal process of solving for individual values.&lt;br /&gt;
&lt;br /&gt;
* In the new &amp;quot;Study&amp;quot; functionality,&lt;br /&gt;
*# It could be made faster by reducing the rate at which the GUI is updated.&lt;br /&gt;
*# One could add an option for writing the output data to a file, while solving.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;incidence matrix&amp;quot; window, we could add coloring of diverged/converged blocks, and light-grey background shading to identify the blocks. This would make it much easier to see where things were going wrong.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;diagnose&amp;quot; window, we should get rid of (or else improve) the current fairly cryptic colour-scheme for points, and try to improve usability. This window aims to provide similar functionality to the &amp;quot;incidence matrix&amp;quot; window, but with more detail allowing more debugging and investigation to happen.&lt;br /&gt;
&lt;br /&gt;
*# Values of variables should be shown with the preferred units, if possible, but perhaps when hovering over the value it should show the scaled value as used by the solver.&lt;br /&gt;
*# It should be easy to find which equations are diverging,  which variables have gone to their limits or have gone to crazy big values, and the shortest possible name for variables should be used, rather than the first one that ASCEND manages to locate (variables have ALIASES and ARE_THE_SAME relationships which means that there is often a number of different ways of referring to a single solver variable).&lt;br /&gt;
&lt;br /&gt;
* Some bugs which need attention :&lt;br /&gt;
*# {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
*# {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
*# {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
*# {{bug|429}} default units often not very useful&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19 Aug 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The work done in the last few days :&lt;br /&gt;
&lt;br /&gt;
* Implemented Automatic Weekly Update checking.&lt;br /&gt;
* Implemented better units of measurement checking in the &amp;quot;Variable Properties&amp;quot; dialog box.&lt;br /&gt;
** [[File:PyGTK Study - 19.png]]&lt;br /&gt;
* Fixed {{bug|518}}&lt;br /&gt;
* Fixed {{bug|473}}&lt;br /&gt;
* Found some plotting related bugs in my code and fixed them.&lt;br /&gt;
* Tested out the updated trunk on Ubuntu and Windows 7 to ensure that everything was working alright.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 Aug 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The progress made this week is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
&lt;br /&gt;
*# Multiple rows can now be selected and deleted.&lt;br /&gt;
*#* [[File:PyGTK Study - 18.png]]&lt;br /&gt;
*# A column can now be preselected as a y-variable (for plotting) by right clicking on it and selecting plot.&lt;br /&gt;
*# Plotting and copy to clipboard were not working properly if used after deleting any column or for columns which had been added to the observer tab late, ie., after addition of some rows. Fixed all of those problems.&lt;br /&gt;
&lt;br /&gt;
* Did a merge from the current trunk, to make sure that everything was working properly.&lt;br /&gt;
&lt;br /&gt;
* Updated the URLs in &amp;quot;Report a bug&amp;quot; and the &amp;quot;About&amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Automatic checking for updates.&lt;br /&gt;
&lt;br /&gt;
* Extend the plotting interface for (optionally) dual plots, example - http://matplotlib.sourceforge.net/examples/api/two_scales.html#api-two-scales&lt;br /&gt;
&lt;br /&gt;
* Add the ability to select line type using matplotlib specifiers like &amp;quot;r-&amp;quot;, &amp;quot;b.&amp;quot; etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;More that could be done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The following are suggestions given by John, regarding what more can be done to improve the GUI further.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;incidence matrix&amp;quot; window, we could add coloring of diverged/converged blocks, and light-grey background shading to identify the blocks. This would make it much easier to see where things were going wrong.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;diagnose&amp;quot; window, we should get rid of (or else improve) the current fairly cryptic colour-scheme for points, and try to improve usability. This window aims to provide similar functionality to the &amp;quot;incidence matrix&amp;quot; window, but with more detail allowing more debugging and investigation to happen.&lt;br /&gt;
&lt;br /&gt;
*# Values of variables should be shown with the preferred units, if possible, but perhaps when hovering over the value it should show the scaled value as used by the solver.&lt;br /&gt;
*# It should be easy to find which equations are diverging,  which variables have gone to their limits or have gone to crazy big values, and the shortest possible name for variables should be used, rather than the first one that ASCEND manages to locate (variables have ALIASES and ARE_THE_SAME relationships which means that there is often a number of different ways of referring to a single solver variable).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On the basis of discussions held with John during the last week, I have made some progress. The detailed report is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fixed a problem which was happening when you deleted a column, and then added a new column or row.&lt;br /&gt;
*# Fixed problems regarding the observer tab when different model is loaded, without reloading the file. Also added a dialog to warn the user -- if there are any active Observers -- that they will become inactive after reload.&lt;br /&gt;
*#* [[File:PyGTK Study - 14.png]]&lt;br /&gt;
*# It is now possible select units of measurement in the Observer tab.&lt;br /&gt;
*#* [[File:PyGTK Study - 15.png]]&lt;br /&gt;
*# When an observer is inactive (not connected to the simulation, eg after a &#039;reload&#039;) the active row will turn black, have its arrow removed etc.&lt;br /&gt;
*# Implemented tooltips which display solver errors for rows in the Observer&#039;s tab&lt;br /&gt;
*#* [[File:PyGTK Study - 16.png]]&lt;br /&gt;
&lt;br /&gt;
* Plot button,&lt;br /&gt;
*# Implemented the following interface to select the columns to be plotted.&lt;br /&gt;
*#* [[File:PyGTK Study - 17.png]]&lt;br /&gt;
*# As you can see, the user will also be able to leave out points where a solver error occurred.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some updates on what I have been doing, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doing Now&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** I have designed the following dialog - &lt;br /&gt;
** [[File:PyGTK Study - 12.png]]&lt;br /&gt;
** Both the columns will show the variables we have in our observer tabs. Left column is for y axis and right one is for x axis. A user can just select one from each and click on &#039;plot&#039;.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Coloring of rows and error icon are done. Now working on setting the error message as its tooltip.&lt;br /&gt;
*#* [[File:PyGTK Study - 13.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column or row.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
** About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;br /&gt;
[[Category:ASCEND Contributors]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=3009</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=3009"/>
		<updated>2011-08-19T16:35:25Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Summary of work done ==&lt;br /&gt;
&lt;br /&gt;
* Ported the PyGTK GUI from libglade to GTK Builder ({{bug|493}})&lt;br /&gt;
* Improvements to the observer functionality:&lt;br /&gt;
*# Added the ability to delete an observer tab.&lt;br /&gt;
*# Rows can now be deleted, either by using the right click popup menu or the delete or backspace key.&lt;br /&gt;
*# Improved the way the observer tab behaves when the model is reloaded or a new model is loaded.&lt;br /&gt;
*# Better support for multiple observers.&lt;br /&gt;
*# Regarding plotting, the user can now select which columns to plot and whether to leave out points where the solver failed.&lt;br /&gt;
&lt;br /&gt;
* Implemented 1D Study ({{bug|294}}) in PyGTK with the following features:&lt;br /&gt;
*# Intuitive units of measurement checking.&lt;br /&gt;
*# Option of Logarithmic and Linear step distribution&lt;br /&gt;
*# Option to run a particular method before solving for each point.&lt;br /&gt;
*# The values for which the solver failed are highlighted in red in the observer tab, with the solver error as the tooltip for that row.&lt;br /&gt;
*# It uses a separate Study status dialog, derived from the existing solver status dialog. The dialog shows relevant information regarding the point being solved currently, no of points solved, etc.&lt;br /&gt;
&lt;br /&gt;
* Implemented Automatic (weekly) checking for updates.&lt;br /&gt;
&lt;br /&gt;
* Improved the units of measurement checking in the &amp;quot;Variable Properties&amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
* Fixed some bugs- {{bug|473}}, {{bug||360}}, {{bug|515}}, {{bug|510}}, {{bug|514}}.&lt;br /&gt;
&lt;br /&gt;
== More that can be done ==&lt;br /&gt;
&lt;br /&gt;
Every few days, John and I would have a discussion regarding the work I had done and what more I could do. During those, a number of things were suggested, and I worked on many of them. However for a project like ASCEND, the possibilities are unlimited, and there is a lot that can still be done:&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;Observer Tab&amp;quot;,&lt;br /&gt;
*# Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
*# Extend the plotting interface for (optionally) dual plots, example - http://matplotlib.sourceforge.net/examples/api/two_scales.html#api-two-scales&lt;br /&gt;
*# Add the ability to select line type using matplotlib specifiers like &amp;quot;r-&amp;quot;, &amp;quot;b.&amp;quot; etc.&lt;br /&gt;
*# Presently, tainting of rows is only done when the solver fails while the Study function is used. It could also be implemented for the normal process of solving for individual values.&lt;br /&gt;
&lt;br /&gt;
* In the new &amp;quot;Study&amp;quot; functionality,&lt;br /&gt;
*# It could be made faster by reducing the rate at which the GUI is updated.&lt;br /&gt;
*# One could add an option for writing the output data to a file, while solving.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;incidence matrix&amp;quot; window, we could add coloring of diverged/converged blocks, and light-grey background shading to identify the blocks. This would make it much easier to see where things were going wrong.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;diagnose&amp;quot; window, we should get rid of (or else improve) the current fairly cryptic colour-scheme for points, and try to improve usability. This window aims to provide similar functionality to the &amp;quot;incidence matrix&amp;quot; window, but with more detail allowing more debugging and investigation to happen.&lt;br /&gt;
&lt;br /&gt;
*# Values of variables should be shown with the preferred units, if possible, but perhaps when hovering over the value it should show the scaled value as used by the solver.&lt;br /&gt;
*# It should be easy to find which equations are diverging,  which variables have gone to their limits or have gone to crazy big values, and the shortest possible name for variables should be used, rather than the first one that ASCEND manages to locate (variables have ALIASES and ARE_THE_SAME relationships which means that there is often a number of different ways of referring to a single solver variable).&lt;br /&gt;
&lt;br /&gt;
* Some bugs which need attention :&lt;br /&gt;
*# {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
*# {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
*# {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
*# {{bug|429}} default units often not very useful&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19 Aug 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The work done in the last few days :&lt;br /&gt;
&lt;br /&gt;
* Implemented Automatic Weekly Update checking.&lt;br /&gt;
* Implemented better units of measurement checking in the &amp;quot;Variable Properties&amp;quot; dialog box.&lt;br /&gt;
** [[File:PyGTK Study - 19.png]]&lt;br /&gt;
* Fixed {{bug|518}}&lt;br /&gt;
* Fixed {{bug|473}}&lt;br /&gt;
* Found some plotting related bugs in my code and fixed them.&lt;br /&gt;
* Tested out the updated trunk on Ubuntu and Windows 7 to ensure that everything was working alright.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 Aug 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The progress made this week is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
&lt;br /&gt;
*# Multiple rows can now be selected and deleted.&lt;br /&gt;
*#* [[File:PyGTK Study - 18.png]]&lt;br /&gt;
*# A column can now be preselected as a y-variable (for plotting) by right clicking on it and selecting plot.&lt;br /&gt;
*# Plotting and copy to clipboard were not working properly if used after deleting any column or for columns which had been added to the observer tab late, ie., after addition of some rows. Fixed all of those problems.&lt;br /&gt;
&lt;br /&gt;
* Did a merge from the current trunk, to make sure that everything was working properly.&lt;br /&gt;
&lt;br /&gt;
* Updated the URLs in &amp;quot;Report a bug&amp;quot; and the &amp;quot;About&amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Automatic checking for updates.&lt;br /&gt;
&lt;br /&gt;
* Extend the plotting interface for (optionally) dual plots, example - http://matplotlib.sourceforge.net/examples/api/two_scales.html#api-two-scales&lt;br /&gt;
&lt;br /&gt;
* Add the ability to select line type using matplotlib specifiers like &amp;quot;r-&amp;quot;, &amp;quot;b.&amp;quot; etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;More that could be done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The following are suggestions given by John, regarding what more can be done to improve the GUI further.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;incidence matrix&amp;quot; window, we could add coloring of diverged/converged blocks, and light-grey background shading to identify the blocks. This would make it much easier to see where things were going wrong.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;diagnose&amp;quot; window, we should get rid of (or else improve) the current fairly cryptic colour-scheme for points, and try to improve usability. This window aims to provide similar functionality to the &amp;quot;incidence matrix&amp;quot; window, but with more detail allowing more debugging and investigation to happen.&lt;br /&gt;
&lt;br /&gt;
*# Values of variables should be shown with the preferred units, if possible, but perhaps when hovering over the value it should show the scaled value as used by the solver.&lt;br /&gt;
*# It should be easy to find which equations are diverging,  which variables have gone to their limits or have gone to crazy big values, and the shortest possible name for variables should be used, rather than the first one that ASCEND manages to locate (variables have ALIASES and ARE_THE_SAME relationships which means that there is often a number of different ways of referring to a single solver variable).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On the basis of discussions held with John during the last week, I have made some progress. The detailed report is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fixed a problem which was happening when you deleted a column, and then added a new column or row.&lt;br /&gt;
*# Fixed problems regarding the observer tab when different model is loaded, without reloading the file. Also added a dialog to warn the user -- if there are any active Observers -- that they will become inactive after reload.&lt;br /&gt;
*#* [[File:PyGTK Study - 14.png]]&lt;br /&gt;
*# It is now possible select units of measurement in the Observer tab.&lt;br /&gt;
*#* [[File:PyGTK Study - 15.png]]&lt;br /&gt;
*# When an observer is inactive (not connected to the simulation, eg after a &#039;reload&#039;) the active row will turn black, have its arrow removed etc.&lt;br /&gt;
*# Implemented tooltips which display solver errors for rows in the Observer&#039;s tab&lt;br /&gt;
*#* [[File:PyGTK Study - 16.png]]&lt;br /&gt;
&lt;br /&gt;
* Plot button,&lt;br /&gt;
*# Implemented the following interface to select the columns to be plotted.&lt;br /&gt;
*#* [[File:PyGTK Study - 17.png]]&lt;br /&gt;
*# As you can see, the user will also be able to leave out points where a solver error occurred.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some updates on what I have been doing, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doing Now&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** I have designed the following dialog - &lt;br /&gt;
** [[File:PyGTK Study - 12.png]]&lt;br /&gt;
** Both the columns will show the variables we have in our observer tabs. Left column is for y axis and right one is for x axis. A user can just select one from each and click on &#039;plot&#039;.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Coloring of rows and error icon are done. Now working on setting the error message as its tooltip.&lt;br /&gt;
*#* [[File:PyGTK Study - 13.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column or row.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
** About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;br /&gt;
[[Category:ASCEND Contributors]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=3008</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=3008"/>
		<updated>2011-08-19T16:32:37Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Summary of work done ==&lt;br /&gt;
&lt;br /&gt;
* Ported the PyGTK GUI from libglade to GTK Builder ({{bug|493}}&lt;br /&gt;
* Improvements to the observer functionality:&lt;br /&gt;
*# Added the ability to delete an observer tab.&lt;br /&gt;
*# Rows can now be deleted, either by using the right click popup menu or the delete or backspace key.&lt;br /&gt;
*# Improved the way the observer tab behaves when the model is reloaded or a new model is loaded.&lt;br /&gt;
*# Better support for multiple observers.&lt;br /&gt;
*# Regarding plotting, the user can now select which columns to plot and whether to leave out points where the solver failed.&lt;br /&gt;
&lt;br /&gt;
* Implemented 1D Study ({{bug|294}} in PyGTK with the following features:&lt;br /&gt;
*# Intuitive units of measurement checking.&lt;br /&gt;
*# Option of Logarithmic and Linear step distribution&lt;br /&gt;
*# Option to run a particular method before solving for each point.&lt;br /&gt;
*# The values for which the solver failed are highlighted in red in the observer tab, with the solver error as the tooltip for that row.&lt;br /&gt;
*# It uses a separate Study status dialog, derived from the existing solver status dialog. The dialog shows relevant information regarding the point being solved currently, no of points solved, etc.&lt;br /&gt;
&lt;br /&gt;
* Implemented Automatic (weekly) checking for updates.&lt;br /&gt;
&lt;br /&gt;
* Improved the units of measurement checking in the &amp;quot;Variable Properties&amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
* Fixed some bugs- {{bug|473}}, {{bug||360}}, {{bug|515}}, {{bug|510}}, {{bug|514}}.&lt;br /&gt;
&lt;br /&gt;
== More that can be done ==&lt;br /&gt;
&lt;br /&gt;
Every few days, John and I would have a discussion regarding the work I had done and what more I could do. During those, a lot of things were suggested, and I worked on most of them. However, the following are some which still remain untouched by me:&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;Observer Tab&amp;quot;,&lt;br /&gt;
*# Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
*# Extend the plotting interface for (optionally) dual plots, example - http://matplotlib.sourceforge.net/examples/api/two_scales.html#api-two-scales&lt;br /&gt;
*# Add the ability to select line type using matplotlib specifiers like &amp;quot;r-&amp;quot;, &amp;quot;b.&amp;quot; etc.&lt;br /&gt;
*# Presently, tainting of rows is only done when the solver fails while the Study function is used. It could also be implemented for the normal process of solving for individual values.&lt;br /&gt;
&lt;br /&gt;
* In the new &amp;quot;Study&amp;quot; functionality,&lt;br /&gt;
*# It could be made faster by reducing the rate at which the GUI is updated.&lt;br /&gt;
*# One could add an option for writing the output data to a file, while solving.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;incidence matrix&amp;quot; window, we could add coloring of diverged/converged blocks, and light-grey background shading to identify the blocks. This would make it much easier to see where things were going wrong.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;diagnose&amp;quot; window, we should get rid of (or else improve) the current fairly cryptic colour-scheme for points, and try to improve usability. This window aims to provide similar functionality to the &amp;quot;incidence matrix&amp;quot; window, but with more detail allowing more debugging and investigation to happen.&lt;br /&gt;
&lt;br /&gt;
*# Values of variables should be shown with the preferred units, if possible, but perhaps when hovering over the value it should show the scaled value as used by the solver.&lt;br /&gt;
*# It should be easy to find which equations are diverging,  which variables have gone to their limits or have gone to crazy big values, and the shortest possible name for variables should be used, rather than the first one that ASCEND manages to locate (variables have ALIASES and ARE_THE_SAME relationships which means that there is often a number of different ways of referring to a single solver variable).&lt;br /&gt;
&lt;br /&gt;
* Some bugs which need attention :&lt;br /&gt;
*# {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
*# {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
*# {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
*# {{bug|429}} default units often not very useful&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19 Aug 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The work done in the last few days :&lt;br /&gt;
&lt;br /&gt;
* Implemented Automatic Weekly Update checking.&lt;br /&gt;
* Implemented better units of measurement checking in the &amp;quot;Variable Properties&amp;quot; dialog box.&lt;br /&gt;
** [[File:PyGTK Study - 19.png]]&lt;br /&gt;
* Fixed {{bug|518}}&lt;br /&gt;
* Fixed {{bug|473}}&lt;br /&gt;
* Found some plotting related bugs in my code and fixed them.&lt;br /&gt;
* Tested out the updated trunk on Ubuntu and Windows 7 to ensure that everything was working alright.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 Aug 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The progress made this week is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
&lt;br /&gt;
*# Multiple rows can now be selected and deleted.&lt;br /&gt;
*#* [[File:PyGTK Study - 18.png]]&lt;br /&gt;
*# A column can now be preselected as a y-variable (for plotting) by right clicking on it and selecting plot.&lt;br /&gt;
*# Plotting and copy to clipboard were not working properly if used after deleting any column or for columns which had been added to the observer tab late, ie., after addition of some rows. Fixed all of those problems.&lt;br /&gt;
&lt;br /&gt;
* Did a merge from the current trunk, to make sure that everything was working properly.&lt;br /&gt;
&lt;br /&gt;
* Updated the URLs in &amp;quot;Report a bug&amp;quot; and the &amp;quot;About&amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Automatic checking for updates.&lt;br /&gt;
&lt;br /&gt;
* Extend the plotting interface for (optionally) dual plots, example - http://matplotlib.sourceforge.net/examples/api/two_scales.html#api-two-scales&lt;br /&gt;
&lt;br /&gt;
* Add the ability to select line type using matplotlib specifiers like &amp;quot;r-&amp;quot;, &amp;quot;b.&amp;quot; etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;More that could be done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The following are suggestions given by John, regarding what more can be done to improve the GUI further.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;incidence matrix&amp;quot; window, we could add coloring of diverged/converged blocks, and light-grey background shading to identify the blocks. This would make it much easier to see where things were going wrong.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;diagnose&amp;quot; window, we should get rid of (or else improve) the current fairly cryptic colour-scheme for points, and try to improve usability. This window aims to provide similar functionality to the &amp;quot;incidence matrix&amp;quot; window, but with more detail allowing more debugging and investigation to happen.&lt;br /&gt;
&lt;br /&gt;
*# Values of variables should be shown with the preferred units, if possible, but perhaps when hovering over the value it should show the scaled value as used by the solver.&lt;br /&gt;
*# It should be easy to find which equations are diverging,  which variables have gone to their limits or have gone to crazy big values, and the shortest possible name for variables should be used, rather than the first one that ASCEND manages to locate (variables have ALIASES and ARE_THE_SAME relationships which means that there is often a number of different ways of referring to a single solver variable).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On the basis of discussions held with John during the last week, I have made some progress. The detailed report is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fixed a problem which was happening when you deleted a column, and then added a new column or row.&lt;br /&gt;
*# Fixed problems regarding the observer tab when different model is loaded, without reloading the file. Also added a dialog to warn the user -- if there are any active Observers -- that they will become inactive after reload.&lt;br /&gt;
*#* [[File:PyGTK Study - 14.png]]&lt;br /&gt;
*# It is now possible select units of measurement in the Observer tab.&lt;br /&gt;
*#* [[File:PyGTK Study - 15.png]]&lt;br /&gt;
*# When an observer is inactive (not connected to the simulation, eg after a &#039;reload&#039;) the active row will turn black, have its arrow removed etc.&lt;br /&gt;
*# Implemented tooltips which display solver errors for rows in the Observer&#039;s tab&lt;br /&gt;
*#* [[File:PyGTK Study - 16.png]]&lt;br /&gt;
&lt;br /&gt;
* Plot button,&lt;br /&gt;
*# Implemented the following interface to select the columns to be plotted.&lt;br /&gt;
*#* [[File:PyGTK Study - 17.png]]&lt;br /&gt;
*# As you can see, the user will also be able to leave out points where a solver error occurred.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some updates on what I have been doing, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doing Now&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** I have designed the following dialog - &lt;br /&gt;
** [[File:PyGTK Study - 12.png]]&lt;br /&gt;
** Both the columns will show the variables we have in our observer tabs. Left column is for y axis and right one is for x axis. A user can just select one from each and click on &#039;plot&#039;.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Coloring of rows and error icon are done. Now working on setting the error message as its tooltip.&lt;br /&gt;
*#* [[File:PyGTK Study - 13.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column or row.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
** About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;br /&gt;
[[Category:ASCEND Contributors]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=3007</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=3007"/>
		<updated>2011-08-19T14:35:45Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19 Aug 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The work done in the last few days :&lt;br /&gt;
&lt;br /&gt;
* Implemented Automatic Weekly Update checking.&lt;br /&gt;
* Implemented better units of measurement checking in the &amp;quot;Variable Properties&amp;quot; dialog box.&lt;br /&gt;
** [[File:PyGTK Study - 19.png]]&lt;br /&gt;
* Fixed {{bug|518}}&lt;br /&gt;
* Fixed {{bug|473}}&lt;br /&gt;
* Found some plotting related bugs in my code and fixed them.&lt;br /&gt;
* Tested out the updated trunk on Ubuntu and Windows 7 to ensure that everything was working alright.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 Aug 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The progress made this week is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
&lt;br /&gt;
*# Multiple rows can now be selected and deleted.&lt;br /&gt;
*#* [[File:PyGTK Study - 18.png]]&lt;br /&gt;
*# A column can now be preselected as a y-variable (for plotting) by right clicking on it and selecting plot.&lt;br /&gt;
*# Plotting and copy to clipboard were not working properly if used after deleting any column or for columns which had been added to the observer tab late, ie., after addition of some rows. Fixed all of those problems.&lt;br /&gt;
&lt;br /&gt;
* Did a merge from the current trunk, to make sure that everything was working properly.&lt;br /&gt;
&lt;br /&gt;
* Updated the URLs in &amp;quot;Report a bug&amp;quot; and the &amp;quot;About&amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Automatic checking for updates.&lt;br /&gt;
&lt;br /&gt;
* Extend the plotting interface for (optionally) dual plots, example - http://matplotlib.sourceforge.net/examples/api/two_scales.html#api-two-scales&lt;br /&gt;
&lt;br /&gt;
* Add the ability to select line type using matplotlib specifiers like &amp;quot;r-&amp;quot;, &amp;quot;b.&amp;quot; etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;More that could be done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The following are suggestions given by John, regarding what more can be done to improve the GUI further.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;incidence matrix&amp;quot; window, we could add coloring of diverged/converged blocks, and light-grey background shading to identify the blocks. This would make it much easier to see where things were going wrong.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;diagnose&amp;quot; window, we should get rid of (or else improve) the current fairly cryptic colour-scheme for points, and try to improve usability. This window aims to provide similar functionality to the &amp;quot;incidence matrix&amp;quot; window, but with more detail allowing more debugging and investigation to happen.&lt;br /&gt;
&lt;br /&gt;
*# Values of variables should be shown with the preferred units, if possible, but perhaps when hovering over the value it should show the scaled value as used by the solver.&lt;br /&gt;
*# It should be easy to find which equations are diverging,  which variables have gone to their limits or have gone to crazy big values, and the shortest possible name for variables should be used, rather than the first one that ASCEND manages to locate (variables have ALIASES and ARE_THE_SAME relationships which means that there is often a number of different ways of referring to a single solver variable).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On the basis of discussions held with John during the last week, I have made some progress. The detailed report is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fixed a problem which was happening when you deleted a column, and then added a new column or row.&lt;br /&gt;
*# Fixed problems regarding the observer tab when different model is loaded, without reloading the file. Also added a dialog to warn the user -- if there are any active Observers -- that they will become inactive after reload.&lt;br /&gt;
*#* [[File:PyGTK Study - 14.png]]&lt;br /&gt;
*# It is now possible select units of measurement in the Observer tab.&lt;br /&gt;
*#* [[File:PyGTK Study - 15.png]]&lt;br /&gt;
*# When an observer is inactive (not connected to the simulation, eg after a &#039;reload&#039;) the active row will turn black, have its arrow removed etc.&lt;br /&gt;
*# Implemented tooltips which display solver errors for rows in the Observer&#039;s tab&lt;br /&gt;
*#* [[File:PyGTK Study - 16.png]]&lt;br /&gt;
&lt;br /&gt;
* Plot button,&lt;br /&gt;
*# Implemented the following interface to select the columns to be plotted.&lt;br /&gt;
*#* [[File:PyGTK Study - 17.png]]&lt;br /&gt;
*# As you can see, the user will also be able to leave out points where a solver error occurred.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some updates on what I have been doing, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doing Now&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** I have designed the following dialog - &lt;br /&gt;
** [[File:PyGTK Study - 12.png]]&lt;br /&gt;
** Both the columns will show the variables we have in our observer tabs. Left column is for y axis and right one is for x axis. A user can just select one from each and click on &#039;plot&#039;.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Coloring of rows and error icon are done. Now working on setting the error message as its tooltip.&lt;br /&gt;
*#* [[File:PyGTK Study - 13.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column or row.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
** About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;br /&gt;
[[Category:ASCEND Contributors]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_19.png&amp;diff=3006</id>
		<title>File:PyGTK Study - 19.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_19.png&amp;diff=3006"/>
		<updated>2011-08-19T14:33:59Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=3005</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=3005"/>
		<updated>2011-08-19T14:33:35Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;19 Aug 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The work done in the last few days :&lt;br /&gt;
&lt;br /&gt;
* Implemented Automatic Weekly Update checking and fixed a .&lt;br /&gt;
* Implemented better units of measurement checking in the &amp;quot;Variable Properties&amp;quot; dialog box.&lt;br /&gt;
** [[File:PyGTK Study - 19.png]]&lt;br /&gt;
* Fixed bug 518&lt;br /&gt;
* Fixed bug 473&lt;br /&gt;
* Found some plotting related bugs in my code and fixed them.&lt;br /&gt;
* Tested out the updated trunk on Ubuntu and Windows 7 to ensure that everything was working alright.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 Aug 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The progress made this week is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
&lt;br /&gt;
*# Multiple rows can now be selected and deleted.&lt;br /&gt;
*#* [[File:PyGTK Study - 18.png]]&lt;br /&gt;
*# A column can now be preselected as a y-variable (for plotting) by right clicking on it and selecting plot.&lt;br /&gt;
*# Plotting and copy to clipboard were not working properly if used after deleting any column or for columns which had been added to the observer tab late, ie., after addition of some rows. Fixed all of those problems.&lt;br /&gt;
&lt;br /&gt;
* Did a merge from the current trunk, to make sure that everything was working properly.&lt;br /&gt;
&lt;br /&gt;
* Updated the URLs in &amp;quot;Report a bug&amp;quot; and the &amp;quot;About&amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Automatic checking for updates.&lt;br /&gt;
&lt;br /&gt;
* Extend the plotting interface for (optionally) dual plots, example - http://matplotlib.sourceforge.net/examples/api/two_scales.html#api-two-scales&lt;br /&gt;
&lt;br /&gt;
* Add the ability to select line type using matplotlib specifiers like &amp;quot;r-&amp;quot;, &amp;quot;b.&amp;quot; etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;More that could be done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The following are suggestions given by John, regarding what more can be done to improve the GUI further.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;incidence matrix&amp;quot; window, we could add coloring of diverged/converged blocks, and light-grey background shading to identify the blocks. This would make it much easier to see where things were going wrong.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;diagnose&amp;quot; window, we should get rid of (or else improve) the current fairly cryptic colour-scheme for points, and try to improve usability. This window aims to provide similar functionality to the &amp;quot;incidence matrix&amp;quot; window, but with more detail allowing more debugging and investigation to happen.&lt;br /&gt;
&lt;br /&gt;
*# Values of variables should be shown with the preferred units, if possible, but perhaps when hovering over the value it should show the scaled value as used by the solver.&lt;br /&gt;
*# It should be easy to find which equations are diverging,  which variables have gone to their limits or have gone to crazy big values, and the shortest possible name for variables should be used, rather than the first one that ASCEND manages to locate (variables have ALIASES and ARE_THE_SAME relationships which means that there is often a number of different ways of referring to a single solver variable).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On the basis of discussions held with John during the last week, I have made some progress. The detailed report is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fixed a problem which was happening when you deleted a column, and then added a new column or row.&lt;br /&gt;
*# Fixed problems regarding the observer tab when different model is loaded, without reloading the file. Also added a dialog to warn the user -- if there are any active Observers -- that they will become inactive after reload.&lt;br /&gt;
*#* [[File:PyGTK Study - 14.png]]&lt;br /&gt;
*# It is now possible select units of measurement in the Observer tab.&lt;br /&gt;
*#* [[File:PyGTK Study - 15.png]]&lt;br /&gt;
*# When an observer is inactive (not connected to the simulation, eg after a &#039;reload&#039;) the active row will turn black, have its arrow removed etc.&lt;br /&gt;
*# Implemented tooltips which display solver errors for rows in the Observer&#039;s tab&lt;br /&gt;
*#* [[File:PyGTK Study - 16.png]]&lt;br /&gt;
&lt;br /&gt;
* Plot button,&lt;br /&gt;
*# Implemented the following interface to select the columns to be plotted.&lt;br /&gt;
*#* [[File:PyGTK Study - 17.png]]&lt;br /&gt;
*# As you can see, the user will also be able to leave out points where a solver error occurred.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some updates on what I have been doing, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doing Now&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** I have designed the following dialog - &lt;br /&gt;
** [[File:PyGTK Study - 12.png]]&lt;br /&gt;
** Both the columns will show the variables we have in our observer tabs. Left column is for y axis and right one is for x axis. A user can just select one from each and click on &#039;plot&#039;.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Coloring of rows and error icon are done. Now working on setting the error message as its tooltip.&lt;br /&gt;
*#* [[File:PyGTK Study - 13.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column or row.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
** About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;br /&gt;
[[Category:ASCEND Contributors]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2974</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2974"/>
		<updated>2011-08-07T15:21:37Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 Aug 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The progress made this week is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
&lt;br /&gt;
*# Multiple rows can now be selected and deleted.&lt;br /&gt;
*#* [[File:PyGTK Study - 18.png]]&lt;br /&gt;
*# A column can now be preselected as a y-variable (for plotting) by right clicking on it and selecting plot.&lt;br /&gt;
*# Plotting and copy to clipboard were not working properly if used after deleting any column or for columns which had been added to the observer tab late, ie., after addition of some rows. Fixed all of those problems.&lt;br /&gt;
&lt;br /&gt;
* Did a merge from the current trunk, to make sure that everything was working properly.&lt;br /&gt;
&lt;br /&gt;
* Updated the URLs in &amp;quot;Report a bug&amp;quot; and the &amp;quot;About&amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Automatic checking for updates.&lt;br /&gt;
&lt;br /&gt;
* Extend the plotting interface for (optionally) dual plots, example - http://matplotlib.sourceforge.net/examples/api/two_scales.html#api-two-scales&lt;br /&gt;
&lt;br /&gt;
* Add the ability to select line type using matplotlib specifiers like &amp;quot;r-&amp;quot;, &amp;quot;b.&amp;quot; etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;More that could be done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The following are suggestions given by John, regarding what more can be done to improve the GUI further.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;incidence matrix&amp;quot; window, we could add coloring of diverged/converged blocks, and light-grey background shading to identify the blocks. This would make it much easier to see where things were going wrong.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;diagnose&amp;quot; window, we should get rid of (or else improve) the current fairly cryptic colour-scheme for points, and try to improve usability. This window aims to provide similar functionality to the &amp;quot;incidence matrix&amp;quot; window, but with more detail allowing more debugging and investigation to happen.&lt;br /&gt;
&lt;br /&gt;
*# Values of variables should be shown with the preferred units, if possible, but perhaps when hovering over the value it should show the scaled value as used by the solver.&lt;br /&gt;
*# It should be easy to find which equations are diverging,  which variables have gone to their limits or have gone to crazy big values, and the shortest possible name for variables should be used, rather than the first one that ASCEND manages to locate (variables have ALIASES and ARE_THE_SAME relationships which means that there is often a number of different ways of referring to a single solver variable).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On the basis of discussions held with John during the last week, I have made some progress. The detailed report is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fixed a problem which was happening when you deleted a column, and then added a new column or row.&lt;br /&gt;
*# Fixed problems regarding the observer tab when different model is loaded, without reloading the file. Also added a dialog to warn the user -- if there are any active Observers -- that they will become inactive after reload.&lt;br /&gt;
*#* [[File:PyGTK Study - 14.png]]&lt;br /&gt;
*# It is now possible select units of measurement in the Observer tab.&lt;br /&gt;
*#* [[File:PyGTK Study - 15.png]]&lt;br /&gt;
*# When an observer is inactive (not connected to the simulation, eg after a &#039;reload&#039;) the active row will turn black, have its arrow removed etc.&lt;br /&gt;
*# Implemented tooltips which display solver errors for rows in the Observer&#039;s tab&lt;br /&gt;
*#* [[File:PyGTK Study - 16.png]]&lt;br /&gt;
&lt;br /&gt;
* Plot button,&lt;br /&gt;
*# Implemented the following interface to select the columns to be plotted.&lt;br /&gt;
*#* [[File:PyGTK Study - 17.png]]&lt;br /&gt;
*# As you can see, the user will also be able to leave out points where a solver error occurred.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some updates on what I have been doing, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doing Now&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** I have designed the following dialog - &lt;br /&gt;
** [[File:PyGTK Study - 12.png]]&lt;br /&gt;
** Both the columns will show the variables we have in our observer tabs. Left column is for y axis and right one is for x axis. A user can just select one from each and click on &#039;plot&#039;.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Coloring of rows and error icon are done. Now working on setting the error message as its tooltip.&lt;br /&gt;
*#* [[File:PyGTK Study - 13.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column or row.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
** About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;br /&gt;
[[Category:ASCEND Contributors]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_18.png&amp;diff=2973</id>
		<title>File:PyGTK Study - 18.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_18.png&amp;diff=2973"/>
		<updated>2011-08-07T15:21:28Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2972</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2972"/>
		<updated>2011-08-07T15:17:19Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 Aug 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The progress made this week is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
&lt;br /&gt;
*# Multiple rows can now be selected and deleted.&lt;br /&gt;
*#* [[File:PyGTK Study - 18.png]]&lt;br /&gt;
*# A column can now be preselected as a y-variable (for plotting) by right clicking on it and selecting plot.&lt;br /&gt;
*# Plotting and copy to clipboard were not working properly if used after deleting any column or for columns which had been added to the observer tab late, ie., after addition of some rows. Fixed all of those problems.&lt;br /&gt;
&lt;br /&gt;
* Did a merge from the current trunk, to make sure that everything was working properly.&lt;br /&gt;
&lt;br /&gt;
* Updated the URLs in &amp;quot;Report a bug&amp;quot; and the &amp;quot;About&amp;quot; dialog.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Automatic checking for updates.&lt;br /&gt;
&lt;br /&gt;
* Extend the plotting interface for (optionally) dual plots, example - http://matplotlib.sourceforge.net/examples/api/two_scales.html#api-two-scales&lt;br /&gt;
&lt;br /&gt;
* Add the ability to select line type using matplotlib specifiers like &amp;quot;r-&amp;quot;, &amp;quot;b.&amp;quot; etc.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;More that could be done&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The following are suggestions given by John, regarding what more can be done to improve the GUI further.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;incidence matrix&amp;quot; window, we could add coloring of diverged/converged blocks, and light-grey background shading to identify the blocks. This would make it much easier to see where things were going wrong.&lt;br /&gt;
&lt;br /&gt;
* In the &amp;quot;diagnose&amp;quot; window, we should get rid of (or else improve) the current fairly cryptic colour-scheme for points, and try to improve usability. This window aims to provide similar functionality to the &amp;quot;incidence matrix&amp;quot; window, but with more detail allowing more debugging and investigation to happen.&lt;br /&gt;
&lt;br /&gt;
*# Values of variables should be shown with the preferred units, if possible, but perhaps when hovering over the value it should show the scaled value as used by the solver.&lt;br /&gt;
*# It should be easy to find which equations are diverging,  which variables have gone to their limits or have gone to crazy big values, and the shortest possible name for variables should be used, rather than the first one that ASCEND manages to locate (variables have ALIASES and ARE_THE_SAME relationships which means that there is often a number of different ways of referring to a single solver variable).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On the basis of discussions held with John during the last week, I have made some progress. The detailed report is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fixed a problem which was happening when you deleted a column, and then added a new column or row.&lt;br /&gt;
*# Fixed problems regarding the observer tab when different model is loaded, without reloading the file. Also added a dialog to warn the user -- if there are any active Observers -- that they will become inactive after reload.&lt;br /&gt;
*#* [[File:PyGTK Study - 14.png]]&lt;br /&gt;
*# It is now possible select units of measurement in the Observer tab.&lt;br /&gt;
*#* [[File:PyGTK Study - 15.png]]&lt;br /&gt;
*# When an observer is inactive (not connected to the simulation, eg after a &#039;reload&#039;) the active row will turn black, have its arrow removed etc.&lt;br /&gt;
*# Implemented tooltips which display solver errors for rows in the Observer&#039;s tab&lt;br /&gt;
*#* [[File:PyGTK Study - 16.png]]&lt;br /&gt;
&lt;br /&gt;
* Plot button,&lt;br /&gt;
*# Implemented the following interface to select the columns to be plotted.&lt;br /&gt;
*#* [[File:PyGTK Study - 17.png]]&lt;br /&gt;
*# As you can see, the user will also be able to leave out points where a solver error occurred.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some updates on what I have been doing, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doing Now&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** I have designed the following dialog - &lt;br /&gt;
** [[File:PyGTK Study - 12.png]]&lt;br /&gt;
** Both the columns will show the variables we have in our observer tabs. Left column is for y axis and right one is for x axis. A user can just select one from each and click on &#039;plot&#039;.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Coloring of rows and error icon are done. Now working on setting the error message as its tooltip.&lt;br /&gt;
*#* [[File:PyGTK Study - 13.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column or row.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
** About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;br /&gt;
[[Category:ASCEND Contributors]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2934</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2934"/>
		<updated>2011-07-30T18:10:17Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On the basis of discussions held with John during the last week, I have made some progress. The detailed report is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fixed a problem which was happening when you deleted a column, and then added a new column or row.&lt;br /&gt;
*# Fixed problems regarding the observer tab when different model is loaded, without reloading the file. Also added a dialog to warn the user -- if there are any active Observers -- that they will become inactive after reload.&lt;br /&gt;
*#* [[File:PyGTK Study - 14.png]]&lt;br /&gt;
*# It is now possible select units of measurement in the Observer tab.&lt;br /&gt;
*#* [[File:PyGTK Study - 15.png]]&lt;br /&gt;
*# When an observer is inactive (not connected to the simulation, eg after a &#039;reload&#039;) the active row will turn black, have its arrow removed etc.&lt;br /&gt;
*# Implemented tooltips which display solver errors for rows in the Observer&#039;s tab&lt;br /&gt;
*#* [[File:PyGTK Study - 16.png]]&lt;br /&gt;
&lt;br /&gt;
* Plot button,&lt;br /&gt;
*# Implemented the following interface to select the columns to be plotted.&lt;br /&gt;
*#* [[File:PyGTK Study - 17.png]]&lt;br /&gt;
*# As you can see, the user will also be able to leave out points where a solver error occurred.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some updates on what I have been doing, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doing Now&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** I have designed the following dialog - &lt;br /&gt;
** [[File:PyGTK Study - 12.png]]&lt;br /&gt;
** Both the columns will show the variables we have in our observer tabs. Left column is for y axis and right one is for x axis. A user can just select one from each and click on &#039;plot&#039;.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Coloring of rows and error icon are done. Now working on setting the error message as its tooltip.&lt;br /&gt;
*#* [[File:PyGTK Study - 13.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column or row.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
** About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2933</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2933"/>
		<updated>2011-07-30T18:08:51Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;30 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
On the basis of discussions held with John during the last week, I have made some progress. The detailed report is as follows-&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fixed a problem which was happening when you deleted a column, and then added a new column or row.&lt;br /&gt;
*# Fixed problems regarding the observer tab when different model is loaded, without reloading the file. Also added a dialog to warn the user -- if there are any active Observers -- that they will become inactive after reload.&lt;br /&gt;
&lt;br /&gt;
*#* [[File:PyGTK Study - 14.png]]&lt;br /&gt;
&lt;br /&gt;
*# It is now possible select units of measurement in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
*#* [[File:PyGTK Study - 15.png]]&lt;br /&gt;
&lt;br /&gt;
*# When an observer is inactive (not connected to the simulation, eg after a &#039;reload&#039;) the active row will turn black, have its arrow removed etc.&lt;br /&gt;
*# Implemented tooltips which display solver errors for rows in the Observer&#039;s tab&lt;br /&gt;
&lt;br /&gt;
*#* [[File:PyGTK Study - 16.png]]&lt;br /&gt;
&lt;br /&gt;
* Plot button,&lt;br /&gt;
*# Implemented the following interface to select the columns to be plotted.&lt;br /&gt;
&lt;br /&gt;
*#* [[File:PyGTK Study - 17.png]]&lt;br /&gt;
&lt;br /&gt;
*# As you can see, the user will also be able to leave out points where a solver error occurred.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some updates on what I have been doing, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doing Now&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** I have designed the following dialog - &lt;br /&gt;
** [[File:PyGTK Study - 12.png]]&lt;br /&gt;
** Both the columns will show the variables we have in our observer tabs. Left column is for y axis and right one is for x axis. A user can just select one from each and click on &#039;plot&#039;.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Coloring of rows and error icon are done. Now working on setting the error message as its tooltip.&lt;br /&gt;
*#* [[File:PyGTK Study - 13.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column or row.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
** About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_17.png&amp;diff=2932</id>
		<title>File:PyGTK Study - 17.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_17.png&amp;diff=2932"/>
		<updated>2011-07-30T18:05:46Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_16.png&amp;diff=2931</id>
		<title>File:PyGTK Study - 16.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_16.png&amp;diff=2931"/>
		<updated>2011-07-30T18:05:06Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_15.png&amp;diff=2930</id>
		<title>File:PyGTK Study - 15.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_15.png&amp;diff=2930"/>
		<updated>2011-07-30T18:04:53Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_14.png&amp;diff=2929</id>
		<title>File:PyGTK Study - 14.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_14.png&amp;diff=2929"/>
		<updated>2011-07-30T18:04:38Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2928</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2928"/>
		<updated>2011-07-30T18:03:40Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As per discussions held with John during the last . -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fixed a problem which was happening when you deleted a column, and then added a new column or row.&lt;br /&gt;
*# Fixed problems regarding the observer tab when different model is loaded, without reloading the file. Also added a dialog to warn the user -- if there are any active Observers -- that they will become inactive after reload.&lt;br /&gt;
*#* [[File:PyGTK Study - 14.png]]&lt;br /&gt;
*# It is now possible select units of measurement in the Observer tab.&lt;br /&gt;
*#* [[File:PyGTK Study - 15.png]]&lt;br /&gt;
*# When an observer is inactive (not connected to the simulation, eg after a &#039;reload&#039;) the active row will turn black, have its arrow removed etc.&lt;br /&gt;
*# Implemented tooltips which display solver errors for rows in the Observer&#039;s tab&lt;br /&gt;
*#* [[File:PyGTK Study - 16.png]]&lt;br /&gt;
&lt;br /&gt;
* Plot button,&lt;br /&gt;
*# Implemented the following interface to select the columns to be plotted.&lt;br /&gt;
*#* [[File:PyGTK Study - 17.png]]&lt;br /&gt;
*# As you can see, the user will also be able to leave out points where a solver error occurred.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some updates on what I have been doing, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doing Now&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** I have designed the following dialog - &lt;br /&gt;
** [[File:PyGTK Study - 12.png]]&lt;br /&gt;
** Both the columns will show the variables we have in our observer tabs. Left column is for y axis and right one is for x axis. A user can just select one from each and click on &#039;plot&#039;.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Coloring of rows and error icon are done. Now working on setting the error message as its tooltip.&lt;br /&gt;
*#* [[File:PyGTK Study - 13.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column or row.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
** About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2927</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2927"/>
		<updated>2011-07-30T17:43:30Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As per discussions held with John during the last . -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Done&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fixed a problem which was happening when you deleted a column, and then added a new column or row.&lt;br /&gt;
*# Fixed problems regarding the observer tab when different model is loaded, without reloading the file. Also added a dialog to warn the user -- if there are any active Observers -- that they will become inactive after reload.&lt;br /&gt;
*#* [[File:PyGTK Study - 14.png]]&lt;br /&gt;
*# It is now possible to allow units of measurement to be selected in the Observer tab.&lt;br /&gt;
*# When an observer is inactive (not connected to the simulation, eg after a &#039;reload&#039;) the active row will turn black, have its arrow removed etc.&lt;br /&gt;
*# Implemented tooltips which display solver errors for rows in the Observer&#039;s tab&lt;br /&gt;
*#* [[File:PyGTK Study - 15.png]]&lt;br /&gt;
&lt;br /&gt;
* Plot button,&lt;br /&gt;
*# Implemented the following interface to select the columns to be plotted.&lt;br /&gt;
*#* [[File:PyGTK Study - 16.png]]&lt;br /&gt;
*# As you can see, the user will also be able to leave out points where a solver error occurred.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Implement sorting of columns in the Observer. It would help in making plots work properly.&lt;br /&gt;
&lt;br /&gt;
* Think about ways that we can use NOTES for effective documentation of models as seen in the GUI&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some updates on what I have been doing, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doing Now&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** I have designed the following dialog - &lt;br /&gt;
** [[File:PyGTK Study - 12.png]]&lt;br /&gt;
** Both the columns will show the variables we have in our observer tabs. Left column is for y axis and right one is for x axis. A user can just select one from each and click on &#039;plot&#039;.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Coloring of rows and error icon are done. Now working on setting the error message as its tooltip.&lt;br /&gt;
*#* [[File:PyGTK Study - 13.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column or row.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
** About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2904</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2904"/>
		<updated>2011-07-24T07:24:16Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some updates on what I have been doing, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doing Now&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** I have designed the following dialog - &lt;br /&gt;
** [[File:PyGTK Study - 12.png]]&lt;br /&gt;
** Both the columns will show the variables we have in our observer tabs. Left column is for y axis and right one is for x axis. A user can just select one from each and click on &#039;plot&#039;.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Coloring of rows and error icon are done. Now working on setting the error message as its tooltip.&lt;br /&gt;
*#* [[File:PyGTK Study - 13.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column or row.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
** About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_12.png&amp;diff=2903</id>
		<title>File:PyGTK Study - 12.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_12.png&amp;diff=2903"/>
		<updated>2011-07-24T07:22:47Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2902</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2902"/>
		<updated>2011-07-24T07:20:17Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some updates on what I have been doing, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doing Now&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** I have designed the following dialog - &lt;br /&gt;
** [[File:PyGTK Study - 12.png]]&lt;br /&gt;
** Both the columns will show the variables we have in our observer tabs. Left column is for y axis and right one is for x axis. A user can just select one from each and click on &#039;plot&#039;.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Coloring of rows and error icon are done. Now working on setting the error message as its tooltip.&lt;br /&gt;
*#* [[File:PyGTK Study - 13.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
** About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_13.png&amp;diff=2901</id>
		<title>File:PyGTK Study - 13.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_13.png&amp;diff=2901"/>
		<updated>2011-07-24T07:18:47Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2900</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2900"/>
		<updated>2011-07-24T07:18:25Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;24 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some updates on what I have been doing, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Doing Now&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** I have designed the following dialog - &lt;br /&gt;
[[File:PyGTK Study - 12.png]]&lt;br /&gt;
Both the columns will show the variables we have in our observer tabs. Left column is for y axis and right one is for x axis. A user can just select one from each and click on &#039;plot&#039;.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Coloring of rows and error icon are done. Now working on setting the error message as its tooltip.&lt;br /&gt;
[[File:PyGTK Study - 13.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
** About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2861</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2861"/>
		<updated>2011-07-13T22:04:43Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
** About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
** Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2860</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2860"/>
		<updated>2011-07-13T22:02:23Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
  &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
*#* About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
*# Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2859</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2859"/>
		<updated>2011-07-13T22:01:29Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
*#* About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
*# Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_11.png&amp;diff=2858</id>
		<title>File:PyGTK Study - 11.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_11.png&amp;diff=2858"/>
		<updated>2011-07-13T21:59:36Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_10.png&amp;diff=2857</id>
		<title>File:PyGTK Study - 10.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_10.png&amp;diff=2857"/>
		<updated>2011-07-13T21:59:16Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2856</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2856"/>
		<updated>2011-07-13T21:58:59Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Made an adapted version of the SolverReporter Dialog for the Study function in PyGTK GUI . Updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
[[File:PyGTK Study - 10.png]]&lt;br /&gt;
&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
[[File:PyGTK Study - 11.png]]&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
*# About the &amp;quot;label&amp;quot; to report presence of errors, I need to discuss with John.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
*# Will look into it once I finish with the remaining problems in observer tab (see below)&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that, coloring the entire row appears to be a bit difficult because you need to set the color for each cell individually. An icon at the left of the table, with the error message as its tooltip should be easy. Will look into it.&lt;br /&gt;
&lt;br /&gt;
*# Fix problems regarding the observer tab when different model is loaded, without reloading the file.&lt;br /&gt;
&lt;br /&gt;
*# Fix a problem which is happening when you delete a column, then add a new column.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2823</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2823"/>
		<updated>2011-07-11T06:16:40Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&#039;&#039;&#039;11 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just finished some work on the observers functionality. Further updates on what I have done, and what more I have to do. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog&lt;br /&gt;
*# Log-spaced values work if BOTH the upper and lowewr bound are negative. But if one is negative and the other is positive, it does not, and the relevant entries are highlighted.&lt;br /&gt;
*# Lower bound now defaults to the current value of the variable.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*#* Fixed.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Done.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
&lt;br /&gt;
Noticed some problems regarding the observer tab when different model is loaded, without reloading the file. Need to look into it.&lt;br /&gt;
&lt;br /&gt;
P.S. :(The work related to the Study Dialog should have been there in the 10th July update, but I forgot to mention it in there)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
* In the Observer tab,&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Will do that along with the Study Reporter dialog&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2819</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2819"/>
		<updated>2011-07-10T18:11:59Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Finished doing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
*# Make sure that checking of inputs is performed.&lt;br /&gt;
*# Boxes with invalid input should be highlighted pink.&lt;br /&gt;
*# The number of steps should be a user preference.&lt;br /&gt;
*# Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
*# Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
*#* Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;To Do&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* In the Study dialog,&lt;br /&gt;
*# Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
*# Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
* A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
* When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
* In the Observer tab&lt;br /&gt;
*# After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
*# If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
*# Can you work out a way to remove a column from the observer?&lt;br /&gt;
*#* Will do it.&lt;br /&gt;
*# What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
*#* Yes, it works Ok&lt;br /&gt;
*# If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
*#* Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
* If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
** As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
* Plot button. We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_9.png&amp;diff=2816</id>
		<title>File:PyGTK Study - 9.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_9.png&amp;diff=2816"/>
		<updated>2011-07-10T12:51:48Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2815</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2815"/>
		<updated>2011-07-10T12:50:57Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
[[Finished doing]]&lt;br /&gt;
&lt;br /&gt;
- When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
- In the Study dialog,&lt;br /&gt;
    1. Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
    2. Make sure that checking of inputs is performed.&lt;br /&gt;
    3. Boxes with invalid input should be highlighted pink.&lt;br /&gt;
    4. The number of steps should be a user preference.&lt;br /&gt;
    5. Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
    6. Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
       - Yes, it wont proceed unless valid input is provided. Some of the code for checking Atom entries was taken from properties.py&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
[[To Do]]&lt;br /&gt;
&lt;br /&gt;
- In the Study dialog,&lt;br /&gt;
    1. Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
    2. Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
- A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
- When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
- In the Observer tab&lt;br /&gt;
    1. After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
    2. If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
    3. If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
    4. Can you work out a way to remove a column from the observer?&lt;br /&gt;
       - Will do it.&lt;br /&gt;
    5. What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
       - Yes, it works Ok&lt;br /&gt;
    6. If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
       - Should be possible, need to see.&lt;br /&gt;
&lt;br /&gt;
- If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
  - As far as I checked, it was fine, will do more checking though.&lt;br /&gt;
&lt;br /&gt;
- Plot button&lt;br /&gt;
    We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2814</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2814"/>
		<updated>2011-07-10T12:44:59Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&#039;&#039;&#039;10 July 2011&#039;&#039;&#039;&lt;br /&gt;
Working on improving the Observers, Study and Plot functions in PyGTK GUI. In an e-mail John sent me on 8th July, he pointed out some bugs and gave many suggestions. I have categorised them here in two parts, depending on the status. -&lt;br /&gt;
&lt;br /&gt;
[[Finished doing]]&lt;br /&gt;
&lt;br /&gt;
- When right-clicking in the Simulation tab, the &amp;quot;Study&amp;quot; option should only be available for Fixed variables. Otherwise it should be greyed out.&lt;br /&gt;
&lt;br /&gt;
- In the Study dialog,&lt;br /&gt;
        1. Remove &amp;quot;Units&amp;quot; from the right-hand side of the inputs.&lt;br /&gt;
        2. Make sure that checking of inputs is performed.&lt;br /&gt;
        3. Boxes with invalid input should be highlighted pink.&lt;br /&gt;
        4. The number of steps should be a user preference.&lt;br /&gt;
        5. Input focus for keyboard should be in the &amp;quot;lower bound&amp;quot; box when the dialog pops up, with the text selected so that use can start typing immediately.&lt;br /&gt;
        6. Does the box work properly when units are omitted? Did you re-use the code for this input box from elsewhere?&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 9.png]]&lt;br /&gt;
&lt;br /&gt;
[[To Do]]&lt;br /&gt;
&lt;br /&gt;
- In the Study dialog,&lt;br /&gt;
        1. Add a check-box saying &amp;quot;continue on failure&amp;quot; and have the box checked by default&lt;br /&gt;
        2. Study dialog should disappear after clicking &amp;quot;ok&amp;quot; (see below, Study Reporter should pop up)&lt;br /&gt;
    &lt;br /&gt;
- A new &amp;quot;Study Reporter&amp;quot; dialog should pop up for the actual STUDY calculation. This should be a specialised form of the Solver Reporter that is adapted for reporting the progress of multiple attempted solve actions. There should be a progress bar showing how many of the &amp;quot;points&amp;quot; (not &amp;quot;steps&amp;quot;) have been solved/attempted. The usual Solver Reporter should not appear.&lt;br /&gt;
&lt;br /&gt;
- When the process has finished, the box should disappear if there were no errors. Otherwise, the box should stay there, and there should be a &amp;quot;label&amp;quot; that reports the presence of errors (see below for flagging of &amp;quot;problem rows&amp;quot;). Details of the failures can be shown in the &amp;quot;error&amp;quot; tab for the moment.&lt;br /&gt;
    &lt;br /&gt;
- In the Observer tab&lt;br /&gt;
        1. After a model is reloaded, a right-click in the &amp;quot;dead&amp;quot; Observer table results in an error&lt;br /&gt;
        2. If an observer tab is &amp;quot;dead&amp;quot; clearing the Observer should be the same as closing it (confirmation dialog should pop up, etc)&lt;br /&gt;
        3. If an observer tab is &amp;quot;dead&amp;quot; then the &amp;quot;add&amp;quot; button should be greyed out.&lt;br /&gt;
        4. Can you work out a way to remove a column from the observer?&lt;br /&gt;
        5. What happens when a column is added to an observer that already contains a number of rows... does it work OK?&lt;br /&gt;
        6. If possible, can we &amp;quot;flag&amp;quot; a row in the table as being a &amp;quot;problem row&amp;quot; if the solver was not converged at the time the data was &amp;quot;kept&amp;quot;. eg perhaps the font can be red, or there can be an icon at the left of the table?&lt;br /&gt;
        I was unable to&lt;br /&gt;
- If there are multiple Observers, does everything work OK? Check carefully.&lt;br /&gt;
    &lt;br /&gt;
- Plot button&lt;br /&gt;
        We need to work on more flexibility of plotting. The first thing is some way to indicate &amp;quot;x&amp;quot; and &amp;quot;y&amp;quot; variables for a simple plot. Perhaps you could try hand-drawing some sketches of possible GUI implementations, and scan/photo them and send me? This is a slightly different topic, but it all goes to making the &amp;quot;observer&amp;quot; tab a useful tool for working with out simulations.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2806</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2806"/>
		<updated>2011-07-06T23:30:24Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
1. Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
2. Remove selected row(s) from an Observer table.&lt;br /&gt;
&lt;br /&gt;
   Now, this can be done in two ways- either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
3. Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
4. Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_8.png&amp;diff=2805</id>
		<title>File:PyGTK Study - 8.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_8.png&amp;diff=2805"/>
		<updated>2011-07-06T23:26:35Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_7.png&amp;diff=2804</id>
		<title>File:PyGTK Study - 7.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_7.png&amp;diff=2804"/>
		<updated>2011-07-06T23:25:58Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2803</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2803"/>
		<updated>2011-07-06T23:20:37Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;7 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Just added the following features, as requested by John in a discussion held on 5th July -&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Allow right-click in the Observer tab, so that if the user has selected a number of variables, they should then be able to do a study on any variable that&#039;s already selected.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 7.png]]&lt;br /&gt;
&lt;br /&gt;
As you can see in the screenshot, you can study any variable by using the right click menu.&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Remove selected row(s) from an Observer table - This can be done in two ways, either by using the right click menu, or by selecting the row and pressing the &amp;quot;BackSpace&amp;quot; or &amp;quot;Delete&amp;quot; on the keyboard.&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Clear the whole thing (but keeping the list of variables being &#039;observed&#039;). - Was Already there !&lt;br /&gt;
&lt;br /&gt;
-&amp;gt; Ability to delete an Observer tab, i.e., a close button with a confirmatory dialog box.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 8.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_6.png&amp;diff=2783</id>
		<title>File:PyGTK Study - 6.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_6.png&amp;diff=2783"/>
		<updated>2011-07-04T16:06:59Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_5.png&amp;diff=2782</id>
		<title>File:PyGTK Study - 5.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_5.png&amp;diff=2782"/>
		<updated>2011-07-04T16:06:29Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_4.png&amp;diff=2781</id>
		<title>File:PyGTK Study - 4.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_4.png&amp;diff=2781"/>
		<updated>2011-07-04T16:06:08Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_3.png&amp;diff=2780</id>
		<title>File:PyGTK Study - 3.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_3.png&amp;diff=2780"/>
		<updated>2011-07-04T16:05:41Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2779</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2779"/>
		<updated>2011-07-04T16:05:09Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;4 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
I have implemented the STUDY functionality in the PyGTK GUI partially. Its working for linear distribution of one variable. I need to complete it for the logarithmic distribution, that should not take much time. It is slightly different from what I had planned earlier. &lt;br /&gt;
&lt;br /&gt;
Usage -&lt;br /&gt;
&lt;br /&gt;
1. For all variables you want to watch, first you need to &#039;Observe&#039; them.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 3.png]]&lt;br /&gt;
&lt;br /&gt;
2. Then, just right click on the variable you want to &amp;quot;Study&amp;quot; and select Study.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 4.png]]&lt;br /&gt;
&lt;br /&gt;
3. In the dialog box, one can set the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and there is also an option to run a particular method before each solving. For convenience, it retrieves the lower and upper bounds of the variable as mentioned in its properties.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 5.png]]&lt;br /&gt;
&lt;br /&gt;
4. Clicking on OK does everything, and the results can be seen in the Observer tab.&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_1.png&amp;diff=2767</id>
		<title>File:PyGTK Study - 1.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_1.png&amp;diff=2767"/>
		<updated>2011-07-01T16:08:47Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2766</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2766"/>
		<updated>2011-07-01T16:08:31Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:PyGTK_Study_-_2.png&amp;diff=2765</id>
		<title>File:PyGTK Study - 2.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:PyGTK_Study_-_2.png&amp;diff=2765"/>
		<updated>2011-07-01T16:07:48Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2764</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2764"/>
		<updated>2011-07-01T16:07:31Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;1 July 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Implementing the STUDY function in PyGTK GUI now. Had a discussion with John, and for the beginning it will only be 1-D, i.e, we will be varying only one parameter. The implementation will work together with the &#039;Observers&#039; functionality which is already there. &lt;br /&gt;
&lt;br /&gt;
The idea is that the user can &#039;observe&#039; all the variables to be studied. Then, one can select which one of them will be varied. There will be a dialog box for setting the upper bound, lower bound, number of steps, distribution type (linear or logarithmic) and an option to run a particular method before each solving. We have also thought of adding a feature where the output data could be written to a file during the solving.&lt;br /&gt;
&lt;br /&gt;
I plan to make it something like this -&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 1.png]&lt;br /&gt;
&lt;br /&gt;
[[File:PyGTK Study - 2.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}} Changing value of solved variable should force removal of &#039;solved&#039; indication&lt;br /&gt;
* {{bug|501}} pygtk/ascdev fails to load solvers under Windows 7&lt;br /&gt;
* {{bug|507}} propagate var/relation &#039;solved&#039; status up through model hierarchy in processVarStatus&lt;br /&gt;
* {{bug|429}} default units often not very useful&lt;br /&gt;
* {{bug|472}} slvreq: with SOLVER statement before FIX/FREE methods, model is not updated&lt;br /&gt;
* {{bug|294}} Implement &#039;STUDY&#039; function in PyGTK GUI&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=User:Aakash&amp;diff=2737</id>
		<title>User:Aakash</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=User:Aakash&amp;diff=2737"/>
		<updated>2011-06-27T14:52:27Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Progress reports */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Aakash&#039;&#039;&#039; is a Google Summer of Code 2011 Student. He has undertaken a project for GUI Improvements &amp;amp; Bug Squashing for the PyGTK GUI.&lt;br /&gt;
&lt;br /&gt;
Development branch: {{srcbranchdir|aakash|}}&lt;br /&gt;
&lt;br /&gt;
== Project goals ==&lt;br /&gt;
&lt;br /&gt;
The primary goals, in order of importance would be –&lt;br /&gt;
&lt;br /&gt;
* Porting extra features of old GUI to the new GUI.&lt;br /&gt;
* Addition of requested features. (will think of some too)&lt;br /&gt;
* Add whatever more that the GTK library has to offer.&lt;br /&gt;
* Check for and fix bugs in my code.&lt;br /&gt;
&lt;br /&gt;
== Progress reports ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;27 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Almost completed the port from libglade to GTK Builder. A few warnings related to missing signal connect handlers remain.&lt;br /&gt;
&lt;br /&gt;
Tried it on OS X, Ubuntu and Windows 7. Need to talk to Richard regarding easier setup in OS X. The main issue I am facing is whether to use Apple&#039;s Python or Python.org python.&lt;br /&gt;
&lt;br /&gt;
Presently looking into :&lt;br /&gt;
&lt;br /&gt;
* {{bug|294}} - Need to discuss the implementation with John. &lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;12 Jun 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Some work on replacing libglade with Gtk Builder in the PyGTK GUI {{changeset|3483}}.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;14 May 2011&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After a discussion with John, the more important bugs to be fixed are&lt;br /&gt;
* {{bug|423}}&lt;br /&gt;
* {{bug|501}}&lt;br /&gt;
* {{bug|507}} &lt;br /&gt;
* {{bug|429}} &lt;br /&gt;
* {{bug|472}} &lt;br /&gt;
* {{bug|294}}&lt;br /&gt;
&lt;br /&gt;
[[Category:GSOC2011]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=File:ASCENDnativeOSX.png&amp;diff=2722</id>
		<title>File:ASCENDnativeOSX.png</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=File:ASCENDnativeOSX.png&amp;diff=2722"/>
		<updated>2011-06-24T09:13:17Z</updated>

		<summary type="html">&lt;p&gt;Aakash: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=Building_ASCEND&amp;diff=2707</id>
		<title>Building ASCEND</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Building_ASCEND&amp;diff=2707"/>
		<updated>2011-06-22T16:39:33Z</updated>

		<summary type="html">&lt;p&gt;Aakash: /* Windows 7 64-bit with 32-bit Python */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains specific instructions for building ASCEND on systems that we know about. First you should read about [[VersionManagement]] for information on how to get hold of the source code.&lt;br /&gt;
&lt;br /&gt;
Building ASCEND (as of March 2006) requires the [http://www.scons.org/ SCons] build tool. In our opinion, SCons is a significant advance on Autotools, so we encourage you to give it a chance, if you&#039;re not familiar with it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; If you are having trouble building ASCEND, it might be worth checking out the [[BuildBot]] (link [http://ascend.cheme.cmu.edu:8011/ here]) to see if the latest sources have compiled correctly on our test server.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General instructions ==&lt;br /&gt;
&lt;br /&gt;
Building with SCons (as of Jun 2010, we recommend version 1.x) should be as simple as typing&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;scons&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get info on the [[SCons_options_for_building_ASCEND|current build options]] by typing &amp;lt;tt&amp;gt;scons -Qh&amp;lt;/tt&amp;gt;. To clean up after your build, type &amp;lt;tt&amp;gt;scons -c&amp;lt;/tt&amp;gt;. To include any building options, type &amp;lt;tt&amp;gt;scons&amp;lt;/tt&amp;gt; followed by options. For instance, type &amp;lt;tt&amp;gt;scons WITH_LOCAL_HELP = /usr/local/share/ascend/manual&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Any build option that you see in &amp;lt;tt&amp;gt;scons -Qh&amp;lt;/tt&amp;gt; can be entered into a file &amp;lt;tt&amp;gt;config.py&amp;lt;/tt&amp;gt; that you can create in the root source directory (ie &amp;lt;tt&amp;gt;~/src/ascend/trunk&amp;lt;/tt&amp;gt;). For example, you might create a config.py file like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;WITH_LOCAL_HELP = /usr/local/share/ascend/manual&lt;br /&gt;
DEFAULT_ASCENDLIBRARY = /usr/local/share/ascend/models&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, if you want to set configuration options so that they always get applied, edit your &amp;lt;tt&amp;gt;config.py&amp;lt;/tt&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
On top of that, you should also be aware that the SCons build will cache your build options in a file called &amp;lt;tt&amp;gt;options.cache&amp;lt;/tt&amp;gt;. That means that if you type a scons command with command-line options, then later without those command line options, the options from the first run will still be there, because they will have been saved in the cache.&lt;br /&gt;
&lt;br /&gt;
A major fiddle with SCons, especially on Windows, is ensuring that all the required programs are present in your path. You need to install Bison (from the GnuWin32 project). For SCons to run correctly from the MSYS command line, you will also need to add &amp;lt;tt&amp;gt;/c/Python25/Scripts:/c/Python25&amp;lt;/tt&amp;gt; to your path, so that the &#039;scons&#039; script is discovered.&lt;br /&gt;
&lt;br /&gt;
The SCons system will manage the building of FORTRAN components and is able to link to an installed version of CONOPT.&lt;br /&gt;
&lt;br /&gt;
For instructions on building with Autotools, see the old versions of this page. We&#039;re not actively supporting the Autotools build any more.&lt;br /&gt;
&lt;br /&gt;
Running &amp;lt;tt&amp;gt;scons&amp;lt;/tt&amp;gt; will create a locally-executable version of ASCEND that can be run from the source tree (&amp;lt;tt&amp;gt;pygtk/ascdev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;tcltk/generic/interface/ascend4&amp;lt;/tt&amp;gt;, possibly subject to some environment variable settings. Alternatively, you can install ASCEND and run it from a &#039;proper&#039; location such as ~/bin/ascend or /usr/bin/ascend, etc. To install files for ASCEND, run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;scons install INSTALL_PREFIX=/usr/local&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above will install the PyGTK GUI at /usr/local/bin/ascend and the Tcl/Tk GUI at /usr/local/bin/ascend4. Other sensible values of INSTALL_PREFIX include &amp;lt;tt&amp;gt;~/ascend&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;~&amp;lt;/tt&amp;gt;, which will install the PyGTK GUI at ~/ascend/bin/ascend and ~/bin/ascend respectively. These latter ones are good if you don&#039;t have root privileges on your system. There are a range of other INSTALL_* options available with our build script, type &amp;lt;tt&amp;gt;scons -qH&amp;lt;/tt&amp;gt; to see them. Also note the importance of the &amp;lt;tt&amp;gt;ABSOLUTE_PATHS&amp;lt;/tt&amp;gt; option for our build script. Note then when you run &#039;&amp;lt;tt&amp;gt;scons install&amp;lt;/tt&amp;gt;&#039; you don&#039;t get all the files in the model library, you only get a filter set according to the [[PACKAGE metafiles]] contained in the [[ModelLibrary]].&lt;br /&gt;
&lt;br /&gt;
Some more details on the implementation of the ASCEND build process via SCons is given in [[Developer&#039;s_Manual#Build_system]].&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk GUI ==&lt;br /&gt;
&lt;br /&gt;
In order to build the original Tck/Tk GUI, you need a Tcl/Tk distribution. Recently we have modified ASCEND so that it can run with Tcl/Tk 8.4. Standard Tcl/Tk binary packages can be used, such as those included in Fedora Core 5 (Note, the tcl-devel and tk-devel packages required as well). For Windows they available from ActiveState, see:&lt;br /&gt;
&lt;br /&gt;
http://www.activestate.com/activetcl&lt;br /&gt;
&lt;br /&gt;
At present, detection of Tcl/Tk is not particularly sophisticated. &amp;lt;tt&amp;gt;SConstruct&amp;lt;/tt&amp;gt; just looks for &amp;lt;tt&amp;gt;tcl.h&amp;lt;/tt&amp;gt; in your standard include path. So you might need to tweak. Check the &amp;lt;tt&amp;gt;scons -h&amp;lt;/tt&amp;gt; list of configuration options for more. On Debian-based systems, try something like &amp;lt;tt&amp;gt;scons TCL_CPPPATH=/usr/include/tcl8.4&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Python interface ==&lt;br /&gt;
&lt;br /&gt;
See PythonWrapper for more information. You will need to have SWIG 1.3.24 or newer and Python 2.4 or newer installed. These are both easy to install for both Windows and Linux.&lt;br /&gt;
&lt;br /&gt;
To run the PyGTK interface requires more dependencies, see the PythonWrapper page for full details.&lt;br /&gt;
&lt;br /&gt;
== Instructions for Linux ==&lt;br /&gt;
&lt;br /&gt;
In general, see [[Prerequisites for Linux]]. You will be using &amp;lt;tt&amp;gt;scons&amp;lt;/tt&amp;gt; to build ASCEND. We update these distribution-specific notes at the time that we implement support for that particular distro, so it&#039;s possible that if you&#039;re using an old distro, you may need to go back and use an old version of the code.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 10.10 ===&lt;br /&gt;
&lt;br /&gt;
ASCEND compiles fine on Ubuntu 10.10, but you need to use the latest code from the &#039;trunk&#039; of our [[VersionManagement|subversion repo]]. Subversion r3082 corrects a bug that was preventing use of SCons 2.x, as supplied as part of this distro. Otherwise, required packages are the same as for 10.04, see below. It is recommended that all &#039;optional&#039; packages are installed at the time of building ASCEND.&lt;br /&gt;
&lt;br /&gt;
For IPOPT, which is an optional component of ASCEND, you should see the build instructions [[IPOPT|here]].&lt;br /&gt;
&lt;br /&gt;
It appears that in Ubuntu 10.10, GraphViz has been upgraded and is not longer compatible with ASCEND. ASCEND should build fine without it, although you will be missing the [[incidence graph]] feature as a result (see {{bug|443}}).&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 10.04 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;There is currently a problem with building ASCEND on this platform, due to an error thrown by SWIG version 1.3.40 (ASCEND {{bug|403}}). This error is not seen when running SWIG version 1.3.38 or earlier. &#039;&#039;A temporary workaround is to install the Ubuntu Karmic version if SWIG, available [http://packages.ubuntu.com/karmic/i386/swig/download from here].&#039;&#039;&amp;lt;/s&amp;gt; (this bug is now fixed in the subversion repo)&lt;br /&gt;
&lt;br /&gt;
For [[IPOPT]], which is an optional solver that can be used by ASCEND, you should additionally see the build instructions [[IPOPT|here]].&lt;br /&gt;
&lt;br /&gt;
To build ASCEND on a clean Ubuntu 10.04 box, the following packages were required (as of trunk r2777):&lt;br /&gt;
&lt;br /&gt;
* subversion&lt;br /&gt;
* swig &amp;lt;s&amp;gt;&#039;&#039;(see note above)&#039;&#039;&amp;lt;/s&amp;gt;&lt;br /&gt;
* g++&lt;br /&gt;
* gfortran&lt;br /&gt;
* python-dev&lt;br /&gt;
* scons&lt;br /&gt;
&lt;br /&gt;
The following are optional but recommended:&lt;br /&gt;
&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* graphviz-dev&lt;br /&gt;
* libsundials-serial-dev&lt;br /&gt;
* liblapack-dev (used by IPOPT)&lt;br /&gt;
* tcl8.5-dev&lt;br /&gt;
* tk8.5-dev&lt;br /&gt;
* libtktable2.9&lt;br /&gt;
* libblas-dev&lt;br /&gt;
&lt;br /&gt;
At runtime, the following packages will add capability to ASCEND:&lt;br /&gt;
* ipython&lt;br /&gt;
* python-matplotlib&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu 10.04 ===&lt;br /&gt;
&lt;br /&gt;
Building on Kubuntu (KDE) is identical to Ubuntu (GNOME) with the exception that python-gtk2 and python-glade2 must be installed before running the resulting program. This was tested with trunk r3039. At this point in time, building also requires the package libgsl0-dev, because of some dependencies in [[FPROPS]] which need to be removed/made optional.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 9.10 ===&lt;br /&gt;
&lt;br /&gt;
Ongoing development of ASCEND is primarily done on this Ubuntu 9.10. Although ASCEND builds against the standard Ubuntu packages for Sundials, you will obtain better functionality with the [[IDA]] solver if you use a version built from latest 2.4.0 source code. The latest release fixes problems with boundary-crossing during integration.&lt;br /&gt;
&lt;br /&gt;
To build ASCEND on a clean Ubuntu 9.10 box, the following packages are required (as of trunk r2667):&lt;br /&gt;
&lt;br /&gt;
* scons&lt;br /&gt;
* swig&lt;br /&gt;
* python-dev&lt;br /&gt;
* scons&lt;br /&gt;
* g++&lt;br /&gt;
* gfortran&lt;br /&gt;
&lt;br /&gt;
The following packages are optional:&lt;br /&gt;
&lt;br /&gt;
* libsundials-serial-dev&lt;br /&gt;
* graphviz-dev&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* libblas-dev&lt;br /&gt;
* tcl8.5-dev&lt;br /&gt;
* tk8.5-dev&lt;br /&gt;
* tktable2.9&lt;br /&gt;
&lt;br /&gt;
At runtime, the following packages will add capability to ASCEND:&lt;br /&gt;
&lt;br /&gt;
* ipython&lt;br /&gt;
* python-matplotlib&lt;br /&gt;
&lt;br /&gt;
For the [[IPOPT]] solver, you will also need to build that separately from source -- see [[IPOPT]] for details.&lt;br /&gt;
For the [[CONOPT]] and [[CMSlv]] solvers, you must obtain libconsub3.so, see [[CONOPT]] for details.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 9.04 ===&lt;br /&gt;
&lt;br /&gt;
ASCEND should build on this system without any problems, providing the prerequisited that you need are installed. Watch closely the &#039;scons&#039; output for fleeting comments which may suggest that you&#039;re missing a library or a header file, etc. Prereqs should be the same as for Ubuntu 8.04.&lt;br /&gt;
&lt;br /&gt;
Note that after updating to Ubuntu 9.04, you will probably need to rebuild and reinstall things like IPOPT and CONOPT, as gfortran errors seem to arise otherwise.&lt;br /&gt;
&lt;br /&gt;
For the [[IDA]] solver, you may need to add the scons option SUNDIALS_CPPPATH=/usr/include/sundials to make this integrator build correctly.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 8.04 LTS ===&lt;br /&gt;
&lt;br /&gt;
ASCEND built fine on Ubuntu 8.0.4 LTS when we last tried it. Numerous prerequisites must be installed, but all of these except IPOPT and CONOPT are currently available from the Ubuntu repositories. Specifically, check libsundials-serial-dev, swig, flex, bison, python-dev, tk-dev, libtktable2.9. Haven&#039;t yet tested with CONOPT, so conditional modelling has not yet been checked.&lt;br /&gt;
&lt;br /&gt;
Special treatment for the gfortran compiler is no longer required (as was required for Ubuntu 7.10).&lt;br /&gt;
&lt;br /&gt;
Building of a .deb package can be performed using the [[dtar]] tool included in the source distribution. Usage: scons dist &amp;amp;amp;&amp;amp;amp; ~/ascend/tools/dtar/dtar ~/ascend/dist/ascend-0.9.5.116.tar.bz2 ~/ascend/dist/debian.tar.gz.&lt;br /&gt;
&lt;br /&gt;
Ubuntu 8.04 uses GtkSourceView2 instead of the earlier version, with the result that source code highlighting in GEdit using a different &amp;lt;tt&amp;gt;.lang&amp;lt;/tt&amp;gt; file. We have written a new version of this file, see the page on [[syntax highlighting]] for more info.&lt;br /&gt;
&lt;br /&gt;
Currently, LyX 1.5 is not available on Ubuntu, and the manual .lyx files require this newer version. So for the moment, you must use &amp;lt;tt&amp;gt;scons WITH_DOC_BUILD=0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
ASCEND has been runninng on earlier Ubuntu versions, right back to version 5.10.&lt;br /&gt;
&lt;br /&gt;
=== Fedora 11 ===&lt;br /&gt;
&lt;br /&gt;
The following steps build ASCEND on a clean Fedora 11 machine (I tested using the Live CD installed to a qemu/kvm virtual machine):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;su&lt;br /&gt;
yum install scons subversion tk-devel flex bison gcc-gfortran gcc-c++ python-devel sundials-devel graphviz-devel swig&lt;br /&gt;
scons&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Currently (as of 16 Jun 2009), the above results in a error message from g++ while compiling the SWIG output. See {{bug|403}}. Testing on Windows has shown that SWIG 1.3.39 and 1.3.40 have this problem, but 1.3.36 does not have this problem.&amp;lt;/s&amp;gt; &#039;&#039;This bug is fixed in the pre-0.9.8 code from our SVN server.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fedora 9 ===&lt;br /&gt;
&lt;br /&gt;
ASCEND builds without any problems on Fedora 9. You need to install several packages first, including swig, tk-devel, python-devel, scons, flex, bison, gcc-gfortran, gcc-c++. There may be some problems getting the GraphViz and CUnit-related functionality working, let us know if you have problems with that. -- JP, Jun 2008.&lt;br /&gt;
&lt;br /&gt;
You can build an RPM version of ASCEND using &amp;lt;tt&amp;gt;scons dist&amp;lt;/tt&amp;gt; followed by &amp;lt;tt&amp;gt;rpm -ta ascend-0.9.5.116.tar.bz2&amp;lt;/tt&amp;gt;, providing you have RPM correctly set up. See also [[Building an RPM Package for ASCEND]].&lt;br /&gt;
&lt;br /&gt;
=== OpenSUSE ===&lt;br /&gt;
&lt;br /&gt;
OpenSUSE does not provide an up to date version of SCons (as of this writing, suse 10.2 comes with scons-0.96.91-37). You will need to download a newer version (0.96.93) ([http://sourceforge.net/project/showfiles.php?group_id=30337&amp;amp;package_id=22359 from SF.net].&lt;br /&gt;
Do not try 0.97 SCons, as it is not yet supported by the ASCEND SConscripts on the SUSE platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Update (Mar 2010)&#039;&#039; it is suggested that you try latest SCons 1.x if possible, and report your experiences here.&lt;br /&gt;
&lt;br /&gt;
=== Arch Linux ===&lt;br /&gt;
&lt;br /&gt;
To build ASCEND on Arch Linux, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;sudo pacman -S gcc gcc-fortran flex bison python scons swig tcl tk graphviz blas&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download and build sundials manually (see [[Prerequisites for Linux]]).&lt;br /&gt;
&lt;br /&gt;
Then follow the [[Building_ASCEND#General_instructions|Genereal instructions]] (running scons and scons install).&lt;br /&gt;
&lt;br /&gt;
If you have problem with SWIG 1.3.40 (scons reports that SWIG package was not found), download older version of [http://www.swig.org SWIG](1.3.38 worked for me, 1.3.24 didn&#039;t) and build it manually (./configure, make, make install). Then re-run swig with parameter &amp;lt;tt&amp;gt;SWIG=/usr/local/bin/swig&amp;lt;/tt&amp;gt; (or different location where you installed SWIG).&lt;br /&gt;
&lt;br /&gt;
When running ascend script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;LDPATH = [INSTALL_LIB] + GTKLIBPATH + LDPATH&lt;br /&gt;
TypeError: can only concatenate list (not &amp;amp;quot;NoneType&amp;amp;quot;) to list&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;LDPATH = [INSTALL_LIB] + GTKLIBPATH + LDPATH&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;if GTKLIBPATH:&lt;br /&gt;
	LDPATH = [INSTALL_LIB] + GTKLIBPATH + LDPATH&lt;br /&gt;
else:&lt;br /&gt;
&lt;br /&gt;
	LDPATH = [INSTALL_LIB] + LDPATH&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(found [http://www.mail-archive.com/ascend-sim-users@lists.sourceforge.net/msg00089.html here]).&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
Some details for build ASCEND on Gentoo Linux are on a sub-page at [[Building ASCEND/Gentoo]].&lt;br /&gt;
&lt;br /&gt;
== Instructions for Windows ==&lt;br /&gt;
&lt;br /&gt;
The only currently-supported way to build ASCEND on Windows is using MinGW/MSYS and the GCC compiler. There has previously been partial success with the Microsoft compiler tools, but these are not currently actively being used or tested.&lt;br /&gt;
&lt;br /&gt;
=== Windows 7 64-bit with 32-bit Python ===&lt;br /&gt;
&lt;br /&gt;
We are currently in the process of testing the ASCEND build on 64-bit Windows 7, running via Virtual Box on a Dell Optiplex 980, with the host OS being Ubuntu 10.04.2 LTS.&lt;br /&gt;
&lt;br /&gt;
* install &#039;mingw-get-inst&#039;, selecting to install C, C++ and Fortran compilers, plus the MSYS Basic System and the MinGW Developer Toolkit.&lt;br /&gt;
* install the [http://sourceforge.net/projects/win32svn/files/1.6.15/Setup-Subversion-1.6.15.msi/download win32svn package] from SF.net&lt;br /&gt;
* check out the source code from our [[VersionManagement|svn trunk]].&lt;br /&gt;
* download [http://www.python.org/download Python 2.7.1] 32-bit version and install with default settings. Python 3 is likely still to cause problems with our code, and we haven&#039;t tested it yet. We tried using the 64-bit version of Python 2.7.1, but SCons didn&#039;t seem to be able to detect it.&lt;br /&gt;
* download [http://sourceforge.net/projects/win32svn/files/1.6.15/Setup-Subversion-1.6.15.msi/download Glade3] and install it. &lt;br /&gt;
* download [http://sourceforge.net/projects/scons/files/scons/2.0.1/scons-2.0.1.win32.exe/download SCons 2.0.1] and install it by right-clicking and &#039;run as administrator&#039; (note that failing to do this might have been the reason that we failed with the 64-bit version of Python, above -- if you get 64-bit Python to work, let us know).&lt;br /&gt;
* Add c:\Python27 and c:\Python27\Scripts to your PATH.&lt;br /&gt;
* download [http://sourceforge.net/projects/swig/files/swigwin/swigwin-1.3.40/swigwin-1.3.40.zip/download swigwin 1.3.40] and unzip it into your MSYS home directory, then add ~/swigwin-1.3.40 to your PATH.&lt;br /&gt;
* download [http://prdownloads.sourceforge.net/gnuwin32/flex-2.5.4a-1.exe?download Flex 2.5.4a] and [http://downloads.sourceforge.net/gnuwin32/bison-2.4.1-setup.exe Bison 2.4.1] from gnuwin32.sf.net, and install them. Add the c:\Program Files (x86)\GnuWin32\bin location to your PATH.&lt;br /&gt;
* run scons from within your ASCEND working directory.&lt;br /&gt;
* the build process completes successfully&lt;br /&gt;
&lt;br /&gt;
To actually run the resulting binary, you need to also have PyGTK and GTK+ installed on your machine. The best way to do that is via the [http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.22/ new PyGTK All-in-One installer].&lt;br /&gt;
&lt;br /&gt;
The resulting binary can then be run from the MSYS prompt using the following, providing GTK is available in the PATH:&lt;br /&gt;
 cd ~/ascend&lt;br /&gt;
 pygtk/ascdev&lt;br /&gt;
&lt;br /&gt;
We have a mechanism for [[building a installer for ASCEND on Windows]] that makes use of NSIS. We are in the process of testing it on Windows 7.&lt;br /&gt;
&lt;br /&gt;
As an aside, the above highlights that it would be desirable to move from the use of libglade to GtkBuilder (as noted {{bug|493}}). We would then be able to use  standard PyGTK installers again, rather than needing the huge PyGTK-All-In-One with the optional libglade.dll that it includes.&lt;br /&gt;
&lt;br /&gt;
=== Windows XP with MinGW/MSYS ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;It is currently suggested that you attempt the same process as given above for Windows 7, instead of that given below.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The following instructions were tested on 32 bit Windows XP running on a DELL Precision (Core 2 Duo) machine in Nov 2009 and 32 bit Windows VISTA running on a ThinkPad X61 (Core 2 Duo) machine in March 2010.&lt;br /&gt;
&lt;br /&gt;
First install the MinGW/MSYS environment. Download MinGW-5.1.6.exe, and select the basic options plus &#039;g++&#039; (the C++ compiler). Then download and install MSYS-1.0.11.exe.&lt;br /&gt;
&lt;br /&gt;
Now install Python-2.6.4.msi.&lt;br /&gt;
&lt;br /&gt;
Install pywin32-214.win32-py2.6.exe.&lt;br /&gt;
&lt;br /&gt;
Next, download and install SCons, scons-1.2.0.win32.exe.&lt;br /&gt;
&lt;br /&gt;
Download swigwin-1.3.36 (&#039;&#039;later versions are OK&#039;&#039;) and unzip it in your root directory (it&#039;s just a folder with that name).&lt;br /&gt;
&lt;br /&gt;
Download and install Flex (2.5.4a-1) and Bison (2.4.1) from GnuWin32, installing in the default location.&lt;br /&gt;
&lt;br /&gt;
Download GFortran &#039;native installer&#039; for MinGW from [http://gcc.gnu.org/wiki/GFortranBinaries]. Our release was dated &#039;2009-04-21&#039;.&lt;br /&gt;
&lt;br /&gt;
With a right-click on the My Computer icon, then in the Advanced tab, add the following to your PATH environment variable (no quotes): &#039;;c:\Python26;c:\Python26\Scripts;c:\swigwin-1.3.36;c:\Program Files\GnuWin32\bin;C:\Program Files\gfortran\bin&#039;. For Windows VISTA system, right-click on the Computer icon, choose Properties. In Advance System Settings, you can configure PATH environment variable.&lt;br /&gt;
&lt;br /&gt;
Install NSIS 2.45.&lt;br /&gt;
&lt;br /&gt;
Download &#039;[[Media:Book.pdf|book.pdf]]&#039; and save it as &#039;book.pdf&#039; in ~/ascend/doc.&lt;br /&gt;
&lt;br /&gt;
In MSYS, run &amp;lt;tt&amp;gt;scons WITH_DOC_BUILD=0 installer&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The above will allow you to build ASCEND (and also to build the ASCEND installer using {{src|nsis/installer.nsi}}) but not to run it. For that, you additionally need to complete the following steps:&lt;br /&gt;
&lt;br /&gt;
* Download and install the GTK Glade3 windows installer [http://ftp.gnome.org/pub/GNOME/binaries/win32/glade3/3.6/glade3-3.6.7-with-GTK+.exe]&lt;br /&gt;
* Download and install PyGTK [http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.12/pygtk-2.12.1-3.win32-py2.6.exe]&lt;br /&gt;
* Download and install PyCairo [http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/1.4/pycairo-1.4.12-2.win32-py2.6.exe]&lt;br /&gt;
* Download and install PyGObject [http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.14/pygobject-2.14.2-2.win32-py2.6.exe]&lt;br /&gt;
&lt;br /&gt;
The above Glade3 installer should have added &#039;c:\Program Files\Gtk+\bin&#039; to your PATH; you can check that if necessary.&lt;br /&gt;
&lt;br /&gt;
To test the installer, it is recommended you remove GTK Glade3, PyGTK, PyCairo, PyGObject, Tcl/Tk and Python. Then run the installer, and it should discover all those missing things and proceed to reinstall them for you.&lt;br /&gt;
&lt;br /&gt;
[[Image:mingw-1.png]]&lt;br /&gt;
[[Image:mingw-6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SUNDIALS&#039;&#039;&#039;. If you want to use the [[IDA]] integrator (recommended) then you should download and install SUNDIALS. See [[building SUNDIALS on Windows]].&lt;br /&gt;
&lt;br /&gt;
Everything should build and you should end up with a file dist/ascend-{version}.exe which is your &#039;setup&#039; program. Run that then find ASCEND in your Start menu.&lt;br /&gt;
&lt;br /&gt;
=== MSVC ===&lt;br /&gt;
&lt;br /&gt;
We don&#039;t currently support the use of Microsoft compilers. They probably can be made to work, but we don&#039;t see any good reason to work on that.&lt;br /&gt;
&lt;br /&gt;
=== Windows / Borland C Builder ===&lt;br /&gt;
&lt;br /&gt;
Some very early efforts to support free Borland 5.5 were made; the core engine basically compiles but there is more work to be done.&lt;br /&gt;
&lt;br /&gt;
== Instructions for Mac ==&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X 10.5 ===&lt;br /&gt;
&lt;br /&gt;
ASCEND runs fine on Mac OS X 10.5, and probably other versions. Currently we haven&#039;t completed the job of bundling ASCEND into a convenient distributable form, but the work is now well underway. See [[Porting to Mac]] for details.&lt;br /&gt;
&lt;br /&gt;
There has been no attempt to build or test the Tcl/Tk GUI on Mac at this stage.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Building a Debian package]]&lt;br /&gt;
* [[Building an RPM Package for ASCEND]]&lt;br /&gt;
* [[Windows Miscellany]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
	<entry>
		<id>https://ascend4.org/index.php?title=Building_ASCEND&amp;diff=2705</id>
		<title>Building ASCEND</title>
		<link rel="alternate" type="text/html" href="https://ascend4.org/index.php?title=Building_ASCEND&amp;diff=2705"/>
		<updated>2011-06-22T16:26:11Z</updated>

		<summary type="html">&lt;p&gt;Aakash: Added download links for scons for windows and swigwin&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains specific instructions for building ASCEND on systems that we know about. First you should read about [[VersionManagement]] for information on how to get hold of the source code.&lt;br /&gt;
&lt;br /&gt;
Building ASCEND (as of March 2006) requires the [http://www.scons.org/ SCons] build tool. In our opinion, SCons is a significant advance on Autotools, so we encourage you to give it a chance, if you&#039;re not familiar with it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; If you are having trouble building ASCEND, it might be worth checking out the [[BuildBot]] (link [http://ascend.cheme.cmu.edu:8011/ here]) to see if the latest sources have compiled correctly on our test server.&amp;lt;/s&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== General instructions ==&lt;br /&gt;
&lt;br /&gt;
Building with SCons (as of Jun 2010, we recommend version 1.x) should be as simple as typing&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;scons&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Get info on the [[SCons_options_for_building_ASCEND|current build options]] by typing &amp;lt;tt&amp;gt;scons -Qh&amp;lt;/tt&amp;gt;. To clean up after your build, type &amp;lt;tt&amp;gt;scons -c&amp;lt;/tt&amp;gt;. To include any building options, type &amp;lt;tt&amp;gt;scons&amp;lt;/tt&amp;gt; followed by options. For instance, type &amp;lt;tt&amp;gt;scons WITH_LOCAL_HELP = /usr/local/share/ascend/manual&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Any build option that you see in &amp;lt;tt&amp;gt;scons -Qh&amp;lt;/tt&amp;gt; can be entered into a file &amp;lt;tt&amp;gt;config.py&amp;lt;/tt&amp;gt; that you can create in the root source directory (ie &amp;lt;tt&amp;gt;~/src/ascend/trunk&amp;lt;/tt&amp;gt;). For example, you might create a config.py file like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;WITH_LOCAL_HELP = /usr/local/share/ascend/manual&lt;br /&gt;
DEFAULT_ASCENDLIBRARY = /usr/local/share/ascend/models&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So, if you want to set configuration options so that they always get applied, edit your &amp;lt;tt&amp;gt;config.py&amp;lt;/tt&amp;gt; file.&lt;br /&gt;
&lt;br /&gt;
On top of that, you should also be aware that the SCons build will cache your build options in a file called &amp;lt;tt&amp;gt;options.cache&amp;lt;/tt&amp;gt;. That means that if you type a scons command with command-line options, then later without those command line options, the options from the first run will still be there, because they will have been saved in the cache.&lt;br /&gt;
&lt;br /&gt;
A major fiddle with SCons, especially on Windows, is ensuring that all the required programs are present in your path. You need to install Bison (from the GnuWin32 project). For SCons to run correctly from the MSYS command line, you will also need to add &amp;lt;tt&amp;gt;/c/Python25/Scripts:/c/Python25&amp;lt;/tt&amp;gt; to your path, so that the &#039;scons&#039; script is discovered.&lt;br /&gt;
&lt;br /&gt;
The SCons system will manage the building of FORTRAN components and is able to link to an installed version of CONOPT.&lt;br /&gt;
&lt;br /&gt;
For instructions on building with Autotools, see the old versions of this page. We&#039;re not actively supporting the Autotools build any more.&lt;br /&gt;
&lt;br /&gt;
Running &amp;lt;tt&amp;gt;scons&amp;lt;/tt&amp;gt; will create a locally-executable version of ASCEND that can be run from the source tree (&amp;lt;tt&amp;gt;pygtk/ascdev&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;tcltk/generic/interface/ascend4&amp;lt;/tt&amp;gt;, possibly subject to some environment variable settings. Alternatively, you can install ASCEND and run it from a &#039;proper&#039; location such as ~/bin/ascend or /usr/bin/ascend, etc. To install files for ASCEND, run&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;scons install INSTALL_PREFIX=/usr/local&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above will install the PyGTK GUI at /usr/local/bin/ascend and the Tcl/Tk GUI at /usr/local/bin/ascend4. Other sensible values of INSTALL_PREFIX include &amp;lt;tt&amp;gt;~/ascend&amp;lt;/tt&amp;gt; or &amp;lt;tt&amp;gt;~&amp;lt;/tt&amp;gt;, which will install the PyGTK GUI at ~/ascend/bin/ascend and ~/bin/ascend respectively. These latter ones are good if you don&#039;t have root privileges on your system. There are a range of other INSTALL_* options available with our build script, type &amp;lt;tt&amp;gt;scons -qH&amp;lt;/tt&amp;gt; to see them. Also note the importance of the &amp;lt;tt&amp;gt;ABSOLUTE_PATHS&amp;lt;/tt&amp;gt; option for our build script. Note then when you run &#039;&amp;lt;tt&amp;gt;scons install&amp;lt;/tt&amp;gt;&#039; you don&#039;t get all the files in the model library, you only get a filter set according to the [[PACKAGE metafiles]] contained in the [[ModelLibrary]].&lt;br /&gt;
&lt;br /&gt;
Some more details on the implementation of the ASCEND build process via SCons is given in [[Developer&#039;s_Manual#Build_system]].&lt;br /&gt;
&lt;br /&gt;
== Tcl/Tk GUI ==&lt;br /&gt;
&lt;br /&gt;
In order to build the original Tck/Tk GUI, you need a Tcl/Tk distribution. Recently we have modified ASCEND so that it can run with Tcl/Tk 8.4. Standard Tcl/Tk binary packages can be used, such as those included in Fedora Core 5 (Note, the tcl-devel and tk-devel packages required as well). For Windows they available from ActiveState, see:&lt;br /&gt;
&lt;br /&gt;
http://www.activestate.com/activetcl&lt;br /&gt;
&lt;br /&gt;
At present, detection of Tcl/Tk is not particularly sophisticated. &amp;lt;tt&amp;gt;SConstruct&amp;lt;/tt&amp;gt; just looks for &amp;lt;tt&amp;gt;tcl.h&amp;lt;/tt&amp;gt; in your standard include path. So you might need to tweak. Check the &amp;lt;tt&amp;gt;scons -h&amp;lt;/tt&amp;gt; list of configuration options for more. On Debian-based systems, try something like &amp;lt;tt&amp;gt;scons TCL_CPPPATH=/usr/include/tcl8.4&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Python interface ==&lt;br /&gt;
&lt;br /&gt;
See PythonWrapper for more information. You will need to have SWIG 1.3.24 or newer and Python 2.4 or newer installed. These are both easy to install for both Windows and Linux.&lt;br /&gt;
&lt;br /&gt;
To run the PyGTK interface requires more dependencies, see the PythonWrapper page for full details.&lt;br /&gt;
&lt;br /&gt;
== Instructions for Linux ==&lt;br /&gt;
&lt;br /&gt;
In general, see [[Prerequisites for Linux]]. You will be using &amp;lt;tt&amp;gt;scons&amp;lt;/tt&amp;gt; to build ASCEND. We update these distribution-specific notes at the time that we implement support for that particular distro, so it&#039;s possible that if you&#039;re using an old distro, you may need to go back and use an old version of the code.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 10.10 ===&lt;br /&gt;
&lt;br /&gt;
ASCEND compiles fine on Ubuntu 10.10, but you need to use the latest code from the &#039;trunk&#039; of our [[VersionManagement|subversion repo]]. Subversion r3082 corrects a bug that was preventing use of SCons 2.x, as supplied as part of this distro. Otherwise, required packages are the same as for 10.04, see below. It is recommended that all &#039;optional&#039; packages are installed at the time of building ASCEND.&lt;br /&gt;
&lt;br /&gt;
For IPOPT, which is an optional component of ASCEND, you should see the build instructions [[IPOPT|here]].&lt;br /&gt;
&lt;br /&gt;
It appears that in Ubuntu 10.10, GraphViz has been upgraded and is not longer compatible with ASCEND. ASCEND should build fine without it, although you will be missing the [[incidence graph]] feature as a result (see {{bug|443}}).&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 10.04 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;There is currently a problem with building ASCEND on this platform, due to an error thrown by SWIG version 1.3.40 (ASCEND {{bug|403}}). This error is not seen when running SWIG version 1.3.38 or earlier. &#039;&#039;A temporary workaround is to install the Ubuntu Karmic version if SWIG, available [http://packages.ubuntu.com/karmic/i386/swig/download from here].&#039;&#039;&amp;lt;/s&amp;gt; (this bug is now fixed in the subversion repo)&lt;br /&gt;
&lt;br /&gt;
For [[IPOPT]], which is an optional solver that can be used by ASCEND, you should additionally see the build instructions [[IPOPT|here]].&lt;br /&gt;
&lt;br /&gt;
To build ASCEND on a clean Ubuntu 10.04 box, the following packages were required (as of trunk r2777):&lt;br /&gt;
&lt;br /&gt;
* subversion&lt;br /&gt;
* swig &amp;lt;s&amp;gt;&#039;&#039;(see note above)&#039;&#039;&amp;lt;/s&amp;gt;&lt;br /&gt;
* g++&lt;br /&gt;
* gfortran&lt;br /&gt;
* python-dev&lt;br /&gt;
* scons&lt;br /&gt;
&lt;br /&gt;
The following are optional but recommended:&lt;br /&gt;
&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* graphviz-dev&lt;br /&gt;
* libsundials-serial-dev&lt;br /&gt;
* liblapack-dev (used by IPOPT)&lt;br /&gt;
* tcl8.5-dev&lt;br /&gt;
* tk8.5-dev&lt;br /&gt;
* libtktable2.9&lt;br /&gt;
* libblas-dev&lt;br /&gt;
&lt;br /&gt;
At runtime, the following packages will add capability to ASCEND:&lt;br /&gt;
* ipython&lt;br /&gt;
* python-matplotlib&lt;br /&gt;
&lt;br /&gt;
=== Kubuntu 10.04 ===&lt;br /&gt;
&lt;br /&gt;
Building on Kubuntu (KDE) is identical to Ubuntu (GNOME) with the exception that python-gtk2 and python-glade2 must be installed before running the resulting program. This was tested with trunk r3039. At this point in time, building also requires the package libgsl0-dev, because of some dependencies in [[FPROPS]] which need to be removed/made optional.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 9.10 ===&lt;br /&gt;
&lt;br /&gt;
Ongoing development of ASCEND is primarily done on this Ubuntu 9.10. Although ASCEND builds against the standard Ubuntu packages for Sundials, you will obtain better functionality with the [[IDA]] solver if you use a version built from latest 2.4.0 source code. The latest release fixes problems with boundary-crossing during integration.&lt;br /&gt;
&lt;br /&gt;
To build ASCEND on a clean Ubuntu 9.10 box, the following packages are required (as of trunk r2667):&lt;br /&gt;
&lt;br /&gt;
* scons&lt;br /&gt;
* swig&lt;br /&gt;
* python-dev&lt;br /&gt;
* scons&lt;br /&gt;
* g++&lt;br /&gt;
* gfortran&lt;br /&gt;
&lt;br /&gt;
The following packages are optional:&lt;br /&gt;
&lt;br /&gt;
* libsundials-serial-dev&lt;br /&gt;
* graphviz-dev&lt;br /&gt;
* flex&lt;br /&gt;
* bison&lt;br /&gt;
* libblas-dev&lt;br /&gt;
* tcl8.5-dev&lt;br /&gt;
* tk8.5-dev&lt;br /&gt;
* tktable2.9&lt;br /&gt;
&lt;br /&gt;
At runtime, the following packages will add capability to ASCEND:&lt;br /&gt;
&lt;br /&gt;
* ipython&lt;br /&gt;
* python-matplotlib&lt;br /&gt;
&lt;br /&gt;
For the [[IPOPT]] solver, you will also need to build that separately from source -- see [[IPOPT]] for details.&lt;br /&gt;
For the [[CONOPT]] and [[CMSlv]] solvers, you must obtain libconsub3.so, see [[CONOPT]] for details.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 9.04 ===&lt;br /&gt;
&lt;br /&gt;
ASCEND should build on this system without any problems, providing the prerequisited that you need are installed. Watch closely the &#039;scons&#039; output for fleeting comments which may suggest that you&#039;re missing a library or a header file, etc. Prereqs should be the same as for Ubuntu 8.04.&lt;br /&gt;
&lt;br /&gt;
Note that after updating to Ubuntu 9.04, you will probably need to rebuild and reinstall things like IPOPT and CONOPT, as gfortran errors seem to arise otherwise.&lt;br /&gt;
&lt;br /&gt;
For the [[IDA]] solver, you may need to add the scons option SUNDIALS_CPPPATH=/usr/include/sundials to make this integrator build correctly.&lt;br /&gt;
&lt;br /&gt;
=== Ubuntu 8.04 LTS ===&lt;br /&gt;
&lt;br /&gt;
ASCEND built fine on Ubuntu 8.0.4 LTS when we last tried it. Numerous prerequisites must be installed, but all of these except IPOPT and CONOPT are currently available from the Ubuntu repositories. Specifically, check libsundials-serial-dev, swig, flex, bison, python-dev, tk-dev, libtktable2.9. Haven&#039;t yet tested with CONOPT, so conditional modelling has not yet been checked.&lt;br /&gt;
&lt;br /&gt;
Special treatment for the gfortran compiler is no longer required (as was required for Ubuntu 7.10).&lt;br /&gt;
&lt;br /&gt;
Building of a .deb package can be performed using the [[dtar]] tool included in the source distribution. Usage: scons dist &amp;amp;amp;&amp;amp;amp; ~/ascend/tools/dtar/dtar ~/ascend/dist/ascend-0.9.5.116.tar.bz2 ~/ascend/dist/debian.tar.gz.&lt;br /&gt;
&lt;br /&gt;
Ubuntu 8.04 uses GtkSourceView2 instead of the earlier version, with the result that source code highlighting in GEdit using a different &amp;lt;tt&amp;gt;.lang&amp;lt;/tt&amp;gt; file. We have written a new version of this file, see the page on [[syntax highlighting]] for more info.&lt;br /&gt;
&lt;br /&gt;
Currently, LyX 1.5 is not available on Ubuntu, and the manual .lyx files require this newer version. So for the moment, you must use &amp;lt;tt&amp;gt;scons WITH_DOC_BUILD=0&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
ASCEND has been runninng on earlier Ubuntu versions, right back to version 5.10.&lt;br /&gt;
&lt;br /&gt;
=== Fedora 11 ===&lt;br /&gt;
&lt;br /&gt;
The following steps build ASCEND on a clean Fedora 11 machine (I tested using the Live CD installed to a qemu/kvm virtual machine):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;su&lt;br /&gt;
yum install scons subversion tk-devel flex bison gcc-gfortran gcc-c++ python-devel sundials-devel graphviz-devel swig&lt;br /&gt;
scons&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;s&amp;gt;Currently (as of 16 Jun 2009), the above results in a error message from g++ while compiling the SWIG output. See {{bug|403}}. Testing on Windows has shown that SWIG 1.3.39 and 1.3.40 have this problem, but 1.3.36 does not have this problem.&amp;lt;/s&amp;gt; &#039;&#039;This bug is fixed in the pre-0.9.8 code from our SVN server.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Fedora 9 ===&lt;br /&gt;
&lt;br /&gt;
ASCEND builds without any problems on Fedora 9. You need to install several packages first, including swig, tk-devel, python-devel, scons, flex, bison, gcc-gfortran, gcc-c++. There may be some problems getting the GraphViz and CUnit-related functionality working, let us know if you have problems with that. -- JP, Jun 2008.&lt;br /&gt;
&lt;br /&gt;
You can build an RPM version of ASCEND using &amp;lt;tt&amp;gt;scons dist&amp;lt;/tt&amp;gt; followed by &amp;lt;tt&amp;gt;rpm -ta ascend-0.9.5.116.tar.bz2&amp;lt;/tt&amp;gt;, providing you have RPM correctly set up. See also [[Building an RPM Package for ASCEND]].&lt;br /&gt;
&lt;br /&gt;
=== OpenSUSE ===&lt;br /&gt;
&lt;br /&gt;
OpenSUSE does not provide an up to date version of SCons (as of this writing, suse 10.2 comes with scons-0.96.91-37). You will need to download a newer version (0.96.93) ([http://sourceforge.net/project/showfiles.php?group_id=30337&amp;amp;package_id=22359 from SF.net].&lt;br /&gt;
Do not try 0.97 SCons, as it is not yet supported by the ASCEND SConscripts on the SUSE platform.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Update (Mar 2010)&#039;&#039; it is suggested that you try latest SCons 1.x if possible, and report your experiences here.&lt;br /&gt;
&lt;br /&gt;
=== Arch Linux ===&lt;br /&gt;
&lt;br /&gt;
To build ASCEND on Arch Linux, follow these steps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;sudo pacman -S gcc gcc-fortran flex bison python scons swig tcl tk graphviz blas&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download and build sundials manually (see [[Prerequisites for Linux]]).&lt;br /&gt;
&lt;br /&gt;
Then follow the [[Building_ASCEND#General_instructions|Genereal instructions]] (running scons and scons install).&lt;br /&gt;
&lt;br /&gt;
If you have problem with SWIG 1.3.40 (scons reports that SWIG package was not found), download older version of [http://www.swig.org SWIG](1.3.38 worked for me, 1.3.24 didn&#039;t) and build it manually (./configure, make, make install). Then re-run swig with parameter &amp;lt;tt&amp;gt;SWIG=/usr/local/bin/swig&amp;lt;/tt&amp;gt; (or different location where you installed SWIG).&lt;br /&gt;
&lt;br /&gt;
When running ascend script:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;LDPATH = [INSTALL_LIB] + GTKLIBPATH + LDPATH&lt;br /&gt;
TypeError: can only concatenate list (not &amp;amp;quot;NoneType&amp;amp;quot;) to list&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;LDPATH = [INSTALL_LIB] + GTKLIBPATH + LDPATH&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;a4c&amp;quot;&amp;gt;if GTKLIBPATH:&lt;br /&gt;
	LDPATH = [INSTALL_LIB] + GTKLIBPATH + LDPATH&lt;br /&gt;
else:&lt;br /&gt;
&lt;br /&gt;
	LDPATH = [INSTALL_LIB] + LDPATH&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(found [http://www.mail-archive.com/ascend-sim-users@lists.sourceforge.net/msg00089.html here]).&lt;br /&gt;
&lt;br /&gt;
=== Gentoo ===&lt;br /&gt;
&lt;br /&gt;
Some details for build ASCEND on Gentoo Linux are on a sub-page at [[Building ASCEND/Gentoo]].&lt;br /&gt;
&lt;br /&gt;
== Instructions for Windows ==&lt;br /&gt;
&lt;br /&gt;
The only currently-supported way to build ASCEND on Windows is using MinGW/MSYS and the GCC compiler. There has previously been partial success with the Microsoft compiler tools, but these are not currently actively being used or tested.&lt;br /&gt;
&lt;br /&gt;
=== Windows 7 64-bit with 32-bit Python ===&lt;br /&gt;
&lt;br /&gt;
We are currently in the process of testing the ASCEND build on 64-bit Windows 7, running via Virtual Box on a Dell Optiplex 980, with the host OS being Ubuntu 10.04.2 LTS.&lt;br /&gt;
&lt;br /&gt;
* install &#039;mingw-get-inst&#039;, selecting to install C, C++ and Fortran compilers, plus the MSYS Basic System and the MinGW Developer Toolkit.&lt;br /&gt;
* install the [http://sourceforge.net/projects/win32svn/files/1.6.15/Setup-Subversion-1.6.15.msi/download win32svn package] from SF.net&lt;br /&gt;
* check out the source code from our [[VersionManagement|svn trunk]].&lt;br /&gt;
* download [http://www.python.org/download Python 2.7.1] 32-bit version and install with default settings. Python 3 is likely still to cause problems with our code, and we haven&#039;t tested it yet. We tried using the 64-bit version of Python 2.7.1, but SCons didn&#039;t seem to be able to detect it.&lt;br /&gt;
* download [http://sourceforge.net/projects/win32svn/files/1.6.15/Setup-Subversion-1.6.15.msi/download Glade3] and install it. &lt;br /&gt;
* download [http://sourceforge.net/projects/scons/files/scons/2.0.1/scons-2.0.1.win32.exe/download SCons 2.0.1] and install it by right-clicking and &#039;run as administrator&#039; (note that failing to do this might have been the reason that we failed with the 64-bit version of Python, above -- if you get 64-bit Python to work, let us know).&lt;br /&gt;
* Add c:\Python27 and c:\Python27\Scripts to your PATH.&lt;br /&gt;
* download [http://sourceforge.net/projects/swig/files/swigwin/swigwin-1.3.40/swigwin-1.3.40.zip/download swigwin 1.3.40] and unzip it into your MSYS home directory, then add ~/swigwin-1.3.40 to your PATH.&lt;br /&gt;
* download Flex 2.5.4a and Bison 2.4.1from gnuwin32.sf.net, and install them. Add the c:\Program Files (x86)\GnuWin32\bin location to your PATH.&lt;br /&gt;
* run scons from within your ASCEND working directory.&lt;br /&gt;
* the build process completes successfully&lt;br /&gt;
&lt;br /&gt;
To actually run the resulting binary, you need to also have PyGTK and GTK+ installed on your machine. The best way to do that is via the [http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.22/ new PyGTK All-in-One installer].&lt;br /&gt;
&lt;br /&gt;
The resulting binary can then be run from the MSYS prompt using the following, providing GTK is available in the PATH:&lt;br /&gt;
 cd ~/ascend&lt;br /&gt;
 pygtk/ascdev&lt;br /&gt;
&lt;br /&gt;
We have a mechanism for [[building a installer for ASCEND on Windows]] that makes use of NSIS. We are in the process of testing it on Windows 7.&lt;br /&gt;
&lt;br /&gt;
As an aside, the above highlights that it would be desirable to move from the use of libglade to GtkBuilder (as noted {{bug|493}}). We would then be able to use  standard PyGTK installers again, rather than needing the huge PyGTK-All-In-One with the optional libglade.dll that it includes.&lt;br /&gt;
&lt;br /&gt;
=== Windows XP with MinGW/MSYS ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;It is currently suggested that you attempt the same process as given above for Windows 7, instead of that given below.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The following instructions were tested on 32 bit Windows XP running on a DELL Precision (Core 2 Duo) machine in Nov 2009 and 32 bit Windows VISTA running on a ThinkPad X61 (Core 2 Duo) machine in March 2010.&lt;br /&gt;
&lt;br /&gt;
First install the MinGW/MSYS environment. Download MinGW-5.1.6.exe, and select the basic options plus &#039;g++&#039; (the C++ compiler). Then download and install MSYS-1.0.11.exe.&lt;br /&gt;
&lt;br /&gt;
Now install Python-2.6.4.msi.&lt;br /&gt;
&lt;br /&gt;
Install pywin32-214.win32-py2.6.exe.&lt;br /&gt;
&lt;br /&gt;
Next, download and install SCons, scons-1.2.0.win32.exe.&lt;br /&gt;
&lt;br /&gt;
Download swigwin-1.3.36 (&#039;&#039;later versions are OK&#039;&#039;) and unzip it in your root directory (it&#039;s just a folder with that name).&lt;br /&gt;
&lt;br /&gt;
Download and install Flex (2.5.4a-1) and Bison (2.4.1) from GnuWin32, installing in the default location.&lt;br /&gt;
&lt;br /&gt;
Download GFortran &#039;native installer&#039; for MinGW from [http://gcc.gnu.org/wiki/GFortranBinaries]. Our release was dated &#039;2009-04-21&#039;.&lt;br /&gt;
&lt;br /&gt;
With a right-click on the My Computer icon, then in the Advanced tab, add the following to your PATH environment variable (no quotes): &#039;;c:\Python26;c:\Python26\Scripts;c:\swigwin-1.3.36;c:\Program Files\GnuWin32\bin;C:\Program Files\gfortran\bin&#039;. For Windows VISTA system, right-click on the Computer icon, choose Properties. In Advance System Settings, you can configure PATH environment variable.&lt;br /&gt;
&lt;br /&gt;
Install NSIS 2.45.&lt;br /&gt;
&lt;br /&gt;
Download &#039;[[Media:Book.pdf|book.pdf]]&#039; and save it as &#039;book.pdf&#039; in ~/ascend/doc.&lt;br /&gt;
&lt;br /&gt;
In MSYS, run &amp;lt;tt&amp;gt;scons WITH_DOC_BUILD=0 installer&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The above will allow you to build ASCEND (and also to build the ASCEND installer using {{src|nsis/installer.nsi}}) but not to run it. For that, you additionally need to complete the following steps:&lt;br /&gt;
&lt;br /&gt;
* Download and install the GTK Glade3 windows installer [http://ftp.gnome.org/pub/GNOME/binaries/win32/glade3/3.6/glade3-3.6.7-with-GTK+.exe]&lt;br /&gt;
* Download and install PyGTK [http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.12/pygtk-2.12.1-3.win32-py2.6.exe]&lt;br /&gt;
* Download and install PyCairo [http://ftp.gnome.org/pub/GNOME/binaries/win32/pycairo/1.4/pycairo-1.4.12-2.win32-py2.6.exe]&lt;br /&gt;
* Download and install PyGObject [http://ftp.gnome.org/pub/GNOME/binaries/win32/pygobject/2.14/pygobject-2.14.2-2.win32-py2.6.exe]&lt;br /&gt;
&lt;br /&gt;
The above Glade3 installer should have added &#039;c:\Program Files\Gtk+\bin&#039; to your PATH; you can check that if necessary.&lt;br /&gt;
&lt;br /&gt;
To test the installer, it is recommended you remove GTK Glade3, PyGTK, PyCairo, PyGObject, Tcl/Tk and Python. Then run the installer, and it should discover all those missing things and proceed to reinstall them for you.&lt;br /&gt;
&lt;br /&gt;
[[Image:mingw-1.png]]&lt;br /&gt;
[[Image:mingw-6.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;SUNDIALS&#039;&#039;&#039;. If you want to use the [[IDA]] integrator (recommended) then you should download and install SUNDIALS. See [[building SUNDIALS on Windows]].&lt;br /&gt;
&lt;br /&gt;
Everything should build and you should end up with a file dist/ascend-{version}.exe which is your &#039;setup&#039; program. Run that then find ASCEND in your Start menu.&lt;br /&gt;
&lt;br /&gt;
=== MSVC ===&lt;br /&gt;
&lt;br /&gt;
We don&#039;t currently support the use of Microsoft compilers. They probably can be made to work, but we don&#039;t see any good reason to work on that.&lt;br /&gt;
&lt;br /&gt;
=== Windows / Borland C Builder ===&lt;br /&gt;
&lt;br /&gt;
Some very early efforts to support free Borland 5.5 were made; the core engine basically compiles but there is more work to be done.&lt;br /&gt;
&lt;br /&gt;
== Instructions for Mac ==&lt;br /&gt;
&lt;br /&gt;
=== Mac OS X 10.5 ===&lt;br /&gt;
&lt;br /&gt;
ASCEND runs fine on Mac OS X 10.5, and probably other versions. Currently we haven&#039;t completed the job of bundling ASCEND into a convenient distributable form, but the work is now well underway. See [[Porting to Mac]] for details.&lt;br /&gt;
&lt;br /&gt;
There has been no attempt to build or test the Tcl/Tk GUI on Mac at this stage.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Building a Debian package]]&lt;br /&gt;
* [[Building an RPM Package for ASCEND]]&lt;br /&gt;
* [[Windows Miscellany]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Documentation]]&lt;/div&gt;</summary>
		<author><name>Aakash</name></author>
	</entry>
</feed>