Chris ZinckI'm a Professional Engineer that focuses on Software Engineering. I own and run Zinck Computer Group. This blog will generally be talking about business software but I will also talk about other things that hit my desk and interest me.http://zcg.com/Blog/tabid/152/BlogId/1/Default.aspx
en-USczinck@zcg.comTue, 14 Aug 2018 18:22:57 GMTTue, 14 Aug 2018 18:22:57 GMThttp://backend.userland.com/rssBlog RSS Generator Version 4.1.0.0How we built Murphy's booking systemhttp://www.zcg.com/Blog/tabid/152/EntryId/20/How-we-built-Murphys-booking-system.aspx
Before we started building their new online web booking, Murphy’s The Cable Wharf had an on-premises booking/POS system. This was a modern n-Tier system with a rich user interface client installed on the POS workstations, business logic on a web service on their in house server and an SQL Server for the data .......czinck@zcg.comhttp://www.zcg.com/Blog/tabid/152/EntryId/20/How-we-built-Murphys-booking-system.aspx#Comments0http://www.zcg.com/Blog/tabid/152/EntryId/20/How-we-built-Murphys-booking-system.aspxFri, 13 Jul 2012 15:29:00 GMThttp://zcg.comDesktopModules/BlogTrackback.aspx?id=20Murphy's web store goes Livehttp://www.zcg.com/Blog/tabid/152/EntryId/19/Murphys-web-store-goes-Live.aspx
For the last 6 months we’ve been working on a project for Murphy’s The Cable Wharf. They are a local tour operator that runs the sailing and duck boat tours here on the Halifax Waterfront. You can see their web site at <a href="http://www.mtcw.ca/">www.mtcw.ca</a>czinck@zcg.comhttp://www.zcg.com/Blog/tabid/152/EntryId/19/Murphys-web-store-goes-Live.aspx#Comments0http://www.zcg.com/Blog/tabid/152/EntryId/19/Murphys-web-store-goes-Live.aspxWed, 11 Jul 2012 23:13:00 GMThttp://zcg.comDesktopModules/BlogTrackback.aspx?id=19Problem with new Desktop Icon Protocolhttp://www.zcg.com/Blog/tabid/152/EntryId/14/Problem-with-new-Desktop-Icon-Protocol.aspx
<p>Here’s a problem we just figured out today. Implementing the new Sage ERP Accpac desktop Icon protocol requires that you provide a DLL with three entry points that get called when the desktop initializes.</p>
<p>We had all sorts of trouble getting the System Manager to load and run our DLL. We messed around with different ways to export the entry points, we implemented the DLL in a pure C environment (instead of a C++ file) and we moved the code into our activation view and exposed it there. None of it would work. So, we built a completely stand alone file and erected the basic protocol with nothing else. Presto! The DLL loaded and ran.</p>
<p>Cool, we didn’t really understand why, but what the hell it works. We then started adding real code to make the code do something.</p>
<p>Uh Oh…it’s broken again. What did we do? Well, we added calls to a dependency. Another DLL that has some support code. Why would that break it?</p>
<p>It turns out that when the Icon Protocol DLL is called, the working directory is NOT the module directory, it is RUNTIME. Therefore, if there is a dependency, the loader can’t find it and the load fails.</p>
<p>So, the rule of thumb is to not have any dependency DLL’s in your Icon Protocol DLL. If you do, you have to explicitly LoadLibrary and GetProcAddress to find the functions. Otherwise your DLL will not load.</p>
<p>Hope that helps!</p><br /><a href=http://www.zcg.com/Blog/tabid/152/EntryId/14/Problem-with-new-Desktop-Icon-Protocol.aspx>More ...</a><div class="category">Category: <a href=http://zcg.com/Blog/tabid/152/CatID/3/Default.aspx>Sage ERP Accpac</a></div><div class="category">Category: <a href=http://zcg.com/Blog/tabid/152/CatID/4/Default.aspx>Development</a></div>czinck@zcg.comSage ERP AccpacDevelopmenthttp://www.zcg.com/Blog/tabid/152/EntryId/14/Problem-with-new-Desktop-Icon-Protocol.aspx#Comments0http://www.zcg.com/Blog/tabid/152/EntryId/14/Problem-with-new-Desktop-Icon-Protocol.aspxThu, 12 May 2011 04:00:00 GMThttp://zcg.comDesktopModules/BlogTrackback.aspx?id=14Debugging .NET Accpac Addonshttp://www.zcg.com/Blog/tabid/152/EntryId/13/Debugging-NET-Accpac-Addons.aspx
About a year ago, I posted information regarding issues with DEP (Data Execution Protection) and Accpac addins written in .Net. (<a href="http://www.zcg.com/Blog/tabid/152/EntryId/6/DEP-NET-Windows-and-Accpac.aspx">http://www.zcg.com/Blog/tabid/152/EntryId/6/DEP-NET-Windows-and-Accpac.aspx</a>)<br />
<br />
While my post addressed the issue from the point of view of running the app, there is an outstanding issue of debugging this apps. Under the default situation, debugging a .Net Accpac addin that uses Accpac controls will cause the program to fail. The underlying reason for this relates to Visual Studio's use of a hosting process to run the debuggee. This process is started by launching the VSHOST32.EXE process which then launches the debuggee. The reason this generates DEP errors is that the VSHOST32.EXE process has the NXCOMPAT flag set. This turns DEP on regardless of what is set in the debuggee process binary.<br />
<br />
To solve this problem, you need to modify the VSHOST32.EXE process. Run the EDITBIN utility on the VSHOST32.EXE file and set NXCOMPAT off. Then delete the vshost file that exists in the debug build folder and rebuild the app. This will recopy the vshost to the debug folder and DEP will be turned off during debugging.<br />
<br />
Presto! Debugging .Net Accpac apps now works.<br /><a href=http://www.zcg.com/Blog/tabid/152/EntryId/13/Debugging-NET-Accpac-Addons.aspx>More ...</a><div class="category">Category: <a href=http://zcg.com/Blog/tabid/152/CatID/4/Default.aspx>Development</a></div><div class="category">Category: <a href=http://zcg.com/Blog/tabid/152/CatID/3/Default.aspx>Sage ERP Accpac</a></div>czinck@zcg.comDevelopmentSage ERP Accpachttp://www.zcg.com/Blog/tabid/152/EntryId/13/Debugging-NET-Accpac-Addons.aspx#Comments0http://www.zcg.com/Blog/tabid/152/EntryId/13/Debugging-NET-Accpac-Addons.aspxThu, 24 Feb 2011 04:00:00 GMThttp://zcg.comDesktopModules/BlogTrackback.aspx?id=13Registrationless COMhttp://www.zcg.com/Blog/tabid/152/EntryId/12/Registrationless-COM.aspx
At Zinck Computer Group we’ve developed a COM component that we use in our eTransmit product to send documents by email or fax. Up till now we’ve been installing and registering the component on each workstation that uses eTransmit. This is a huge pain in the A%$# and has led to many support calls and emails.<br />
<br />
We started considering a rewrite of the component into an old style C DLL. But recently, we’ve been experimenting with Registrationless COM.<br />
<br />
This technique ROCKS! With some easy to setup manifest files, you can put all your COM components in your application folder and just instantiate them like you used to, no registration required.<br />
<br />
Windows XP and up, but definitely worth the effort.<br /><a href=http://www.zcg.com/Blog/tabid/152/EntryId/12/Registrationless-COM.aspx>More ...</a><div class="category">Category: <a href=http://zcg.com/Blog/tabid/152/CatID/4/Default.aspx>Development</a></div>czinck@zcg.comDevelopmenthttp://www.zcg.com/Blog/tabid/152/EntryId/12/Registrationless-COM.aspx#Comments0http://www.zcg.com/Blog/tabid/152/EntryId/12/Registrationless-COM.aspxWed, 24 Feb 2010 04:00:00 GMThttp://zcg.comDesktopModules/BlogTrackback.aspx?id=12Moving from MS to Open Sourcehttp://www.zcg.com/Blog/tabid/152/EntryId/11/Moving-from-MS-to-Open-Source.aspx
<p>Accpac will be moving to a presentation/UI layer that is based entirely on open source tools. This is going to be a huge challenge for us at Zinck Computer Group.</p>
<p>For as long as we have been in business, we’ve developed software using Microsoft and Accpac technologies. We started back in the 80’s with MSC 5.0 and DOS and moved right into Accpac for Windows and Visual Studio / Visual Basic.</p>
<p>But now, the Accpac SDK is based on Tomcat, Eclipse, Google Web Toolkit and Java. Holy Cow Batman! What a difference!</p>
<p>What I’m noticing is that while most of these tools are deep and flexible, they just don’t have the product polish that something like .Net or Visual Studio has. I can’t go to a web site like MSDN and look up quality documentation.</p>
<p>I’m already finding it hard to get centralized information on these tools. Sure, Java is a no brainer, but Tomcat, GWT and Eclipse are moving targets and not as nearly well documented.</p>
<p>This is going to be a major change for us and we are going to miss our Visual Studio. Anyone who says Eclipse is just as good hasn’t used VS.</p><br /><a href=http://www.zcg.com/Blog/tabid/152/EntryId/11/Moving-from-MS-to-Open-Source.aspx>More ...</a><div class="category">Category: <a href=http://zcg.com/Blog/tabid/152/CatID/4/Default.aspx>Development</a></div>czinck@zcg.comDevelopmenthttp://www.zcg.com/Blog/tabid/152/EntryId/11/Moving-from-MS-to-Open-Source.aspx#Comments0http://www.zcg.com/Blog/tabid/152/EntryId/11/Moving-from-MS-to-Open-Source.aspxSat, 16 Jan 2010 04:00:00 GMThttp://zcg.comDesktopModules/BlogTrackback.aspx?id=11CEAB UBC Visithttp://www.zcg.com/Blog/tabid/152/EntryId/10/CEAB-UBC-Visit.aspx
As I mentioned in my last post, I volunteer on Engineer Nova Scotia’s Board of Examineers. I’ve also done the odd visit on an accreditation team for the Canadian Engineering Accreditation Board.<br />
<br />
Last weekend I was part of the team that visited UBC’s Okanagan campus and had a look at their new engineering programs. It’s an incredible amount of work, but I’m continuously amazed at the quality of the team on one of these visits. The staff and faculty at UBC Okanagan were extremely helpful and enthusiastic.<br />
<br />
It sort of makes me wonder if engineers that get involved with their community and education are normally this good. It sure makes me hopeful that the profession will continue to improve and set high standards.<br />
<br />
That can’t be anything but good for the future of public safety and breakthroughs in applied technology.<br />
<br />
Viva la Engineer! :-)<br /><a href=http://www.zcg.com/Blog/tabid/152/EntryId/10/CEAB-UBC-Visit.aspx>More ...</a><div class="category">Category: <a href=http://zcg.com/Blog/tabid/152/CatID/2/Default.aspx>Engineering</a></div>czinck@zcg.comEngineeringhttp://www.zcg.com/Blog/tabid/152/EntryId/10/CEAB-UBC-Visit.aspx#Comments0http://www.zcg.com/Blog/tabid/152/EntryId/10/CEAB-UBC-Visit.aspxFri, 15 Jan 2010 04:00:00 GMThttp://zcg.comDesktopModules/BlogTrackback.aspx?id=10Board of Examiners Christmas Lunchhttp://www.zcg.com/Blog/tabid/152/EntryId/8/Board-of-Examiners-Christmas-Lunch.aspx
I’m a practicing Professional Engineer and have been a member of Engineers Nova Scotia’s Board of Examiners for almost 10 years now. Today was our December Board meeting which also doubles as a Christmas party. Lunch and the meeting is normally held at a local restaurant and a good time is had by all.<br />
<br />
When I was driving back to the office after the meeting, I was thinking about the engineers on the board and how well we worked together. I’ve been involved with some volunteer organizations and the politics and back biting can get very bad. But the people on the Board of Examiners are excellent.<br />
<br />
Just thought I’d put that on the record.<br /><a href=http://www.zcg.com/Blog/tabid/152/EntryId/8/Board-of-Examiners-Christmas-Lunch.aspx>More ...</a><div class="category">Category: <a href=http://zcg.com/Blog/tabid/152/CatID/2/Default.aspx>Engineering</a></div>czinck@zcg.comEngineeringhttp://www.zcg.com/Blog/tabid/152/EntryId/8/Board-of-Examiners-Christmas-Lunch.aspx#Comments0http://www.zcg.com/Blog/tabid/152/EntryId/8/Board-of-Examiners-Christmas-Lunch.aspxThu, 17 Dec 2009 04:00:00 GMThttp://zcg.comDesktopModules/BlogTrackback.aspx?id=8Sage ERP Accpac 5.6 has been releasedhttp://www.zcg.com/Blog/tabid/152/EntryId/7/Sage-ERP-Accpac-5-6-has-been-released.aspx
<p>We received our Sage Accpac 5.6 disks last week. There are a lot of little changes and some fairly big ones. Here is a sampling of what’s new:</p>
<ul>
<li>Completely new installation process. There is now an integrated install. No more installing each module separately. Yeah!</li>
<li>Integrated activation. The activation process is now integrated so that you pick the modules you want activated from a list and then let it do it’s thing. This keeps you from having to baby sit the process when you are doing a lot of modules.</li>
<li>Reporting and operational tweaks in G/L, A/R and A/P</li>
<li>Reworked Bank Rec process in Bank Services.</li>
<li>A lot of other changes to Bank Services.</li>
<li>A new business intelligence reporting module.</li>
<li>and the big change is a completely rewritten serialized and lot tracking module that is integrated in to I/C, O/E, P/O and P/M. Plus you don’t purchase the modules separately now. Serialized and Lot Tracking are sold as one add on module.</li>
</ul>
<p>There are a lot of other changes but that’s the main list. DB2 is no longer supported and full PDF manuals have disappeared. The help files are the main source for operational information now.</p>
<p>Let the upgrade games begin!</p><br /><a href=http://www.zcg.com/Blog/tabid/152/EntryId/7/Sage-ERP-Accpac-5-6-has-been-released.aspx>More ...</a><div class="category">Category: <a href=http://zcg.com/Blog/tabid/152/CatID/3/Default.aspx>Sage ERP Accpac</a></div>czinck@zcg.comSage ERP Accpachttp://www.zcg.com/Blog/tabid/152/EntryId/7/Sage-ERP-Accpac-5-6-has-been-released.aspx#Comments1http://www.zcg.com/Blog/tabid/152/EntryId/7/Sage-ERP-Accpac-5-6-has-been-released.aspxWed, 16 Dec 2009 04:00:00 GMThttp://zcg.comDesktopModules/BlogTrackback.aspx?id=7DEP, .NET, Windows and Accpachttp://www.zcg.com/Blog/tabid/152/EntryId/6/DEP-NET-Windows-and-Accpac.aspx
<p>Last year after we installed Vista on our development machines, we came across a problem with .Net programs and Accpac.</p>
<p>We’ve been writing some of our custom Accpac programs in .Net and calling the Accpac COM API to interface with Accpac ERP. But when these .Net programs were run on our Vista machines they would crash. But only when using one of the Accpac COM API’s that would pop open a window. Calling a Finder through the API or doing a ShowErrors call would instantly crash the program. Everytime.</p>
<p>After doing a LOT OF investigating, we discovered that the problem was related to DEP (Data Execution Protection). If we disabled DEP on our workstations, the problem would go away.</p>
<p>With some more digging, we came up with a theory that fits pretty well. Turns out the ATL library had some problems with DEP (up to and including V7.1). They do some kind of runtime code creation for thunking that makes DEP think the program is trying to run data. And then DEP causes the program to crash. Guess who uses ATL components in their COM API? Correct! Accpac! Everytime we used the COM API that opened a window of some kind, an ATL component was called and BAM! Down it goes.</p>
<p>The other part of the puzzle is related to Visual Studio 2008. Turns out that the NXCOMPAT switch is turned on by default for executables that VS2008 builds. This switch tells DEP that the program is compatible and DEP should check everthing. (and crash bad behaviour).</p>
<p>Now that we knew what was going on, what were our options?</p>
<ul>
<li>We could turn DEP completely off
<ul>
<li>use: bcdedit.exe/set {current} nx AlwaysOff </li>
<li>(not recommended) </li>
</ul>
</li>
<li>Set the NXCOMPAT file on our executables
<ul>
<li>editbin.exe /NXCOMPAT:NO <binary> </binary></li>
</ul>
</li>
</ul>
<p>So, being the lazy programmers we are, what did we do? Of course, we just turned DEP off and forgot about it. Problem solved right?</p>
<p>Guess what happened when we rebuilt our machines to install Windows 7? Yup, our problem was back. Only we had forgotten what caused it and it took a few hours of investigation to figure it out and remember what we did. (even though we had documented it in our office knowledge base…geesh!). So, this time we decided to do it right and a the NXCOMPAT:NO setting to our builds.</p>
<p>Now the problem is fixed and should stay fixed.</p><br /><a href=http://www.zcg.com/Blog/tabid/152/EntryId/6/DEP-NET-Windows-and-Accpac.aspx>More ...</a><div class="category">Category: <a href=http://zcg.com/Blog/tabid/152/CatID/3/Default.aspx>Sage ERP Accpac</a></div><div class="category">Category: <a href=http://zcg.com/Blog/tabid/152/CatID/4/Default.aspx>Development</a></div>czinck@zcg.comSage ERP AccpacDevelopmenthttp://www.zcg.com/Blog/tabid/152/EntryId/6/DEP-NET-Windows-and-Accpac.aspx#Comments0http://www.zcg.com/Blog/tabid/152/EntryId/6/DEP-NET-Windows-and-Accpac.aspxTue, 08 Dec 2009 04:00:00 GMThttp://zcg.comDesktopModules/BlogTrackback.aspx?id=6