Phone800.366.3472 SupportGet Support DocumentationDocumentation Resource CenterResource Center
search
close
Open Menu

Synergex Blog


Synergex Developer Support Has Your Back—Now More than Ever

By Jacklin Garcia, Posted on January 27, 2021 at 11:33 am

Jacklin Garcia

Have you noticed some new names popping up on email signatures from Synergex Support or perhaps a new voice picking up our phones? Have you seen some number patterns appearing in email subject lines related to your cases? Over the last year we’ve made a lot of changes to our Developer Support department to address succession planning and feedback from customer surveys and to improve response times on your cases. We’d love to share a bit of what’s new with you, so you know what to expect the next time you send a case to Support.

Putting names (and faces) with the voices

As many of you know, our longtime Support Manager, Beth Ives, retired at the end of last year. That left some big shoes to fill, and I’m grateful to the whole Synergex team for helping me transition into the role of manager for both our Developer Support and Education teams over the last year. The rest of the Developer Support team members that you’ve grown to know and love are still here and are as reliable and knowledgeable as ever. The more tenured members of the team have been great mentors to our two newest developer support engineers, Matthew Nix and Mike Carleson. Mike and Matthew started with the team back in October of 2020 and are initially focusing on licensing, installation, and traditional Synergy cases. They are especially eager to answer any questions you may have about REV11 licensing as you upgrade your production subscription licenses this year. I’m very excited to have combined the Education team with the powerhouse of Synergy knowledge that is the Synergex Developer Support team. Expect to see some exciting new joint initiatives over the next few years.

Beth Ives’ final team meeting. She is already missed.

Improvements to support case flows

As a team, we’ve identified a few of our policies and procedures that we’d like to update to give you the best experience possible. Many of these changes will take place behind the scenes internally, but you may have already noticed one change. Previously, emailed cases were logged manually by a developer support engineer in our support service desk (we use Salesforce Service Cloud). We knew we could automate this process to ideally result in faster case assignment and initial response from a developer support engineer. We did a soft launch of a feature called Email-to-Case, which uses a reference code in an email to determine which case that email belongs to and logs the interaction accordingly. The strange characters you may have recently seen appended to email subjects are the reference codes. We plan to do a wider launch of this feature next month. You should start to receive notifications that a case was created right after you email a question to Synergex Developer Support. These notification emails will contain your case number and unique reference code. If you need to start a new email thread for an existing case, we ask that you add the reference code to the subject to help us keep the system tidy and keep your case moving forward as smoothly as possible.

Tell us what you think!

When a developer support engineer closes a case, you should receive an automated email from our service desk. These emails often include links to surveys asking for your feedback on the case. We really want to hear from you! These surveys are quick, and your feedback is what will drive internal training and additional process improvements for the Support department. Please take a few moments to fill out the case closure survey the next time one makes it into your inbox. To sweeten the deal, we will enter all survey respondents into a drawing each quarter for a $50 gift card!

What does Support do?

In case you’re not a power user of Synergex Support services yet, I’ll fill you in. First, we strive to make it as easy as possible for you to get in touch with us. You can reach Synergex Developer Support by email (support@synergex.com) from 6am – 5pm Pacific. We are available for phone support (800.366.3472 toll-free US and Canada or +1.916.635.7300 all others) from 7am – 5pm Pacific. You can also submit cases through the Resource Center (log-in required). Our department can answer questions that range from “Will version 11 of Synergy work on my operating system?” to “How do I declare this in .NET?” The team can help you with questions regarding migrations to new versions of Synergy, moving your development environment to Visual Studio, configuring REV11 licensing, and more. We’re also always happy to point you to additional educational materials (e.g., documentation, training videos, code samples, etc.).

An unlimited number of Support contacts are included in your DevPartner subscription, and ad hoc support is available for those not on a subscription yet. To hear about our premier support offerings, contact your account executive. We look forward to working your next case with Synergex Developer Support!


CodeGen 5.6.5 Released

By Steve Ives, Posted on January 24, 2021 at 11:13 pm

Steve Ives

I am pleased to announce the release of a new version of CodeGen, and this release is quite a big one. The changes include the following:

This version of CodeGen was built with Synergy/DE 11.1.1f and requires a minimum of version 10.1.1 to operate.

We recommend that all CodeGen users upgrade to this version, particularly if you are doing Harmony Core development. You can download the new version from GitHub.


10 Tips for Faster Synergy Development in Visual Studio

By Phil Bratt, Posted on January 21, 2021 at 2:12 pm

Avatar

Visual Studio is consistently one of the highest trending IDEs on the market. It has powerful features to increase code productivity. Because of this, Synergex brought traditional Synergy coding into Visual Studio. But how do you use it? I would like to focus on some of the hotkeys and organizational features available inside Visual Studio that will help developers navigate their code.

Editing Code

  1. Easy commenting: While testing code, there are times when you want to disable large sections of code so that you can run alternative code to see the differences. In Visual Studio, you can highlight the code you want to comment out and press CTRL K + C to comment out the lines. You can press this key combination multiple times to add a ‘;’ to the front of each line or CTRL K + U to remove a comment character from each line. The toolbar also contains buttons to comment and uncomment lines:
  2. Multiple line edits: One of my favorite features in Visual Studio that I’m surprised hasn’t made its way into other Microsoft products is the ability to edit multiple lines at once. If you press ALT + SHIFT and (while still holding them) push the UP or DOWN arrow keys, you can expand the cursor to multiple lines. This means that when you press a key, it will edit all of those lines with that key stroke. For example, let’s say you have multiple WRITES statements in your code:
    writes(chnout, rec_1)     
    writes(chnout, " ")
    writes(chnout, rec_2)
  3. Now you want to add an error list to handle record locking on each line. Well, you can use ALT + SHIFT to add the identical error list to each line, which beats copying and pasting to each line.

    writes(chnout, rec_1)       [$ERR_LOCKED=errloc]     
    writes(chnout, " ")         [$ERR_LOCKED=errloc]
    writes(chnout, rec_2)       [$ERR_LOCKED=errloc]
  1. Simple duplication: Speaking of copy and paste, how annoying is it to click, then hold SHIFT, then END, then CRTL C, then click, and then CTRL V? That’s tedious. It was tedious to write it out. If you want to copy the line you are on, you can duplicate the line of code with CTRL D.

Collapsing and expanding code

You may have noticed that when you create a main routine, subroutine, or function, a “-“ appears to the left of the editor. This allows you to collapse that code section to make it easier to edit large pieces of code.

  1. Collapsible labels: You will also notice that internal subroutines/labels are not naturally collapsible. But what if you wanted to make a label collapsible because you have so many of them? You would surround the code with .REGION/.ENDREGION along with a title for the region. (I usually stick with the name of the label.) For example:
    .region "erroloc"
    errloc,
    repeat
    begin
    ...
    .endregion

With .REGION/.ENDREGION in place, you will now get the “-“ around that section that you can collapse.

  1. Hotkeys: A number of hotkeys can be used to collapse and expand these sections:

Toggle outlining expansion – CTRL M + M
Toggle all outlining – CRTL M + L
Stop outlining – CRTL M + P
Stop hiding current – CRTL M + U
Collapse to definitions – CTRL M + O

Navigating code

There are also a few features that can be used to navigate your code that I find extremely helpful:

  1. If you are on a BEGIN or END in code and want to go to the matching END or BEGIN, while the cursor is on the BEGIN or END, press CRTL ] to move the cursor to its pairing statement.
  2. If you are on a variable or subroutine and want to jump to where it is defined in the code, you can either press F12 or right-click and select “Go to definition.”
  3. With this jumping around, you can also push CTRL – to go back to where you were or CTRL + to go forward.

Debugging code

To round off this list, there are a number of function keys that are useful during a debugging session in Visual Studio:

  1. To step into the line of code you are on, so you can see the code run through a subroutine, class, etc., use F11. To step over and go to the next line of the currently executing source code, press F10.
  2. While coding or debugging, pressing F9 will toggle adding or removing a breakpoint on the current line.

Those are my 10 tips for navigating through Visual Studio and making use of its code editing and hotkey features. You can also find our video about Visual Studio hotkeys here. Keep in mind that most of these keys can be changed or customized inside Visual Studio by selecting Options from the Tools drop-down menu. Hope you found some of these helpful.

If you haven’t moved your Synergy development environment to Visual Studio yet, what are you waiting for? Check out our solution for modernizing your development environment and accessing a superior debugging and build experience. You can also reach out to your account executive to discuss how we can help you move to Visual Studio or train your developers to get the most out of their new environment.


SQL Replication Enhancements

By Steve Ives, Posted on December 4, 2020 at 3:21 pm

Steve Ives

For several years now, Synergex has maintained an open-source example that provides an example of how to implement the replication of a Synergy applications data to a Microsoft SQL Server database, in near-to-real-time. The example environment makes considerable use of CodeGen to generate the bulk of the code needed to implement the interaction with the SQL Server database, and much of the remaining required code can be used out-of-the-box, requiring very little, if any change to the original Synergy application to enable the data replication to take place. The example environment has been used as a template by many customers, and our Professional Services team has assisted many others by delivering either proof of concept examples, or full-scale implementations.

As technologies and product capabilities evolve, we periodically revisit the code to ensure that it is taking advantage of the latest features and adhering to best practices. Good performance is also of critical importance in products like this, so we frequently revisit the code looking for opportunities to make improvements in throughput.

We have just completed the latest review of the code, and on this occasion, we did make some changes, which are briefly described below.

  • We now generate an additional function that returns the key number of the first unique key for each ISAM structure. This allows us to avoid the need for code that previously detected the first unique key number at runtime; that code required that the replicator had an open channel to each data file being replicated.
  • We also generate an additional function that, when passed a record containing data, returns the key value of the first unique key. Previously, the code used the Synergy routine %KEYVAL for this purpose, but it also requires that the replicator has an open channel to every data file replicated.
  • Because of the previous two changes, we were able to remove the replicator’s requirement to open the underlying data files that are being replicated. The only files that the replicator now opens are the instruction queue file and log file.
  • We added code to make the replicator more resilient to interruptions to network connections when using xfServer to access the instruction queue file on a remote system. If a network problem is detected, the replicator now closes the instruction queue file and then attempts to re-open it on a new channel. If this operation fails, it will retry several times with a delay between attempts. The number of retries and the delay between retries are both configurable via command-line options or environment variables.

If you already have a SQL Replication environment based on our sample environment, then you might consider checking out the latest version and applying the changes to your own codebase, and if you’d like some help with that, then our Professional Services team will be happy to assist. And if you haven’t yet implemented a SQL Replication environment but are interested in doing so, get in touch with your Synergex account rep and ask them to set up a demo.


I’d Like Some Information with that Information, Please

By Liz Wilson, Posted on October 29, 2020 at 5:16 pm

Liz Wilson

I started using Microsoft Teams daily when I was hired by Synergex back in May. While there were some features of the user interface (UI) that took a bit longer to master, I was able to discern most of what Teams was telling me about the status of my coworkers immediately. I looked at the green dot and intuited its meaning as “Available,” and by a similar process, came to the correct conclusion that red communicates the opposite state.

My general comfort level with user statuses in Teams is due to the design pattern that this UI component follows: the placement of a status icon next to, or partially on top of, the user icon. I’m a millennial, so I was exposed to this pattern early on via AOL Instant Messenger and saw it again in a more sophisticated form when Skype started its ascent to mass popularity during the early aughts.

Design patterns are powerful because they provide users with context. The widgets and components of an application that follows design patterns are immediately imbued with meaning by the user, while a layout that shuns convention risks a discouraging and confusing user experience. For example, the “infinite scroll” design trend, while still used in social media feeds, has fallen out of favor in the context of website landing pages, partially because visitors expect to arrive at a footer and don’t enjoy finding themselves lost in an unorganized (and data-intensive) sea of content.  

Context-Independent Components

There is, however, a limit to what users can understand about your application using background information gleaned from previous experience. To create a comprehensible and easy-to-navigate UI, components should provide enough information about themselves to make sense regardless of the varying expectations and abilities users bring to the table (i.e., the context from which someone is accessing your application). In regard to my earlier anecdote, I made the correct assumption about the green, yellow, and red dots in Teams right away. On the other hand, there was one status icon that meant nothing to me at first, as it resembled a sideways magenta jellyfish. Thankfully, in anticipation of this type of ambiguity, as well as the very real possibility that some Teams users may be color blind1, Microsoft included a description of each status in the tooltip, so by simply hovering over the magenta jellyfish, I learned that a) it was not, in fact, a jellyfish and b) it was the “out of office” symbol. Mystery solved.

It doesn’t take a visual impairment (or cluelessness, in my case) for accessibility issues to arise, just a lack of information about information. Take abbreviations, for example. New employees may not be familiar with the acronyms that populate the tabs and menus of your application. By providing a mechanism for identifying the full meaning of abbreviations and acronyms in the user interface, you’re lowering barriers to accessibility. This strategy is discussed in the Web Content Accessibility Guidelines and applies to mobile, web-based, and desktop applications, as well as traditional websites. Form validation is another area where a “more is more” approach to information is appropriate. I can’t count the number of times I’ve submitted a form and the only indication I’ve received that something isn’t right is a grayed-out submit button. Often it takes several trial-and-error attempts before I realize that the form wants me to format my date differently or add punctuation to a new password. In this situation, technically speaking, I’m receiving just enough information to have a sense of what’s going on, but not nearly enough to make an informed decision about what the application wants me to do next. Designers and UI developers can inject extra information into each field to guide people towards correct formatting and data types, the result being that users can successfully submit a form regardless of the context they’re working in (vision impairment, device dimensions, etc.). On a related note, individuals who use a mouse to navigate and fill out forms can see where the pointer has landed and enter data accordingly, so to provide a comparable experience to keyboard users, you can highlight form fields with a border as they receive focus. Once again, the WCAG website outlines this technique in greater detail.

There are hundreds of additional scenarios where context-independent components would enhance user experience, so rather than attempting to list them all here, I’ll recommend checking out Microsoft’s Accessibility Insights, an application and browser extension created to help developers make their applications as accessible as possible. The tool is open source, free, and available on Windows, MacOS, and Linux.


[1] According to the National Eye Institute, approximately 1 in 12 men are color blind.


Updating Synergy/DE production licenses to REV11 licensing / Jan. 1 requirement

By Cindy Limburg, Posted on October 28, 2020 at 11:44 am

Cindy Limburg

Last month we announced via email that starting January 1, all new and renewing production subscription licenses will need to use REV11 licensing. (The announcement is also on our website and in our Oct. 1 Synergy-e-News.) We’ve gotten a few questions about this, so I wanted to provide some additional information. This info is also in the FAQ on our website, and we’ll continue to add to that site as new questions come in. This information applies to customers with Synergy/DE 9.5.3b – 10.3.3 on supported Windows and Unix platforms. [Note that the minimum version was updated from 9.3.1 to 9.5.3b on 1/27/2021.]

What’s the requirement?

After January 1, 2021, when you renew any 9.5.3b­­–10.3.3 subscription licenses on currently-supported Windows or Unix systems, those licenses must be on REV11 licensing. You will need to update them to REV11 licensing before their renewal dates. Also, new 9.5.3b–10.3.3 licenses will be issued with REV11 licensing on these platforms.

This requirement does not apply to licenses lower than 9.5.3b, to licenses on OpenVMS or retired Windows/Unix systems, or to traditional (non-subscription) licenses. See our platforms page for information about supported platforms. If your platform is on the Retired Platforms list (meaning current Synergy/DE versions are not supported on it), REV11 licensing is not available on it. If you’re not sure if a license is subscription, you can run the lmu utility to see if the license has an expiration date. (After each product, it specifies the date the product was licensed and if subscription, the date the subscription expires.) Although REV11 licensing will not be required for traditional (non-subscription) licenses, we do recommend it for those licenses. One benefit there is that when you add users, your keys will be automatically updated.

Why is Synergex requiring this?

REV11 licensing has been out since October 2019. It has been required for DevPartner (development) licenses, and many customers have also updated their production licenses to it. It’s important that we get the rest of the production licenses updated this coming year as it will make managing licenses much easier for you and for Synergex.

What else should I know?

  • REV11 licensing does not change how your application accesses licenses on your license server; it mainly provides a new mechanism for getting and installing product keys. Once your application is set up with REV11 licensing and the keys are downloaded and installed, the licensing on your system works pretty much the same as it did previously. What’s new is that your license server will now communicate with the Synergy License Web Server periodically (once/week initially) to poll for new license data. (If there is ever a problem connecting to the Web Server, that will be logged, and you and Synergex will be notified.)
  • You will be able to check the connectivity between your license server and the Synergy License Web Service before you install REV11 licensing (with our lmcheck utility).
  • When you update to REV11 licensing, you’re not updating to Synergy/DE version 11. We realize that the name “REV11 licensing” makes this a little confusing, but REV11 licensing is just the current revision of Synergy/DE licensing, and it’s for Synergy/DE 9.5.3b and higher versions.
  • If your application has code that processes the Synergy/DE license registration string, you will probably need to update that code because the size of the registration string increased from 12 alpha characters to 31. We’re aware of a very small number of customers who came across this as their applications use the SERIAL routine, which returns the registration string. We’re recommending that all customers search their code for calls to the SERIAL routine. For example, do a case-insensitive search for just SERIAL and look for instances of “xcall SERIAL” (in case there are tabs/spaces/returns between the words). See this topic in the FAQ for more info.
  • If you use the Synergy/DE Licensing Toolkit, be sure to get the latest License Key Generator from Customer Service. And if your code processes the registration string, you’ll probably have to update it to handle the larger string size. See more details for this topic in the FAQ.

Should I be using the Licenses site in the Synergex Resource Center to manage my licenses?

Yes! Make sure you are fully utilizing the features on this site. There you can take care of many of your license tasks, including generating keys and generating REV11 install codes. Doing these tasks yourself instead of contacting Synergex Customer Service is better for you since the site is available whenever you need it, and it’ll free up our Customer Service team to assist customers with tasks that they can’t do themselves.  

If you don’t yet have a Resource Center account, go to the Resource Center and click Create Account in the top right corner. Your company should have at least one Site Admin who can access your licenses and also control access to your Resource Center privileges. If you need to add any Site Admins, contact Customer Service.

How should I prepare for the 2021 REV11 licensing requirement?

  1. Make sure you’re set up to manage your licenses in the Resource Center. (See above.)
  2. Check to see if your application is using the SERIAL routine or the Licensing Toolkit and if so, address those accordingly. (See above.)
  3. Determine which of your licenses will require REV11 licensing and when they renew. You can view your licenses in the Resource Center, show only Subscription licenses, and sort by End Date. It shows which licenses are already using REV11 licensing. You can click on a license to see if it’s a major version (e.g., 9 or 10). For v9 licenses, you can run LMU on your version 9 systems to determine if they are 9.5.3b or higher.
  4. Make plans to update your licenses to REV11 licensing before the month they renew so the keys will be automatically updated when Synergex processes your renewal.
  5. Review the information and instructions on the Synergex REV11 website and in the documentation for Windows or Unix.

Thank you for your efforts to update your licenses. Please let me or your account executive know if you would like any assistance in preparing for your updates.


5 Strategies for Creating Educational Content that Customers Will Use

By Heather Sula and Jacklin Garcia, Posted on October 22, 2020 at 3:05 pm

Heather Sula and Jacklin Garcia

The scenario: You and your team of fellow genius software developers have created a great application. It’s been out in the wild with customers using it and loving it, but they have questions and aren’t quite getting what they need from your documentation and release notes, and your support team is always bogged down with the same questions. So how can you educate your customers to help them get the most out of your product?

Talk to Support

As a developer, you have strong ideas about how people should be using your product. However, people are people, and they’re going to take what’s in front of them and do all kinds of things you never expected. That’s where your support team comes in. (Note: If you’re with a small company and you ARE the support team, find a way to keep track of this stuff, if you’re not already.) Support is on the front lines—they’re an infinite well of knowledge when it comes to the ways people are actually using your products and their problem areas. If your support reps are using some sort of case management system (we use Salesforce Service Cloud), they can easily pull reports of bugs reported or questions asked by product or release version to get you the information you need quickly. Plus, if you can convince support that these educational resources mean people will be able to do “self-serve” support and free up more of their time, they’ll be more than happy to get you whatever you need. You can find out how helpful the Synergex support team is here

Get ideas straight from the source

Another avenue for figuring out your customers’ pain points is hearing directly from them, and there are a number of ways to do this. The most direct, of course, is the good old-fashioned direct conversation. Are you or your sales team reaching out to customers with any sort of frequency to see how they’re doing? You’d be surprised what a 15-minute conversation or direct email exchange can uncover. 
You can also create places for people to provide this information directly. Two ways to do this are surveys (some people loooove to give feedback) or a forum where customers can post their thoughts, ideas, and issues with your product. At Synergex, the latter is our Resource Center, and customers use it to air their thoughts and curate their wish list for new product features.

Work with Marketing

Now that you know the “What”—what questions you need to answer and what topics your customers are interested in—you need the “How.” That’s where marketing comes in. If your company has a marketing team, you may see them as the people who sometimes send out emails or edit your website, but marketing can be a valuable resource from the very beginning of this process through the end. They can help you create surveys, advertise your forum, or help create other ways for you to reach out to customers. They may bring a different perspective to help you identify useful areas of focus. They can put their creative powers to use, helping you create and brand your content. And, more importantly, they can help you get your educational product out there (more about that later). Feel free to pick our brains if you have questions.

Make it digestible, accessible, and fun

Sure, you have the dry (though they don’t need to be), dependable resources that come standard with software development: release notes, documentation, etc. But you’re a creature of the internet—you know how short attention spans are, even for detail-oriented, technical people like yourself. Plus, people learn in different ways, AND they need to hear the info multiple times before it sinks in, so providing information about your products in various formats can help accommodate those different learning styles. What you need is content that’s simple and quick to digest. 

Here are a few things we’ve had success with at Synergex:

YouTube videos/tutorials

Videos can be an extremely useful tool when wielded well. They’re a constant resource that your customers can revisit again and again, and they can save you and support from having to answer the same questions over and over and over again by simply linking to a video.

Cheat Sheets

At our company, we provide “cheat sheets” to our customers upon request—visually pleasing, easily readable single- or two-sided documents that contain commonly used statements or shortcuts our customers can use when building their product with our code. Materials like cheat sheets let customers feel like they’re in on a secret (which they are!) and like they’re getting more bang for their buck.

Webinars

Webinars are a great way to promote an idea or product you’d like your customers to know about, while also being a great educational resource for some of the more niche topics your customer may be curious about.

Accessibility

Have all of this information easily findable on your website. It would suck to spend all this time creating content only for people never to find it. We’ve made an effort to move most of our helpful content out into the open, like our Answers and Ideas forums, so you can see it without having to log into the Resource Center. Our KnowledgeBase will be the next component that we move from behind the curtain. Watch for an announcement about this soon. Bonus: If you have more information readily available, it lowers the adoption barrier for potential new customers. People are more likely to pull the trigger on a purchase if they see that you’re engaged and customer oriented with useful, easily accessible information about your product.

Cross-referencing

Remember how we said you need to repeat information multiple times before people retain it? One way to do that is to employ cross-referencing. You can link to your resources from other resources to reinforce your messages. For example, our quarterly Synergy-e-News newsletter links to blog posts and technical articles that we may have only promoted once but want to emphasize. And those tech articles and blog posts often link to our documentation, videos, tutorials, etc. Give your customers every opportunity to find your content by putting it in front of them more than once.

Fun

This stuff does NOT have to be as dry as your documentation (though we’ve been known to sneak in a few surprises there too). Have some fun with your educational materials, be informal, show you’re human. Your customers will have more fun too and potentially retain more.

Let people know about it

This is, again, where you may need to collaborate with your marketing team. They have all kinds of ideas and resources for getting information out to your customers (and potential customers), from emails, to ad campaigns, to social media, to website optimization, to standardized email signatures with links to resources, and more. AND they can make it aesthetically pleasing—never underestimate the appeal of content that looks, well, appealing. Find creative ways to let your customers know about all the great stuff you have for them, and they’ll be happier for it. 

What strategies do you use to educate your customers?

Education: It’s not just for customers

While this post focuses on external resources for customers, internal training and educational materials for employees are important too! Not sure how to start creating internal training materials for your developers or support representatives? Contact your Synergex account manager to learn about setting up a system assessment with our consulting department as a first step – our system assessments provide a documented architectural overview of your application, touching on relevant aspects of your overall business, which you can then turn around and use for your internal onboarding. 

Bottom line: get creative and collaborate. 


Announcing Synergy/DE 11.1.1f

By Steve Ives, Posted on September 22, 2020 at 2:11 pm

Steve Ives

We are pleased to announce the release of Synergy/DE 11.1.1f. This is a quality improvement release available immediately on all Synergy-supported platforms. Please refer to the release notes f0r important information on issues addressed by this release.

Amongst other things, this release addresses several issues relating to running xfServer with encryption enabled. This is a configuration that we highly recommend for all xfServer deployments. If you are doing so and are running an earlier version of Synergy 11, we encourage you to upgrade your server and client systems to 11.1.1f.


Improving Our Internal Development Process

By Steve Ives, Posted on September 21, 2020 at 11:21 am

Steve Ives

We’re about to release another version of Synergy, and when we do you may notice that we’re not documenting any new features in the release. This is an intentional change, and I wanted to let you know about it ahead of time.

In addition to working on Synergy/DE, our development teams are also working on re-organizing many of our internal systems, tools, and practices. We’re centralizing almost all of our development around Microsoft Azure DevOps; we’re consolidating all version control on Git (currently, depending on the product area and platform, we also use PVCS and Subversion), we’re making extensive use of CICD principles and tools to build automated build and test pipelines for all aspects of the product, and much more.

The only exceptions to this are our open source products, CodeGen and Harmony Core, which will remain in their current locations on GitHub. This will be an on-going process extending well into 2021 and, when complete, will put us in a great position to be able to return our focus entirely to Synergy/DE within a modern, highly efficient and productive development environment.

And as part of this reorganization of our environment, tools and practices, we have also made some decisions about how we’re going to release changes to the Synergy/DE products. For the core Synergy/DE runtime products, we have decided to revert to our earlier practice of only releasing quality improvements in patch releases; new features will be released less frequently, in numbered product releases. There are some other changes coming down the pipeline, but we’re still fleshing out some of the details, we’ll let you know as soon as things are firmed up.

This decision applies to the runtime products only, not to the development tools; you will still see regular releases for the Visual Studio-based development tools (and maybe more) in the near future. And development and releases of CodeGen and Harmony Core will continue as normal.


xfBBQ and You: “Wait… Who Ordered that cheeseburger Again?” A Browser-Based Solution to an Age-Old Issue

By Johnson Luong, Posted on August 15, 2020 at 5:06 pm

Johnson Luong

Ahh… summer BBQs. Is there anything that defines the summer season better than a good BBQ? Yes, yes, there is: A browser-based application, made with React and Redux, that helps you organize your BBQs. Don’t you agree? How else are you going to keep track of who ordered what and with which toppings? Did Aunt Vi want one or two hot dogs? Did she order them burnt or regular? Did you buy enough turkey burger patties? You forgot that Manny and Bigbah both wanted two veggie burgers each! How could you have accounted for that?

Enter xfBBQ, the solution to all your existential BBQ woes. I built xfBBQ using the latest and greatest in web application technology, React and Redux. It’s the ultimate answer to managing your perfect BBQ. As its back end, xfBBQ uses the excellent Harmony Core framework—your solution to modernizing your Synergy applications with web services!

Is all this hyperbole not enough for you? Do you also need to know how you can get your hands on this wonderous application? Easy peasy: It’s on our GitHub, of course! Just clone it and see for yourself. You can check out the application live, too. xfBBQ is for everyone!

You may be wondering, how did I xfBBQ? What do you mean “how” did I xfBBQ? That’s not even a valid question. I don’t think xfBBQ is a verb. But maybe you meant how did I create xfBBQ? Now that’s an excellent question, which calls for an equally excellent answer! Fortunately, you can find my four-part series about xfBBQ on YouTube.

Part 1 explains how to set up your Harmony Core and React environments from scratch. I talk about what prerequisites you need for the app. I also explain in detail how to edit your regen.bat to get Postman working with Harmony Core. In addition, I talk about the first stages of getting the front end and back end to talk to each other. By the end of this segment, the application can display raw JSON data coming from Harmony Core to the front end.

In Part 2, I clarify how to add a primary key generator in order to POST new data to the back end. I add a user registration form to show off this new feature. Then, Redux comes crashing into the BBQ party, so I need to explain how it all works. Redux is here to stay, so I integrate Redux into our app and show it working in a new login form. Based on the permissions set on who logs in, the application will display different pages for different users, all thanks to Redux.

Part 3 introduces reCAPTCHA into the picture. I show how to use reCAPTCHA to protect both the front and back end from user registration bot attacks. Afterwards, I add batch order processing to the mix. This allows a user to add multiple orders at the same time, all as one POST, leading to less strain on the back end. In addition, I update the UI a little bit to make the data coming from the back end easier to read.

Lastly, Part 4 explains why xfBBQ needs user authentication. Because the back end is public, it needs protection from all sorts of nasties out there in the wild. User authentication helps by forcing a user to sign in from the front end before being able to do anything with the back end. Finally, I go over styling the application using Bootstrap so that it looks all nice and fancy. As a bonus, Bootstrap is responsive, meaning that the web application now works on your phones! As an ultimate step, I discuss how to use create-react-app to build a production version of xfBBQ. I set up Harmony Core to use this production build, too.

So, what are you waiting for? xfBBQ is the perfect example of how you can modernize your applications and bring them to the web. In my webinars, I explain everything in depth, from initial setup to final commit. Plus, with a few more steps, your applications can be mobile friendly! Now, who’s ready to put their hot dogs on the grill? I’ll be waiting… Hold the mustard, please.


Migration to New Downloads Site Completed

By Steve Ives, Posted on August 14, 2020 at 2:40 pm

Steve Ives

Back in June, I announced the launch of a new product downloads site, which at the time provided access to all of the Synergy 11 downloads, and that downloads for earlier versions would be migrated over the coming months. I am pleased to announce that process is now complete and that the downloads for products all the way back to Synergy 7.1 are now available from the new site and have been removed from the old resource center.

The old download pages also included downloads for the Synergy V6 products but, because the way the software was distributed was so different back then, we decided not to migrate those old versions to the new site. For now, the version 6 files can still be downloaded from the old resource center, and we will make those files available via some alternate mechanism before that site is eventually decommissioned.


Announcing Synergy/DE 11.1.1e

By Steve Ives, Posted on July 14, 2020 at 2:04 pm

Steve Ives

Due to the discovery of a potentially serious issue in the 11.1.1d release of Synergy/DE, we have decided to withdraw that release on Windows and UNIX platforms and replace it with 11.1.1e, which is now available.

To understand the issue, it is first necessary to understand that enabling compression on a data file can, in rare cases, result in a small increase in the size of some records! This can only occur if the data in a record is not compressible, yet the compression itself adds a small overhead.

It was found that when reading records from a compressed file, by RFA, any records exhibiting this “negative compression” would have one byte of bad data returned at the end of the record.

11.1.1e includes new versions of Synergy/DE 32-bit and 64-bit for Windows and Unix platforms, and Synergy DBL Integration for Visual Studio (build #2769).

We strongly recommend that anyone who has updated to Synergy/DE 11.1.1d on the affected platforms should immediately upgrade to 11.1.1e.

As we needed to release a new version to address the READ by RFA issue, we decided to also include several other quality improvements that had already been completed.

Synergy/DE Runtime

(Windows) In 11.1.1d, when using SYN_RESIZE_SCALE or having a monitor DPI change, some .NET controls would fail to repaint if the application moved between monitors of different DPI or scaling.

Traditional Synergy Compiler

A global structure with the same name as a subroutine no longer causes a segmentation fault when loading prototype files when there are different prototype files for the global structure and the subroutine.

Synergy Configuration Program

We addressed an issue in rsynd that was causing the SynConfig utility to fail with a “Could not complete services import” error when specifying a user account during service import.

Synergy DBMS

We enhanced the isutl utility when recovering change tracking files with bad change tracking links, and the utility no longer crashes if certain wildcard file operations are attempted.

Visual Studio Build System

We fixed an issue in the incremental build feature in SDI 11.1.1d-2749 through 11.1.1d-2763 that caused full project builds to occur when only partial builds were necessary for projects using common.props and with non-Synergy references.

We fixed an issue that prevented low-level libraries in Synergy .NET Core solutions from automatically rebuilding when an output file was missing.

Visual Studio Property Pages

We fixed an issue that prevented Visual Studio settings imported from a file from working until a Synergy DBL option page (Tools > Options > Text Editor > Synergy DBL > …) was opened.

We fixed an issue with Synergy .NET Core and .NET Standard projects that prevented SDI from resolving known MSBuild properties used for pre-build and post-build events.

For additional information and tracker numbers associated with each of these items, please refer to the release notes.


Announcing SDI 11.1.1d-2763

By Steve Ives, Posted on July 2, 2020 at 1:01 pm

Steve Ives

Shortly after the recent release of SDI build 2755 we discovered an issue that we wanted to address as soon as possible, so today we are announcing the release of build 2763, which we recommend for everyone using Visual Studio for Synergy development.

We are not aware of any customers being affected by the issue, and we have removed the download link for the previous build.

For additional information please refer to the release notes.


No More SDI “Developer” Builds – Just Releases

By Steve Ives, Posted on June 29, 2020 at 3:12 pm

Steve Ives

I wanted to make you aware of a small change that we have recently made to the way that we refer to “interim” releases of the SDI (Synergy DBL Integration for Visual Studio) product.

A few years ago, it became clear that we needed to be able to release our Visual Studio Integration tools on a more frequent cadence than the main Synergy/DE product. So we started doing interim releases that we referred to as “Developer Builds.” Each developer build was identified both by a version number and a build number.

Initially, these builds were often not subject to the same levels of stringent testing that a build for a full release would be, and we made that clear to customers. But now, thanks to considerable improvements in our automated testing processes, these interim builds are now subject to the same levels of inspection and testing as a build for a full release, and it is no longer necessary to discriminate between developer- and full-builds.

For this reason, we have decided to stop referring to these releases as “Developer Builds,” they are now all just “SDI Releases,” which will continue to occur on a much more frequent cadence than Synergy/DE.



Don't miss a post!

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Recent Posts Categories Tag Cloud Archives