<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: Path Management in Deployed Applications</title>
	<link>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/</link>
	<description>Loren Shure  works on design of the MATLAB language at &#60;a href="http://www.mathworks.com/"&#62;The MathWorks&#60;/a&#62;. She writes here about once a week on MATLAB programming and related topics. &#60;br&#62;&#60;br&#62;&#60;a href="/images/loren-full.jpg"&#62;&#60;img src="/images/loren.jpg"&#62;&#60;/a&#62;</description>
	<pubDate>Mon, 23 Nov 2009 00:41:10 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
		<item>
		<title>By: Eliya</title>
		<link>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-30535</link>
		<dc:creator>Eliya</dc:creator>
		<pubDate>Mon, 17 Aug 2009 08:11:04 +0000</pubDate>
		<guid>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-30535</guid>
		<description>Hello,
I developed a little program that uses the brush tool inside figures. the user of this program should pick some points on a graph and create a variable from it. 
After compilation, the brush don't work properly and when I create the variable out of the points I chose, Matlab is not saving it.
I did not found any listing about problems with the brush function after compilation.
I would be glad if you can help me.
Thanks.</description>
		<content:encoded><![CDATA[<p>Hello,<br />
I developed a little program that uses the brush tool inside figures. the user of this program should pick some points on a graph and create a variable from it.<br />
After compilation, the brush don&#8217;t work properly and when I create the variable out of the points I chose, Matlab is not saving it.<br />
I did not found any listing about problems with the brush function after compilation.<br />
I would be glad if you can help me.<br />
Thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kelly</title>
		<link>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-30223</link>
		<dc:creator>Kelly</dc:creator>
		<pubDate>Wed, 22 Apr 2009 20:09:35 +0000</pubDate>
		<guid>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-30223</guid>
		<description>Hi,

I have created a standalone executable (for Windows), called 'v1', that has a Help Menu. I want the user to be able to use the Help Menu to open a pdf User Manual, but get an error when trying to do this from the deployed/compiled version. I think it has to do with the path. When compiling, is there something that I should be doing to make the User Manual file available to the standalone? Right now, the User Manual file is in the same folder as the executable file. In the code for v1, The callback for the User Manual Help menu contains the code: open('UserManualv1.pdf'). My other thought is that this needs to be modified, but I do not know what needs to be added/changed.

This is the error I get when using the exe file:

??? Error using ==&#62; open at 127
File 'UserManualv1.pdf' not found.

Error in ==&#62; v1&#62;menu_help_userguide_Callback at 2336

Error in ==&#62; gui_mainfcn at 96

Error in ==&#62; v1 at 42

Error in ==&#62; 
@(hObject,eventdata)v1('menu_help_userguide_Callback',hObject,eventdata,guidata(hObject))

??? Error while evaluating uimenu Callback


Thanks in advance for any help!</description>
		<content:encoded><![CDATA[<p>Hi,</p>
<p>I have created a standalone executable (for Windows), called &#8216;v1&#8242;, that has a Help Menu. I want the user to be able to use the Help Menu to open a pdf User Manual, but get an error when trying to do this from the deployed/compiled version. I think it has to do with the path. When compiling, is there something that I should be doing to make the User Manual file available to the standalone? Right now, the User Manual file is in the same folder as the executable file. In the code for v1, The callback for the User Manual Help menu contains the code: open(&#8217;UserManualv1.pdf&#8217;). My other thought is that this needs to be modified, but I do not know what needs to be added/changed.</p>
<p>This is the error I get when using the exe file:</p>
<p>??? Error using ==&gt; open at 127<br />
File &#8216;UserManualv1.pdf&#8217; not found.</p>
<p>Error in ==&gt; v1&gt;menu_help_userguide_Callback at 2336</p>
<p>Error in ==&gt; gui_mainfcn at 96</p>
<p>Error in ==&gt; v1 at 42</p>
<p>Error in ==&gt;<br />
@(hObject,eventdata)v1(&#8217;menu_help_userguide_Callback&#8217;,hObject,eventdata,guidata(hObject))</p>
<p>??? Error while evaluating uimenu Callback</p>
<p>Thanks in advance for any help!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hoi</title>
		<link>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29741</link>
		<dc:creator>Hoi</dc:creator>
		<pubDate>Thu, 04 Sep 2008 23:49:02 +0000</pubDate>
		<guid>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29741</guid>
		<description>Hi Peter,

I'm glad to hear that you guys have plans to improve the compiler quality. Quality-wise, I think most people can live with minors bugs if there's a workaround, but if the scheme/idea is not well-thought out (like single instances and default settings like Windows Vista that drives user nuts), it might start to shake people's confidence about whether they're using the right tools. 

I was tempted to scratch my project and switch to C# for 4~5 times when I had to fight with the MATLAB compiler, and thanks to the quick and helpful support, I got through most of them and was back on track. The most fustrating experience was DCOM: the apps engineer sent me a documentation page that remote DCOM is not supported by the compiler, and I ended up setting up two virtual machines, taking the difference in the Windows+/-MATLAB/MCR installations and found that it's just one single line that I have to add to get MCR to use remote DCOM! If that's the one that you're talking about, I look forward to remove my 'secret sauce' in the deployment installer.

For internationalization, if all the developer's machine are set to display 'Japanese' for non-Unicode programs, the daily problems in compiled programs will annoy them enough for them to fix it (even if the developer can read Japanese, the characters are still messed up for half of the times). If the developers assume users set the non-Unicode programs to display Japanese because they can read Japanese (bilingual), then I am hoping that at least if MCR chose to display Japanese error messages in the console, display it properly in Japanese code page. Of course, it'd be the best if English MATLAB consistently shows everything in English, in any OS.

For uitable, an apps engineer called (a long time ago) and promised to work on it, but I hadn't heard back from anybody ever since. The request ID is 1-5Y36TS. Basically the uitable() in my compiled program displays blank until I refresh it again with something else, and that doesn't happen to the full MATLAB. We can take this discussion offline for better nettiquette.


I feel MATLAB compiler can expand its territory a lot more. If Steve can have a blog on something as specific as Image processing, I certainly appreciate a blog on Application Deployment branch of MATLAB products, as they can be quite obscure and daunting and maybe a community can help promoting the product through more success cases.</description>
		<content:encoded><![CDATA[<p>Hi Peter,</p>
<p>I&#8217;m glad to hear that you guys have plans to improve the compiler quality. Quality-wise, I think most people can live with minors bugs if there&#8217;s a workaround, but if the scheme/idea is not well-thought out (like single instances and default settings like Windows Vista that drives user nuts), it might start to shake people&#8217;s confidence about whether they&#8217;re using the right tools. </p>
<p>I was tempted to scratch my project and switch to C# for 4~5 times when I had to fight with the MATLAB compiler, and thanks to the quick and helpful support, I got through most of them and was back on track. The most fustrating experience was DCOM: the apps engineer sent me a documentation page that remote DCOM is not supported by the compiler, and I ended up setting up two virtual machines, taking the difference in the Windows+/-MATLAB/MCR installations and found that it&#8217;s just one single line that I have to add to get MCR to use remote DCOM! If that&#8217;s the one that you&#8217;re talking about, I look forward to remove my &#8217;secret sauce&#8217; in the deployment installer.</p>
<p>For internationalization, if all the developer&#8217;s machine are set to display &#8216;Japanese&#8217; for non-Unicode programs, the daily problems in compiled programs will annoy them enough for them to fix it (even if the developer can read Japanese, the characters are still messed up for half of the times). If the developers assume users set the non-Unicode programs to display Japanese because they can read Japanese (bilingual), then I am hoping that at least if MCR chose to display Japanese error messages in the console, display it properly in Japanese code page. Of course, it&#8217;d be the best if English MATLAB consistently shows everything in English, in any OS.</p>
<p>For uitable, an apps engineer called (a long time ago) and promised to work on it, but I hadn&#8217;t heard back from anybody ever since. The request ID is 1-5Y36TS. Basically the uitable() in my compiled program displays blank until I refresh it again with something else, and that doesn&#8217;t happen to the full MATLAB. We can take this discussion offline for better nettiquette.</p>
<p>I feel MATLAB compiler can expand its territory a lot more. If Steve can have a blog on something as specific as Image processing, I certainly appreciate a blog on Application Deployment branch of MATLAB products, as they can be quite obscure and daunting and maybe a community can help promoting the product through more success cases.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Webb</title>
		<link>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29740</link>
		<dc:creator>Peter Webb</dc:creator>
		<pubDate>Thu, 04 Sep 2008 15:57:11 +0000</pubDate>
		<guid>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29740</guid>
		<description>Hoi,

Long-term, we certainly plan on further improving the quality of the MATLAB Compiler (and all of the Builder tools). I'm not sure exactly which bugs you're referring to; I took a look in our list and didn't find any mention of uitable, but I noticed several internationalization and COM bug fixes going into the next release, so perhaps we've already addressed some of your concerns.</description>
		<content:encoded><![CDATA[<p>Hoi,</p>
<p>Long-term, we certainly plan on further improving the quality of the MATLAB Compiler (and all of the Builder tools). I&#8217;m not sure exactly which bugs you&#8217;re referring to; I took a look in our list and didn&#8217;t find any mention of uitable, but I noticed several internationalization and COM bug fixes going into the next release, so perhaps we&#8217;ve already addressed some of your concerns.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Webb</title>
		<link>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29739</link>
		<dc:creator>Peter Webb</dc:creator>
		<pubDate>Thu, 04 Sep 2008 15:26:55 +0000</pubDate>
		<guid>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29739</guid>
		<description>GALLOU,

I think the information in comment #9 might help you as well. If you compile using -C, and place the CTF archive in the same directory as the executable, then CTFROOT will return the directory containing the executable.</description>
		<content:encoded><![CDATA[<p>GALLOU,</p>
<p>I think the information in comment #9 might help you as well. If you compile using -C, and place the CTF archive in the same directory as the executable, then CTFROOT will return the directory containing the executable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: GALLOU</title>
		<link>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29735</link>
		<dc:creator>GALLOU</dc:creator>
		<pubDate>Wed, 03 Sep 2008 12:24:49 +0000</pubDate>
		<guid>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29735</guid>
		<description>Hi,
We have some need about a deployement process. We have a application which is compiled by MatLab Compiler last release, V4.8.
When we are in development or in deployement, we need to know the root directory from where the application was launch (localisation of the exe directory).

It's like CTFROOT but for the EXE.
Do you know if it is possible to have that ?

Thanks a lot.

Best regards.</description>
		<content:encoded><![CDATA[<p>Hi,<br />
We have some need about a deployement process. We have a application which is compiled by MatLab Compiler last release, V4.8.<br />
When we are in development or in deployement, we need to know the root directory from where the application was launch (localisation of the exe directory).</p>
<p>It&#8217;s like CTFROOT but for the EXE.<br />
Do you know if it is possible to have that ?</p>
<p>Thanks a lot.</p>
<p>Best regards.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hoi</title>
		<link>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29734</link>
		<dc:creator>Hoi</dc:creator>
		<pubDate>Wed, 03 Sep 2008 10:42:37 +0000</pubDate>
		<guid>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29734</guid>
		<description>With -C switch, I think ctfroot will be the cleanest solution as the root path. Thanks Peter!

Even with the -C switch, the MCR still breaks my path structure as now /myProgram/core is extracted to /myProgram/myProgram_mcr/core, but it's better than having it extracted to somewhere deep under 'local settings'.

To shorten development time, I took a chance on MATLAB compiler when I decided to use MATLAB for a software project meant for distribution, and I found a bunch of things that ought to be right (DCOM, internationalization, single instances, uitable, paths, etc.) that wasn't. I filed bug/enhancement requests for all of them, but it will take a long while before the developers actually do something about it. 

I really hope Mathworks can invest more on developing MATLAB compiler to make it a more polished product. With cheap dual-core computers @1GB RAM minimum ready to run MCR, developing applications (especially GUI with data visualization features) using MATLAB is a competitive alternative to C#/Java.</description>
		<content:encoded><![CDATA[<p>With -C switch, I think ctfroot will be the cleanest solution as the root path. Thanks Peter!</p>
<p>Even with the -C switch, the MCR still breaks my path structure as now /myProgram/core is extracted to /myProgram/myProgram_mcr/core, but it&#8217;s better than having it extracted to somewhere deep under &#8216;local settings&#8217;.</p>
<p>To shorten development time, I took a chance on MATLAB compiler when I decided to use MATLAB for a software project meant for distribution, and I found a bunch of things that ought to be right (DCOM, internationalization, single instances, uitable, paths, etc.) that wasn&#8217;t. I filed bug/enhancement requests for all of them, but it will take a long while before the developers actually do something about it. </p>
<p>I really hope Mathworks can invest more on developing MATLAB compiler to make it a more polished product. With cheap dual-core computers @1GB RAM minimum ready to run MCR, developing applications (especially GUI with data visualization features) using MATLAB is a competitive alternative to C#/Java.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter Webb</title>
		<link>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29733</link>
		<dc:creator>Peter Webb</dc:creator>
		<pubDate>Tue, 02 Sep 2008 14:36:55 +0000</pubDate>
		<guid>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29733</guid>
		<description>Hoi and Gunnar,

You can exercise more control over where the encrypted files are installed via the Compiler's -C switch or the MCR's "component cache" environment variables. 

The details: http://www.mathworks.com/access/helpdesk/help/toolbox/compiler/brl4_f1-1.html

If you place the CTF archive and the executable in the same directory at installation, then CTFROOT will return the directory containing the executable.</description>
		<content:encoded><![CDATA[<p>Hoi and Gunnar,</p>
<p>You can exercise more control over where the encrypted files are installed via the Compiler&#8217;s -C switch or the MCR&#8217;s &#8220;component cache&#8221; environment variables. </p>
<p>The details: <a href="http://www.mathworks.com/access/helpdesk/help/toolbox/compiler/brl4_f1-1.html" rel="nofollow">http://www.mathworks.com/access/helpdesk/help/toolbox/compiler/brl4_f1-1.html</a></p>
<p>If you place the CTF archive and the executable in the same directory at installation, then CTFROOT will return the directory containing the executable.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hoi</title>
		<link>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29731</link>
		<dc:creator>Hoi</dc:creator>
		<pubDate>Tue, 02 Sep 2008 02:15:51 +0000</pubDate>
		<guid>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29731</guid>
		<description>Gunnar: Actually you don't have to rely on changing the MCR path (although it's a good idea because the default paths is too long, long enough to break some old DOS program like deltree.exe) and complicate the installation/maintanence process. You can just use setappdata(0, 'rootFolder', pwd) at your main program and retrieve the path pivot anywhere.

However, I still don't like the idea of having MCR messing with the my path structures. This only adds unnecessary mental gymnastics to the programming task, hurting productivity. 

If a programming language feature is clearly unintuitive to users like the MCR paths, it better has a good justification other 'it's easier to develop the compiler that way'.</description>
		<content:encoded><![CDATA[<p>Gunnar: Actually you don&#8217;t have to rely on changing the MCR path (although it&#8217;s a good idea because the default paths is too long, long enough to break some old DOS program like deltree.exe) and complicate the installation/maintanence process. You can just use setappdata(0, &#8216;rootFolder&#8217;, pwd) at your main program and retrieve the path pivot anywhere.</p>
<p>However, I still don&#8217;t like the idea of having MCR messing with the my path structures. This only adds unnecessary mental gymnastics to the programming task, hurting productivity. </p>
<p>If a programming language feature is clearly unintuitive to users like the MCR paths, it better has a good justification other &#8216;it&#8217;s easier to develop the compiler that way&#8217;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gunnar</title>
		<link>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29726</link>
		<dc:creator>Gunnar</dc:creator>
		<pubDate>Tue, 26 Aug 2008 19:37:20 +0000</pubDate>
		<guid>http://blogs.mathworks.com/loren/2008/08/11/path-management-in-deployed-applications/#comment-29726</guid>
		<description>I also think that a function which returned the path of the deployed exe file would be very useful. As Hoi mentioned above, the return of "ctfroot" is some rather strange path that I find very little use for. I usually solve the problem by creating an installer that sets a system variable to the root directory of the standalone application.</description>
		<content:encoded><![CDATA[<p>I also think that a function which returned the path of the deployed exe file would be very useful. As Hoi mentioned above, the return of &#8220;ctfroot&#8221; is some rather strange path that I find very little use for. I usually solve the problem by creating an installer that sets a system variable to the root directory of the standalone application.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
