Fast Fingers-Function Keypads

This is the third in the series of tools and technologies that I use to deal with the loss of functionality in my hands and arms. Check out this article for the lead up to this series.

Setting the stage

The issue I’m dealing with involves muscle atrophy in my hands and my arms. As a result, I’ve lost a lot of strength in my hands and arms including my fingers. Some of the unintended or unplanned impacts included the inability to successfully type at times or diminished amount of time I can spend typing. I had previously used a Logitech split keyboard which I loved. I considered myself a good typist and used to be able to type and a code very effectively. With the onset of the atrophy, I encountered situations where my hands would stop working. I would be typing and then I couldn’t type anymore. Some of it is related to physical exhaustion or fatigue from the effort required given my condition. I also experience a situation where my fingers curl making it nearly impossible type on a keyboard. The first time this happened was the first time I was concerned about my career. As I noted in a previous article, I am using voice to text for the bulk of my typing including this blog post. However, voice to text does not work that great for coding and frankly I have issues with any multi-key functions that require my hand to stretch across the keyboard.

Discovering a solution

I was watching a show with my wife and daughter when an ad came up that showed the Quick Keys solution from Xencelabs. This was part of a video editing package including a tablet and pens. I was intrigued because I had not seen a solution that allowed me to program keys with text. It also had a wheel on it that could be used for other tasks. I went and looked this up and I was able to buy just a Quick Keys device.

And I started doing some more research and looking into what this tool did, I realized that the space I needed to look more closely at was related to video editing and streaming. They have a series of tools which support macro keys that they use to optimize applications, shortcut keys, and game actions. The variety of these tools is substantial. Shortly thereafter, while at church working with the tech team, I saw a Stream Deck. This was even cooler because each of the buttons have a programmable LCD screen behind it. Now I knew what to look for and started determining what I wanted to do as I move forward.

Xencelabs Quick Keys

I purchased the Xencelabs Quick Keys device first. It has 40 programmable functions and a physical dial that I was able to program.

Xencelabs Quick Keys

I programmed some basic functionality that I really liked to have available with the ease in of a pushing a button close to me such as delete, backspace, a shortcut for speech to text, undo, redo, cut, @, and ctrl. This is my generic set of functions that in addition to the copy, paste, double click, and dictation shortcuts I had on my mouse applied to most of the applications that I worked in. I next set up a screen that you can go to by pushing a function button on the device to support specific functionality within Microsoft Word. The big one that I needed to have in there was a shortcut to change case as Microsoft dictation does not have cap capability at this time. I also added home and end along with a couple of other functions to be helpful.

The Quick Keys device has five customizable screens of eight buttons each. So, I used the first one for my generic set as noted above. My second one was for Word. I added a third screen that contained the web addresses of common locations I needed to go to such as the Azure portal and my blog. This allowed me to open a browser, push a button, and go to that site easily. What I quickly discovered was that I was going to need more functionality for this to be effective in the long term. Before I go to the next solution a couple other things I did on this device included using the physical wheel for moving the cursor and for volume control as it too had five settings.

My default screen setup with Quick Keys

Elgato Stream Deck

Because I had a device already, I wanted to research the Stream Deck before purchasing it. One thing I quickly noticed is that it is a favorite tool among streamers and has not had a significant upgrade because it just works. The device has been a solid device, easily programmable and customizable in a multitude of environment. If you go to YouTube, you will find a number of streamers, gamers, and content creators walking through demos of how to setup and use the Stream Deck. It has a lot of built-in functionality for variety of editing and streaming tools.

 To start with, I was unsure if this would be a good solution for me as most of what I needed was not what they were using it for. So, I dug in. What I discovered was that the deck was highly programmable with effectively an unlimited number of options that you could program. I thought I’d give it a try.

I purchased the 15 key Stream Deck pictured here:

Elgato Stream Deck

Once I got the Stream Deck and uploaded the software to program it, I quickly realize there are number of addons for the Stream Deck to support programming and Windows functionality. These are addons that give you shortcuts to things like locking your computer something that Quick Keys could not do. I added these in as well as some icon sets because icons are cool. Once I had this in place, I programmed my initial set of functionality to enhance what I was doing with Quick Keys. Because I already had Quick Keys, those two screens provided me the generic starting point for most functionality I would need outside a specific programs like Word. This also allows me to keep Quick Keys on the generic set of common functions and use Stream Deck to be more reactive to programs and needs.

I have taken the Stream Deck and programmed it for a couple of specific use cases I really am happy with. Let’s start with the first one which is Word. Stream Deck can detect the application that you’re in and set the keys up with specific profiles that you create. In my case whenever I am in Microsoft Word, it has the editing keys and other functionality that make working with documents easier on the Stream Deck. Because I still have basic keys sitting on the Quick Keys solution I’m able to have a combined set of 23 function keys readily available without switching screens.

Default screen on my Stream Deck
My Word profile

I have also set up a similar set of functionality when working with Microsoft Outlook. While I’m still working through which functions make the most sense for me to work with in each scenario and if I need more than one screen, the amount of functionality available at my fingertips as a result of programming these two devices is substantial. It makes it easier for me to work through a variety of commands without struggling with the keyboard. I am using the Word functionality as I edit this blog post after getting the content created via voice to text.

Optimizing functions for code

Now for the more interesting use case. It’s part of my job occasionally I still need to do some coding. In this case, I was working with T-SQL code. I needed to create some tables, add some keys, and work with data. Coding is one of the most typing intensive activities I do where voice to text does not help me. So, how can Stream Deck help me out? It turns out you can actually send keystrokes through both devices. However, the capacity of Stream Deck is substantially larger than that which is available in Quick Keys (500 versus 24). More importantly with the unlimited number of keys that can be programmed combined with folders to allow you to group together commands in Stream Deck, it was a natural choice. I created a folder on my screen for the work called SQL. In there I created a folder for CREATE commands and will likely add more as they go along. In the first folder of SQL, I have commands such as SELECT, FROM, WHERE, INNER JOIN, and similar common commands used when working with data in SQL. While it may seem at first glance these are short commands, I must call out that the goal for me is to reduce the amount of typing I do as much as possible. When I added the CREATE commands, I had the full syntax for creating a table where I just had to fill in the name and field list. I also added a folder that gave me the data types most used so I wouldn’t have to type those either. I also had the syntax for primary and foreign keys and add indexes in the future. My point here is I was able to reduce the amount of typing required by 30 to 50% depending on what I was doing. This reduces strain on my hands and allowed me to be more productive for a longer period of time.

Here are some screenshots from the Stream Deck programming surface to show you how I set it up for SQL so far.

My SQL default menu
My SQL create menu

I really enjoy a Stream Deck because some of it is just fun. Part of the fun of this is finding icons that you can use that include gifs on the screen. I’m completely planning to continue to extend what I’m doing with my Stream Deck.

Wrapping it up

Finding these tools have been extremely important to maintaining productivity in my work. What I’m learning so far is the tools that I’m discovering are beneficial for me but also for others who might want to build shortcuts out for things they can’t remember or to make working generally easier. These tools are not without cost, but the increased productivity is seriously worth it. And frankly it makes my setup at work look really cool. Hopefully you find this information helpful, or it could be helpful to someone else. Feel free to pass it on.

Typing with Your Tongue – Voice to Text Technologies

This is the second in the series of tools and technologies that I use to deal with the loss of functionality in my hands and arms. Check out this article for the lead up to this series.

Setting the stage

The issue I’m dealing with involves muscle atrophy in my hands and my arms. As a result, I’ve lost a lot of strength in my hands and arms including my fingers. Some of the unintended or unplanned impacts included the inability to successfully type at times or diminished amount of time I can actually spend typing. I had previously used Logitech split keyboard which I loved. I consider myself a fairly good typist and used to be able to type and a code very effectively. With the onset of the atrophy, I encountered situations where my hands would actually stop working. I would be typing and then I couldn’t type anymore. Some of it is definitely related to physical exhaustion in the effort required given my condition. The first time this happened, was the first time I was concerned about my career.

As my condition has worsened, I have try to variety of software solutions that supported voice to text. In this blog I’m going to separate my voice to text solutions into two primary groups. The first group is those tools which I can use for dictation like creating this blog post or working with documents. The primary focus of this group of tools is to support the ability to add text while working on a computer with a mic. The second group of tools is primarily focused around note taking and using mobile tools on my phone or similar devices where I may not have access to the dictation tools I would you use in my normal work day. the one area that I am not going to cover in this blog post is related to voice automation tools or those tools which provide voice command capability. What I have found is that they are not the same. Currently I have not found a voice command solution that I like. As I do some more discovery in that area, I will share what I find.

Dictation tools

When my condition first surfaced, I immediately started thinking about how to do voice to text. The first software that came to mind with Dragon by Nuance. I started using Dragon as soon as we were able to get a professional account through work. The first thing I noticed about Dragon was that it felt like I had went backwards in time as it was not a updated piece of software or modernized. Dragon has been around a long time and services a lot of different areas of business including law and medical. It is a highly valuable tool in those spaces and has specialty products for some of those with specific terminology support.


What I liked about Dragon is that it has an extensive editing capability built into the software. This is particularly true if you use their special dialog box to create most of your content. That being said, you really need to have a good microphone to efficiently run Dragon. The other issue that I had was when we upgraded to Windows 11, it was not supported. This will likely change as Microsoft has purchased the product in recent months and will likely incorporate a lot of it into its own platform. I reverted to Windows 10 to determine how much I would use it. The biggest issue I had was the requirement for a high-quality microphone that would likely need to be on a headset to operate well.

With the switch to Windows 11, I needed to find alternative options and I turned to Microsoft to see what they had available. It turns out that Microsoft has two voice to text solutions that work in Windows 10 and 11. (These solutions may work in other versions of Windows, but I don’t use them.) The first tool I explored and worked with was Dictate that is available from Microsoft 365.

Dictate In Word

In particular, Dictate inside of Word. I immediately liked this tool because it is built-in to the Office platform. It also seemed to learn more quickly than Dragon did through general use which is likely to do the AI behind it. I also appreciate the fact I could use the open microphone effectively without making changes to my environment. I am writing this blog post in Word first because of the capabilities of Dictate. It is not without flaws, and the biggest issue I have with Microsoft 365 Dictate is that it does not know how to capitalize mid-sentence or to choose a word to capitalize. This seems like a significant oversight that many have complained about through the years of using this product. Hopefully Microsoft will resolve this soon as it seems like an oversight. I did discover that there is a change case option in text editing available in Word that has allowed me to handle this situation easily.

Change case in Word

I’m still learning Dictate and its capabilities but overall, it has been the most fluid solution I’ve used to date.

When Dictate is not available outside of the Office 365 suite. In that case, I use the Microsoft voice typing that you can find by hitting Windows+H.

Windows voice typing box

This will allow you to do voice dictation to any text box well, most text boxes. I use this for dictating messages in Teams, forms on websites, and similar type of functionality. This is not as capable as Dictate in Office, for example delete does not work the same way in the two tools. However, it too seems to learn my speech and respond well to the open mic which is why I have chosen to use it.

Before I move away from the dictation tooling, I want to add that in the Office suite I’ve been able to effectively use Dictate in Outlook. This has been very helpful in creating emails. Depending on where you are in Outlook you may or may not have Dictate available to you in which case you can always use voice typing. Dictate also works effectively in OneNote. The functionality in PowerPoint is severely lacking and I don’t know why. It does not seem to figure out what I’m trying to say most of the time when I’m working with this in PowerPoint. So, this is kind of frustrating when creating presentations but overall, the effectiveness in Outlook and Word have kept me quite productive.

In summary, if Dragon works for you and how you work it is likely the best tool for the job. With Microsoft purchase of Dragon, we can expect to see some of that functionality move into this Office suite is my expectation or into Windows directly. If you are like me and prefer using an open mic, you will find that the Microsoft 365 Dictate and Windows voice typing tools are more likely a better fit but still have significant gaps to fill.

Notetaking and mobile

I kind of grouped these together because of how I function. One of the immediate impacts of my condition is that I am no longer able to take handwritten notes. This has been a huge hit as most of the time I used a lot of pen and paper for design work, notetaking, etc. Losing this capability was a significant hit to my productivity. As a result, I needed to find alternatives.

Otter on Android

The first tool I added to my toolbox on my phone was Otter. This product was introduced to me by a peer at 3Cloud. It allows you to record and transcribe conversations so that you have notes from that conversation as well as the recording. It does are pretty good job in transcription frankly. I’ve used it to take notes during meetings, to take notes while working with my doctors, and just self-transcribed notes. I use exclusively on my phone and then transfer the notes to OneNote when I want to use them with other tools. This has been a lifesaver in particular in regard to doctors’ appointments. It has helped me keep track of that information and because of the transcription we can transfer that into other documents or even onto my CaringBridge site when we need exact details.

On my phone, I also use Google’s built in voice text technology and Samsung’s technology as I have a Galaxy phone. I will say this as hit or miss and often and it’s a little bit of fun to my text with my family for sure. However, it is still easier to use voice to text as opposed to typing on the device itself. So, I’m thankful that it works even if it stumbles a lot more than some of these other tools. Dragon does have a mobile option as well, but I did not get it working so I can’t really speak to its functionality at this point.

Summary of my new world

I still need to type to do my job. Part of my job entails building some technical labs which require coding. Coding is not easily done with voice to text or maybe we should say should not be done with voice to text. However, as intellisense and similar functionality has become more prevalent in the tools, it has reduced the stress on my hands when creating code. There’s new functionality from Microsoft in GitHub called copilot and similar tools that use AI to suggest code. For the moment I haven’t had a chance to test these functionalities out but I’m looking forward to seeing how they to improve my work environment. I would always recommend that you let people know that you’re using voice to text in particular when you’re using it in Teams or other chatting type environments. This means you don’t have to go back and correct everything you do all the time. People are forgiving and occasionally we get some really good fun like calling “Dennis” “dentist”. He wasn’t one, or so he says.

Before I end, I would like to say that this is not just helpful for those of us who struggle typing. You may find the dictation tools for example in Word to be a way to generate documents rather quickly. Just keep in mind:

  • plan to edit some
  • take your time
  • learn the tool
  • find success

I hope this helps someone out there. If you have found a tool that uses voice to text more efficiently or differently than when I’ve talked about I’d love to hear about it. Just add it in the comments below. Thanks for reading!

When is a mouse not a mouse?

This is the first in the series of tools and technologies that I use to deal with the loss of functionality in my hands and arms. Check out this article for the lead up to this series.

Setting the stage

The issue I’m dealing with involves muscle atrophy in my hands and my arms. As a result, I’ve lost a lot of strength in my hands and arms including my fingers. Some of the unintended or unplanned impacts included the inability to successfully type at times (more on that later) and what feels like cramping in my hand when holding a mouse for too long. I was using a nice Logitech mouse for most of my work. I have also used the Surface Arc mouse from Microsoft. I liked Arc mouse because it traveled very well because you can flatten it. The Logitech mouse and split keyboard were a part of my standard home office setup.

An older picture of my setup with the Logitech mouse and keyboard

As a condition worsened, I found myself struggling to use a mouse longer than half hour to an hour at a time. I would work with the mouse and then eventually I would start unintentionally clicking the buttons and was unable to actually move it. The level of frustration caused by working that way is pretty high.

Large trackpad try out

Because the problem appeared to be around the fact that I was holding the mouse, my first thought was to try a larger trackpad. This would allow me to use both hands and fingers effectively to manipulate the mouse on the computer. What I found was it just transferred the problem. My lack of finger control and the cramp in my hand still existed while using the trackpad.

Enter the roller bar mouse

A friend of ours works with hand specialists back in Minneapolis. She suggested we check out something called the RollerMouse. It’s an interesting tool. (One thing to note here is that all of these tools cost something. Trying to find the right tools to work is not inexpensive. Hopefully some of this information will help you save some money. ) I went online and did some research about how it’s supposed to help. A lot of the reviews talked about folks with arthritis or other similar conditions which impact their ability to work with a mouse for an extended period of time. Including the fact that they could have shoulder issues and so on. That being said, I decided to give it a try.

The RollerMouse Red that I purchased

It is a completely different way to work with the mouse functionality on your computer. Many of the reviews talked about the two-week learning cycle that was required to be effective. I found that I was affective using the mouse within a couple of hours. I do think this was related to the fact that I struggle so much to work with a traditional mouse or trackpad. The roller bar effectively supports a three-screen solution including two 34-inch monitors. The side-to-side motion of the bar navigates seamlessly from one screen to the other.

Beyond that the buttons are awesome! Naturally there are the left and right click buttons in the center of the bar. The bar itself functions as a left click which is a very natural function when working with the mouse. There is the scroll wheel in the middle which works like a scroll wheel on a normal mouse. Now it gets interesting. At the center in the bottom is a double click button. I did not know if I’d actually use this, but I find myself using it especially when switching hands while using the mouse. The steepest part of my learning curve has been effectively using the buttons. I must keep in mind that the cursor placement is where the clicks will occur, not the last place I had clicked. Up next, they have the copy and paste buttons right above the left and right clicks. In a later blog I will talk about speech to text functionality but having shortcut buttons for copy and paste means I did not have to do the Ctrl+C or Ctrl+V patterns on the keyboard. Which is great! All the buttons are programmable. This means you can change them if you have a better pattern that works for you. So far, I’ve only changed one button, the scroll button click. I use it to turn on dictation in Word.

It changed the way I work

To say that this has changed the way that I work and allowed me to work longer is the understatement of the year. I am still working through other tools and devices to continue to help me be productive. But to date this is by far, the best investment I have made. If you’re experiencing issues manipulating a mouse in the traditional fashion or anything that requires you to potentially either switch hands to give yourself a break or just because it’s hard sometimes to use a mouse and move it, this is a great solution for you. The mouse is stationary and has a nice wrist pad for you to work on. The ability to switch hands allows me to get the break I need on either hand at any given time. With this mouse I am able to stay more productive than I ever thought I was going to be able to win the started. As you can see, I’m a real fan.

My new desk set up with the RollerMouse in the middle

For those of you that aren’t dealing with issues and are wondering should you use it? If you want to experience a different method of working with a mouse and get rid of moving around mouse is on your desk or touching a trackpad this is a great solution. I personally think I would have fallen in love with this solution much earlier had I known about it. Now you know about it!

I love to hear from you if this was helpful and if you’ve decided to give this a try. For those of you suffering with carpal tunnel or arthritis come on give this a serious consideration. It is on the pricey side, but I will tell you in this case it may be worth it.

The Impact of Change

I started this summary on LinkedIn. Check out that article here. I only used LinkedIn to introduce what is happening, if you’re interested in learning more keep reading.

Kristyna Hughes

First, I have to say thank you to my daughter Kristyna, who has been contributing regularly to our Data on Wheels blog in my absence. I’m amazed at quality and depth of the content she has provided to the community including blogs on the tabular object model and C#. I’m glad she is able to provide great content for the data community.

3Cloud has been a key partner in my journey so far. Early in the diagnosis we were not sure if this was ALS. Frankly, we are still not sure if it will lead to that eventually. 3Cloud has stepped in and helped me find a place where I can contribute and support our teams as we continue to grow our business in data and analytics. For that I can say I am supremely thankful. This has allowed me to adapt to my new circumstances and continue to contribute in meaningful way.

Now we get a little more personal, I can say nothing but great things about my wife, Sheila. She has had to step up as a caregiver in ways that we were not expecting. Sheila has been my rock through this as well as my support when I really needed it. From helping me get ready for the day to keeping me going through the day, she has been magnificent through it all. What we do not know is what God has planned for us or what the next stage will be for me as we move forward. We can only trust him every day for what is next.

As a part of this process, we have moved from Minnesota to Kentucky to be closer to my family. That move was interesting. We had a lot of ups and downs as we went along, and I have my adult children to thank for a lot of the help throughout those weeks. We also had many friends help us with packing and prepping because I could not do much at all. They were very gracious and gave us time on their weekends and helped us make this move. When we got to Kentucky my kids did the lion’s share of unloading which was unexpected. With their help we were able to get moved in quickly. They have helped with painting, clean up, and unpacking throughout it all. I have watched my wife and daughters pick up new skills to fill the void where I would have normally done the work. It’s pretty impressive really. Other family members have also stepped up to help as needed which has been great as well.

We are in Frankfort

So, what does that mean for the blog? Well, Kristyna will continue to write on topics that she loves. I will contribute when I can on technical content. But I will also be providing reviews of various tools and technologies I have tried or used through this journey. I hope that some of these reviews will help some of you out there who may have similar or related issues. And maybe someone will find a tool that will be super helpful to them. I look forward to sharing this journey as we move forward.

If you made it this far, thank you for giving me some of your time and lending me your ear. If you want to know more about the personal side of this journey, you can check it out on CaringBridge. I look forward to getting back out in community and connecting with many of you along the way.

Moving Synapse Databases Between Subscriptions – Practical Guidance

One of the tasks, we often do with migration projects is move large volumes of data. Depending on how you are configured, you may need to do the migration project in a development or UAT environment as opposed to a production environment. This is particularly true if you have policies in place on your production subscription that don’t allow the individuals doing the migration and validation tasks to work in that subscription.

Just Copy It… Nope

So you can copy Azure SQL Database using the Azure Portal, PowerShell, Azure CLI, and T-SQL. However, this functionality is limited to Azure SQL Database and does not work for Azure Synapse databases (a.k.a. SQL Pools). Early in 2021, the ability to use the copy functionality to copy databases between subscriptions is also supported but requires security work to make sure the permissions in the database servers and networking allow that to happen.

You can find out more about copying Azure SQL Database in this Microsoft Doc.

Just Restore It… Nope

You can restore to the current server or another server on the same subscription. However, you are unable to restore across subscription boundaries at this time. If you need to move to another server in the current subscription, the process is straightforward, you can use the restore process in Synapse to restore to the current server using a different name. You can also restore to a different server in either the current or different resource group in the same subscription. The restore technique is used in our move process, so details on how to restore a Synapse database will be in the next section.

Let’s Move a Synapse Database

The process to move a Synapse database to another subscription requires some planning and pre-work. The first thing you need to do is create a new SQL Server in the same subscription you have your current Synapse environment. Because you can’t simply create servers, I would recommend that you add an Azure SQL Database to the server as a placeholder. An S0 should be sufficient to keep this server in place for what we are doing. DO NOT ADD anything to this server that will not be migrated. This is a temporary holding place for migrating databases. (This also works for other SQL Databases, but other options may work as well but are not the focus of this post.)

Now that you have the migration server created, the next step is to create a restore point. While this is not required because you can use the automatic restore points, creating a user-defined restore point is recommended. A user-defined restore point, allows you to choose the status of the database you want to migrate, rather than relying on the automatic points and trying to make sure you pick the right time (in UTC of course).

Once you have set the restore point, in the database you want to migrate, select Restore to open the panel to restore your database.

On the restore page, you have a number of options to complete.

  • Restore point type: Choose User-defined restore points
  • SQL pool name: This is not a big deal. The name is the database name used during the migration process and is not the final name used in the target server. Make sure it is something you know.
  • Restore point: Select the restore point you created for this purpose.
  • Server: Choose the migration server you created as the target.
  • Performance level: This one is more interesting. I typically choose a smaller performance level for this restore. Keep in mind that Azure needs to allocate resources to support the restore. Because this is not a final deployment, smaller may go faster. However, NO SLAs exist for this process. That means your mileage will vary. We have seen restores happen in 30 minutes one day and over 5 hours the next. It will be very dependent on the data center and how busy it is. This time variation must be accounted for in your planning.

The next step is to move the server using the Move operation on the server page. You have the option to move to another resource group or another subscription. In our case, we will choose another subscription. IMPORTANT: You will need Contributor permissions in the target subscription in order to move the server to that subscription.

After you have moved the server to the target subscription, you need to set a restore point for that database on the migration server. Then you can restore that database to the target server. It is very important that you use the naming convention and performance levels that you need for this restore as it is the final step in the process. Once again the restore process has no Microsoft SLA and as a result may take longer than planned. You need to have contingencies in place if you are working in a deployment window or have time restrictions.

Finally, you need to clean up the migration server. I would recommend either scaling down or pausing the Synapse database to give you a backup for a while if needed. Once the database is validated on the target server, you can remove the Synapse database (removes storage costs). I would recommend keeping this server as your migration server to use in the future. You can use this process to create copies of databases for development and UAT or similar needs from production instances.

Other Thoughts and Considerations

Here are my final thoughts on this process. First, the fact that no SLA on the restore process is provided by Microsoft has created issues for us in some cases. We have had to extend deployment windows during production deployments on occasion. My recommendation is to plan for the worst case and finish early if all comes together on time.

This process works! You can use it with other SQL assets and you can use it in multiple directions. Keep the migration server around so you can support other processes. If you clean most of it out, the cost of maintaining it is the S0 SQL Database.

One final thought, this is Azure. Thus, this guidance could change tomorrow. We have been using this for about 12 months when this was written. I hope this helps some of you move these databases to support your business and development needs.