Technical FAQs for "Barcode Xpress"

developer coding in .NET Core

Is .NET or .NET Core the better bet for application development? Both frameworks are designed and supported by Microsoft and offer the ability to create apps capable of using multiple languages, abilities, and libraries, but they’re not the same. .NET Core is rapidly becoming the language of choice. For most app developers, .NET Core comes out ahead of its .NET counterpart. 

To understand why, let’s break down both .NET and .NET Core basics, examine the rise of .NET Core deployments, and dig into some key .NET Core benefits.


What is .NET?

Originally developed in the late 1990s and known as Next Generation Windows Services (NGWS), .NET reached beta release in 2000. As noted by Microsoft, .NET helps streamline application creation by allowing developers to write apps in C#, F#, or Visual Basic. By using a common language runtime (CLR) and class library, .NET manages system resources such as memory, thread execution, code execution, and security validation. This allows apps written in one language to talk with code written in other languages, significantly reducing the potential for interoperability issues.

Despite the benefits offered by .NET and work by Microsoft to standardize the software stack, concerns emerged among developers around the proprietary nature of .NET, especially in the realm of software patents. Microsoft has since changed its development approach to more closely follow open-source development models.

What is .NET Core?

.NET Core is an evolution of .NET that delivers both cross-code and cross-platform support. While Microsoft designed .NET to support Windows-based applications, .NET Core applications run on Windows, Linux, and macOS. It also uses MIT and Apache 2 licenses to deliver true open-source architecture and ensure consistency across operating environments.

While .NET remains the more popular framework by sheer volume of app development, .NET Core is quickly gaining ground. A recent survey found that .NET Core is now one of the “most loved” frameworks by developers.


Why is .NET Core becoming popular?

So, what’s driving the adoption of the .NET Core framework over .NET? Several factors now contribute to this uptake, including:

  1. Linux & Windows Deployment – One of the biggest reasons .NET Core is gaining popularity is due to its ability to deploy in both Linux and Windows. This provides vast cost savings to development teams.
  2. Run-Time and Performance Improvements  Whether your application users are internal employees or external partners and customers, runtime speed and performance concerns are always critical to adoption. Since Core is the future of the .NET platform, all future performance improvements will be implemented there and most will not be present in .NET Framework. .NET Core enables APIs and applications to serve up application interfaces and data faster, regardless of the mobile, IoT, or desktop device which is interacting with it.
  3. CommunityBecause .NET Core follows an open-source development model, there’s a large (and growing) community of devs and designers now supporting its ongoing evolution, allowing IT teams to leverage prebuilt .NET Core code rather than building their own from scratch.

.NET vs. .NET Framework

Beyond increased popularity driven by the shift in software development and standardization, the .NET Core framework also offers key benefits such as:

  • Ongoing ImprovementsIn September 2019, Microsoft released version 3.0 of .NET Core and followed it up with version 3.1 in November of the same year. In addition, the company plans to release a new version every year and remove the “Core” distinction between the two frameworks to deliver increased interoperability.
  • Improved Security From security-specific APIs to Microsoft’s Secret Manager and the Azure Key Vault Provider along with straightforward support for two-factor authentication (2FA), .NET Core improves application security without increasing complexity.
  • Cloud-Based Development SupportWith cloud now the de facto framework for everything from mobile applications, Internet of Things (IoTs), and responsive web applications, .NET Core makes it easy for developers to design cloud-native applications across multiple platforms and devices.
  • Easy Updates .NET Core updates are easily managed and applied, allowing developers to spend more time building great applications instead of dealing with complex and convoluted service upgrades.
  • Cross-Platform Code .NET Core code can run on not only Windows but Linux platforms, which can help greatly reduce your cloud deployment costs. Combined with Docker, developers are able to leverage a greater amount of modularity and flexibility than ever before.

The Accusoft Advantage

To help companies compete on the cutting edge of app development and integration, Accusoft is making .NET Core available for specific products, starting with Barcode Xpress for .NET Core. With just a few lines of code, companies can deploy multi-platform, open-source support for industry-leading barcode recognition. From reading damaged, broken, and incorrect barcodes to scanning multiple barcodes on one document in milliseconds, Barcode Xpress makes it possible to easily integrate cutting-edge barcode functionality into any application across any platform. 

Several of our other SDKs are on deck for .NET Core capabilities. While .NET broke new ground for interoperable frameworks, .NET Core offers the next iteration of interoperable development with cloud-based, cross-platform support for applications at scale. Learn more about our .NET Core plans here.

Barcode Xpress Python

Barcode Xpress 13.1 recently released for Linux, Java, and .NET Core, and with it came an exciting new component in the Linux version: official Python support. It has always been possible to use the ctypes module in Python or other modules built upon it to utilize native C libraries, but Barcode Xpress Linux now ships with an official Python sample script as well as a small library you can use to take the pain out of analyzing barcodes from your Python scripts. 

You can browse the included samples, located in the ReadBarcodesPython directory, for examples, but in this article we’ll go into some additional depth explaining how everything works and how to get started reading barcodes.


Including Barcode Xpress In Your Python Project

When adding Barcode Xpress to a Python script, there are two primary files you’ll need to locate and be aware of: BarcodeXpress.py, the wrapper library, and libbarcodexpress.so, the native library.

BarcodeXpress.py is a small wrapper library that utilizes the ctypes module to find, load, and call the Barcode Xpress for Linux native library. The simplest way to use it is to simply copy it into the directory containing your script or application and then include it normally.

import BarcodeXpress

When imported, BarcodeXpress.py will attempt to search for libbarcodexpress.so or either of the versioned names of the library associated with it’s release. It will first look in the same directory containing BarcodeXpress.py. If it does not find it there, it will attempt to locate the library in the recommended default location: ~/Accusoft/BarcodeXpress13-64/bin. It will always attempt to use the version of the library it was released with as it’s first choice, falling back to any version of the same major release and finally to any version at all. We recommend that you not rely on those fallbacks, though, and always use it with the version it was released with for maximum compatibility.

If you’ve installed Barcode Xpress in the recommended location then you should have no problem using the native library from there. For any other location make sure to copy one of the libbarcodexpress.so files to the folder your script is running from.


Barcode Xpress Licensing From Python

Barcode Xpress requires you to have either a paid or evaluation license before analyzing any barcodes. The simplest way to get started out of the box for a new user is to use the License Manager included with your Barcode Xpress installation to install an evaluation license on your computer. If you haven’t requested an evaluation license yet, you can do so at the main Barcode Xpress site: https://www.accusoft.com/products/barcode-xpress-collection/barcode-xpress/

For other licensing scenarios BarcodeXpress.py provides a set of functions mirroring the ones found in the native library which accept normal Python strings and integers:

BarcodeXpress.SetSolutionName("YourSolutionName")
BarcodeXpress.SetSolutionKey(key1, key2, key3, key4)
BarcodeXpress.SetOEMLicenseKey("2.0.AStringForOEMLicensingContactAccusoftSalesForMoreInformation...")


Setting Analysis Parameters

While the native Barcode Xpress library requires filling out fields in a struct to define any non-default parameters you would like to pass to the engine, the Python wrapper allows you to pass in values in a standard Python dictionary which it will then translate into a struct for you. Additionally, several classes containing static members are present in BarcodeXpress.py which correspond to the enums present in the main library.

options = {
"Orientation": BarcodeXpress.Orientation.HorizontalVerticalDiagonal,
"BarcodeTypes": [BarcodeXpress.BarcodeType.All]
}

 

For a full list of options and their values, check the full reference documentation.


Passing Images into Barcode Xpress

There are currently two ways of passing your images into Barcode Xpress from Python: passing the path to a bmp file as a string, or passing an image loaded from disk by OpenCV:

# With an image path
results = BarcodeXpress.AnalyzeFile(“my-image.bmp”, options)
# With an OpenCV image
myImage = cv2.imread(“my-image.png”, cv2.IMREAD_GRAYSCALE)
results = BarcodeXpress.AnalyzeOpenCV(myImage, options)


Interpreting Barcode Results

Either Analyze function will return a Python list containing Barcode objects, the class for which is defined in BarcodeXpress.py. This class has members for all of the fields in a normal Barcode Xpress Result struct except they have been converted into Python friendly equivalents. For the complete list of returned properties and their types, see the complete reference documentation.

And that should be everything you need to know to detect barcodes in Python with Barcode Xpress! BarcodeXpress.py is completely open so feel free to look around inside that file to see how we’re using ctypes to give you access to the full API of Barcode Xpress for Linux. Feel free to contact us with any questions or for evaluation licensing, and good luck decoding barcodes!

barcode education

 

Complexity is increasing for post-secondary institutions. From burgeoning class sizes to evolving technology requirements and privacy concerns, schools need a way to streamline operations without sacrificing accuracy or security. According to Campus Technology today, “for higher education to meet these challenges, nothing less than transformative change will do.”  Barcodes can help with the unique challenges in education.

Barcodes offer a way to stay ahead of the complexity curve. By encoding data on student ID cards, library resources, and IT devices, it’s possible for schools to both streamline operations and underpin digital transformation initiatives simultaneously. But what does this look like in practice? Where are schools best-served by barcodes? Which types offer the biggest benefit? And what potential issues emerge when deploying barcode solutions at scale?


Barcodes in Education: Making the Grade

The brilliance of barcodes is their ability to encode complex data in small spaces. For schools with an abundance of administrative, student, and resource information, targeted application of barcode technology can streamline both access and security. While there’s no single way to effectively apply barcodes in post-secondary settings, common use cases include:

  • Student ID CardsBy encoding student data such as name, ID number, and account balances onto barcoded ID cards, schools can easily track student attendance, restrict or permit access, and even load digital funds onto student IDs to pay for on-campus services such as food, document printing, or textbooks.
  • Resource Tracking As noted by EdTech Magazine, university spending on IT now tops $2.1 trillion worldwide. While network and cloud infrastructure accounts for the bulk of technology budgets, schools are also spending on devices for students to use in-situ. Barcodes allow IT admins to easily record resource borrowing, track student use, and ensure devices are returned.
  • Database IntegrationPost-secondary schools recognize the value of data analysis, but often struggle to collect and compile critical datasets. Barcodes allow organizations to connect digital silos with physical information sources to help build campus strategy.

Cracking the Code

Barcodes have come a long way from the ubiquitous UPC. At the University of Guelph, for example, researchers are leveraging DNA barcodes to catalog all life on Earth, while The Tribune points to a school in Gurugram that has affixed all trees on campus with QR codes to help students quickly learn more about local flora.

The key to barcode benefits in both cases? Matching format to function. While more advanced codes offer the potential for greater data storage, they’re not always best-fit for the task at hand. 

For most applications, schools are best-served by one dimensional (1D) barcodes. The familiar set of black lines and white spaces deliver one axis of information across their width, and are ideal to meet the space constraints of student ID cards. Handheld scanners or mobile devices can read these codes, and the simple structure of 1D codes makes them easier to rollout and repair as needed.

Two dimensional (2D) barcodes — such as datamatricies and QR codes — use both width and height to encode more information. For example, the standardized GS1 QR code can encode 4,296 characters while the GS1-128 can encode just 48. 2D codes are ideal to deliver more complex data such as e-mail addresses or webpage URLs.


Solving for X

Despite the ubiquity and use of educational barcodes, potential problems remain. Some of the most common challenges for post-secondary schools include:

  • Physical DamageIf codes are damaged, scanners may be unable to read key data.
  • Printing ErrorsMisaligned or poorly-printed codes can frustrate school efforts to capture information.
  • Data IntegrationWithout the right software behind the scenes, critical barcode data may not make it into school databases.

Barcodes can help post-secondary education institutions stay ahead of the complexity curve by streamlining data capture, storage, and analysis. To deliver on critical code advantages, however, schools must match format to function and ensure leverage cutting-edge solutions capable of reading less-than-perfect codes. 

Ready to dig deeper into the barcode benefit? Check out volume one of our educational eGuide series, On the Straight and Narrow.

barcode xpress pricing

 

When you’re looking to integrate a toolkit into your application, your first priority is assessing the capabilities. Once you’ve found the right fit, you need to make sure that the pricing matches your budget and makes sense for your needs.

Historically, Accusoft has offered a variety of different licensing options for our clients. Products were always licensed by core or number of installs, depending on which runtime fits best. 

These practices have been great for our clients so far, but we realized a missing piece that could help bridge the gap for new clients with smaller projects that dynamically scale based on workload.


Introducing a New Way to License

Barcode Xpress is the first product on the Accusoft line to offer metered licensing based on transaction. Metered licensing helps a variety of different clients scale up or down, when they need to. While our traditional licensing plan is great for projects with defined scope, smaller projects that have potential to grow need more flexible pricing options.

“The main reason we wanted to introduce metered licensing is to address SDKs used in scalable environments,” says Mark Hansen, Product Manager of SDKs. “Clients can use metered licensing to spin up their projects based on the traffic they’re getting, without the need to obtain additional licenses. While many companies opt for an ongoing usage, this new model allows for estimating a specific amount of use, so they only pay for what they need.”


The Benefit of Metered Licensing

Why would a company choose to specify the usage from the start? Metered licensing is great for short-term projects with a limited lifespan, as clients only pay for what they use. It’s also great for clients who don’t know the scale of their project and need to be cautious with how much they spend. 

Metered licensing is based on a pay-per-transaction model. A transaction is defined by the page. For example, if Barcode Xpress reads 30 pages with five barcodes on each page, the transaction total is 30 instead of 150.

This transaction-based model makes for a very low cost of entry, and a no-stress agreement. With this value in mind, clients don’t have to worry about how much they will use the integration after a specific project is complete. In addition, if the project grows, metered licensing allows the client to scale up.


Reliability of Metered Licensing

Accusoft understands that our customers are building mission-critical apps with our SDKs and has carefully architected the system to be extremely reliable. Our server-side authorization and reporting system runs in Amazon AWS and is split into online and offline parts. 

The online portion is built on AWS CloudFront and S3, two of the most reliable systems available on the Internet. All of Accusoft’s backend code is in the offline portion of the system and an outage in that portion of the system will have no effect whatsoever on our customers, even if it were down for several days. Nevertheless, we have 24/7 alerting in place so we will be notified soon after an outage occurs and will quickly get it back up.

Metered licensing is now available for Barcode Xpress 13.1 and following versions.

barcodes healthcare

While the rapid uptake of electronic health records (EHRs), wearable devices, and collaborative technologies can help streamline treatment planning and delivery, the scope and scale of these same technologies creates a continually evolving, increasingly complex workspace.

According to recent Accenture data, more than half of U.S. healthcare patients now struggle to navigate the system, while the American Academy of Pediatrics (AAP) notes that expanding EHR use contributes to physician “burnout.” And while completely eliminating complexity isn’t possible due to the value of new technologies outweighing potential drawbacks, providers can improve operations. That starts with barcodes in healthcare.


Tracking Patient Treatment

To ensure patients receive the care they need while in hospital, identification is key. By incorporating patient data into barcode wristbands printed at the time of arrival and then scanned using hand-held devices or mobile phones, caregivers get consistent, real-time access to specific patient protocols, in turn allowing doctors and nurses to make informed decisions about ongoing treatment plans.

GS1, the organization responsible for developing and codifying new barcode standards, notes that “barcodes can be used to identify products and patients as part of every caregiving process. This ensures that the right care is being administered to the right patient.” This removes a critical layer of complexity. Instead of referring to physical checklists or finding a free computer to access EHR records, staff can simply scan for current patient status.


Tracing Pharmaceutical Uptake

In addition to tracking care status with patient barcodes, doctors’ offices and hospitals can also use barcodes to keep tabs on high-value, high-impact pharmaceuticals. As noted by Tech Radar, continuing reliance on handwritten documents “can lead to mistakes stemming from illegible handwriting and fading ink.” If medication dosages or types are incorrectly transcribed — or incorrectly interpreted — the results range from limited treatment efficacy to adverse patient reactions, requiring substantial staff and resource investments to correct.

By using inventory control and distribution systems such as Bar Coded Medication Administration (BCMA), hospitals can ensure the right medication gets to the right patient at the right time without the risk of human error. Scanning patient barcodes can trigger pharmaceutical refills and delivery directly to hospital rooms. Doctors and nurses scan their own ID badge as well as the patient’s and drug’s barcode when administering medication to update the system and prevent over or under-dosing.


Tallying Potential Payments

Barcodes in healthcare can also be used to tackle the challenge of document management. Consider the rapidly-growing healthcare insurance market. From government-regulated plans to private insurance policies and corporate-backed health packages, the sheer number of forms required to determine costs, assess coverage, and collect payment is substantial. Even minor errors by patients or providers can result in significant delays.

Almost half of employees across industries consider current document location and sharing processes “broken.” Barcoding in hospitals offers a solution. Scans help improve accuracy — cutting-edge solutions are accurate 99.9999 percent of the time — while providing a singular, digital collection mechanism for multiple treatment and insurance records attached to the same patient. The use of barcodes also helps eliminate duplicate form completion. By tying barcode scans to advanced document viewing applications, healthcare professionals can quickly see which forms are already on file.

 


Decoding Care Complexity

Barcodes offer significant advantages for healthcare providers by helping reduce complexity across patient treatments, pharmaceutical tracking, and document management. As noted by recent research, however, challenges remain. Inadequate scanning equipment and poor quality codes often frustrate these forward-thinking efforts. The solution? Provider prioritization. With the right third-party support across devices and software deployments, healthcare organizations can decode complexity and improve patient care.

Educational Barcodes

Barcodes offer big benefits for education. From verifying student identity to providing on-demand payment options, the simplicity of black-and-white barcodes offers the opportunity to manage increasing campus complexity at scale.

But cracking the educational code requires more than the physical distribution of barcodes across devices and IDs. Schools need the right technology to support effective barcode deployment. Here’s a look at four top functions that factor into front-line educational efficacy.


Keep It Simple, Keep It Safe

The biggest benefit of barcodes in education? Reduced complexity. Code-enabled ID cards allow students to quickly verify their identity, access educational resources, and pay for on-campus purchases. Barcodes also empower easy resource tracking — who borrowed school-owned books or laptops? When? Where? 

But simply deploying barcodes at scale won’t solve for complexity if campuses don’t have underlying software solutions to easily access barcode databases, track resources in real-time, and support additional barcode formats.

 


Reading Is Fundamental

Barcodes are only effective when they’re reliably read. But schools have no way to keep ID cards and resource codes in pristine condition. Students often carry cards in backpacks or wallets, while barcoded books and laptops may be tossed into lockers for storage or dropped as students hurry from class to class.

Here, it’s critical for schools to leverage barcode reading technologies capable of filling in the gaps if cards are cracked or codes are damaged. Scanning software must be able to extrapolate critical data even if bars are damaged or distorted, in turn offering students time to replace damaged cards and staff the space to recode and reissue resources.

 


Do More with Less

The most familiar type of barcodes — thick-and-thin black lines separated by white spaces — are often called one-dimensional or 1D. They’re ideal for encoding basic information such as student names or library book details, but are limited in scope as data becomes more complex.

As schools look to leverage student and resource metadata — from names and addresses to social security numbers for student IDs — 2D barcodes offer a way to encode more in-depth data sets with the addition of squares, hexagons, and dots to the standard stripe solution. Recognizing the value of these small-sized, but extremely specific code variations, demands software capable of reading 1D, 2D, postal, patch, and QR codes at speed.

Want to learn more about the techniques and technologies campuses need to crack the code? Check out our educational barcode eGuide: Reading Between the Lines.

 

Barcodes. You’ll find them everywhere – from airline tickets to grocery store shelves. Today, this simple arrangement of bars and symbols can be found on almost every product we purchase. 

But, how much do you know about this surprisingly sophisticated coding system? Exactly what information does the barcode contain? And how did the modern barcode tracking system come to be?

An Answer to a Supermarket Manager’s Prayers

According to Smithsonian Magazine, the journey to modern barcode technology began in the late 1940s at the request of an overwhelmed supermarket manager. He was desperately seeking a way to reduce the delays and the regular stock taking that were costing him profits.

The manager eventually brought his dilemma to the dean Drexel Institute of Technology in Philadelphia. There, the request caught the attention of Bernard “Bob” Silver, who contacted Drexel alum, Joe Woodland. Woodland, an inventor, was in Miami Beach when he first drew his barcode concept in the sand. The idea, Woodland said, originated from the Morse Code system of dots and dashes he had learned as a boy scout.

Together, Woodland and Silver filed a US patent on their bulls-eye shaped barcode in 1949. The patent was granted in 1952. Unfortunately, they were years ahead of the laser and microcomputer they would need to put their barcode technology to practical use. 

In 1973, the Uniform Grocery Product Code Council chose George Laurer’s vertical barcode design for the UPC code because it was easier to print than the circular shape developed by Woodland and Silver. Finally, with a scanner and computers in place, the first UPC code was scanned from a pack of Wrigley’s chewing gum at the Marsh Supermarket in Troy, Ohio on June 26, 1974. By the 1980s the UPC code had become a household name, thanks to its adoption by mass merchandisers like Kmart.

What’s in a Barcode, Anyway?

From its humble beginnings on supermarket shelves, the barcode has evolved to take many forms that store increasingly complex information. The familiar one-dimensional (1D) barcode, also referred to as a linear barcode, is the simplest type of code. It stores code horizontally and can be read quickly from left to right by a barcode scanner. 1D barcodes can contain anywhere from 8 to as many as 25 characters, not including special characters. 

The 1D barcode can store tracking information, product descriptions, item or customer identification, and more. 1D codes contain details about a product such as the size, type, and manufacturer. However, it doesn’t contain price information, which is often stored in a database.

Two-dimensional (2D) barcodes are more complex than their one-dimensional counterparts, and may contain up to 2,000 characters of encoded data.  One popular type of 2D matrix barcode is the Quick Response Code (QR code). The QR code was invented in Japan in 1994 to help the automotive industry track vehicles during the manufacturing process and ensure that data could be decoded very quickly.

Two-dimensional codes are useful for many tasks, including supply chain management, time tracking, mobile marketing, logistics, sales registry, inventory tracking, document management, and item identification. 2D barcodes encrypt data horizontally and vertically on a white background, using black squares organized in square grids. They can store characters, digits, special characters, and punctuation, such as colons. Phrases and words, such as web addresses, can also be stored in the codes. 

QR codes can be scanned from any direction and at any angle up to 3600. This reduces the risk of background interference, making the code easier to read. They are also very resilient, permitting a high degree of image corruption while retaining the integrity of the data. In fact, approximately 30% of a QR code can be damaged without the data being lost.

How Business Tracking Boosts Business

Today, nearly every industry uses barcodes, product identifiers, and location identifiers, like a Global Location Number (GLN), to increase productivity, efficiency, and customer satisfaction. Every day, barcode tracking is used to:

  • Scan and identify products in warehouses, online, and at point of sale. 
  • Ensure the safety of consumers and patients by tracking food, pharmaceuticals, and medical devices.
  • Capture location, nutrition, and allergen data to help restaurants, growers, and packaged goods businesses share more accurate information with consumers and trading partners. 

Barcodes have quickly evolved from a solution for supermarkets to streamlining processes across nearly every industry around the world. As noted by ProcessFlows UK, barcode technology provides an astonishing variety of benefits, beginning with:

  • Increased Efficiency: Users can save time by using barcodes to auto-populate indexing values, rather than manually entering the data. Barcode recognition also increases document-processing speeds and can be used to associate all related documents, expediting retrieval. 
  • Error Reduction: Certain barcodes contain checksums, which detect errors within the barcode, so that the data isn’t misinterpreted. 
  • Improved Accuracy: Data entered automatically using barcodes will have a more consistent format with fewer errors.
  • Increased Privacy: Barcodes are also a powerful way to increase privacy controls, since a barcode can represent many lines of personal data, including: names, addresses, health conditions, social security data, and more.

The success of barcode technology is evident in that it is used in nearly every industry around the world. In fact, the GS1 organization noted that, “The beep of a barcode is heard over 6 billion times per day.” The symbol is so commonplace that most of us take it for granted. Yet, without this deceptively sophisticated technology, many businesses would struggle to operate as efficiently as they do today.

 

using gradle for single click deployment

An initial query for readers out there. What is this text below? Did my cat walk across the keyboard as I was typing this blog article? Is this simply modem line noise?

Many, I’m sure, will recognize this text block as a regex, specifically a regex that validates whether or not a particular block of text is a valid email. For its part, it does a fantastic job, but clearly a non-trivial amount of work was put into the construction of this regex and many other regexes like it.


(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[x01-x08x0bx0cx0e-x1fx21x23-x5bx5d-x7f]|\[x01-x09x0bx0cx0e-x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[x01-x08x0bx0cx0e-x1fx21-x5ax53-x7f]|\[x01-x09x0bx0cx0e-x7f])+)])

(Source)

Whoever wrote it had a clear understanding of RFC-5322 and the intricacies therein. If I were to write my own email regex validator, it would likely be far too restrictive and there are a host of potential problems and pitfalls that I would probably fall into. There is a great deal of domain-specific knowledge that goes into developing these, and many developers can run afoul of problems introduced by the potentially high complexity involved.

Also, this regex is an example of a strict classifier. It represents a boolean way of separating whether or not a particular string of text is in one class or another, specifically the set of: {is_a_valid_email_address, is_not_a_valid_email_address}.

Strictly binary classifiers (a hard true or false) are very useful for validation tasks, but what I’m interested in investigating are the changes to “fuzzier” classifiers. Those classifiers that seek to ask, under ambiguous circumstances: “How likely is this text to be an email? How likely is this picture to be a dog? Where in this image a barcode?” In cases like this, strict classifiers are not the tool we want to work with.

The question I seek to answer is: How has the industry previously solved these questions, and how is this changing?

 

How the Industry Used to Do Things

Most of the products I work on have to do with, broadly speaking, image recognition and detection. Let’s begin there. I’ll start with an example that’s near and dear to my heart – barcodes.

highlighted QR code

I’m sure most people out there have seen these before. QR codes are a two-dimensional barcode that were invented in 1994 by Japanese auto manufacturers. They’ve since exploded in popularity and you’ll see them all over the place: soda cans, fliers, magazine articles, etc. You’ll scan them with your cell phone, and an app might take you to a website, or show some metadata for the QR code.

What our API needs to do is find instances of QR codes in an image whether it be a fax, scanned document, or photo, and it needs to do it quickly and accurately. Now, as a software developer, this has represented some particular challenges over the years. How might we identify areas of an image that contain QR codes?

The biggest and most obvious feature we can see are concentric rings of the three position patterns, so let’s focus on these and do some free thinking on how to find them. We might do some connected component analysis, or perhaps do some run-length calculations to see if we can find instances of the 1:1:3:1:1 ratios of the pattern.

We might also decided to run an edge-detection filter on the image to find the lines of the pattern. If we look at enough images of QR codes, we’d note that the ratio of white to black blocks tends toward 1:1, and we could use that as a heuristic to guide our generalized search of the image.

All of these methods have varying degrees of difficulty in implementation and high complexity. These approaches, and those that we have used in our software, have taken years to develop and are highly specialized. I, myself, have been working on them for over 10 years now. They’ve been written with an intimate understanding of the various specifications of the barcodes we read.

Now let’s throw another wrinkle in things. Let’s imagine you’ve implemented the algorithms above based on what the QR code specification says, and now you run it on data from actual customers.

blurry QR code example

When dealing with the real world, your expectations can be thrown awry. You’ll often go in expecting sane inputs, but what you can end up with are blurry perspective warped noisy messes. Now you have to bring even more advanced concepts to the party: things like despeckling algorithms, 2D homographies, etc.

This is how the software industry has largely done things in the past over many different contexts (eg. facial recognition technology). It sounds pretty grim, that to get that long tail of hard-to-read images, you need exceedingly intricate and complex domain-specific algorithms.

Thankfully, this has been changing lately. Now, companies have begun to leverage their large amounts of data, often supplied by customers or synthetically generated, to create general-purpose algorithms to solve their needs.

Discover how machine learning can help your business in the rest of my article here.

 

barcode on document

 

Many application development teams are switching to .NET Core libraries from .NET Framework for the many benefits they offer for building and maintaining applications and APIs. .NET Core was initially released in 2016, and since then Microsoft has demonstrated their commitment to the platform as the future of .NET by releasing several architecture improvements, broadening the scope of the .NET Standard shared set of libraries, and sharing ambitious plans for the future development of the platform.

At Accusoft, we recognize how our in-house developers have benefitted from .NET Core, and how our customers and partners will too. We just launched the next iteration of Barcode Xpress, now supports .NET Core. Our developers are already reaping some of the benefits of the development environment, and they can’t wait to apply lessons learned to other product development as well.

Let’s explore some of the advantages of .NET Core, which your developer colleagues would appreciate if they aren’t already working in the environment.

1. Core Is the Future of .NET

While Microsoft has promised to continue providing security patches for .NET Framework for the time being, they have also focused on .NET Core as the future of the .NET Platform. .NET Framework 4.8 will be the last major version of the Framework platform and all new APIs will be developed against and for .NET Core.

2. Run-Time and Performance Improvements

Whether your application users are internal employees or external partners and customers, runtime speed and performance concerns are always critical to adoption. Since Core is the future of the .NET platform, all future performance improvements will be implemented there and most will not be present in .NET Framework. .NET Core enables APIs and applications to serve up application interfaces and data faster, regardless of the mobile, IoT, or desktop device which is interacting with it.

3. Coding on Preferred Devices, Hosting on Preferred Platforms

IT departments are starting to recognize the benefits of allowing developers and other employees to use PCs, Macs, or Linux laptops or desktop devices. .NET Core empowers application developers and users to use their computer of choice for development so that they can work in whatever operating system environment they are most productive in.

.NET Core applications can then be deployed to hosting applications on Docker containers and a variety of web servers like Apache, IIS, and Nginx without limitations based on what development environment was used to create the product. This makes .NET Core a great fit for teams developing or refactoring apps with microservices.

4. Ease of Maintaining .NET Core APIs

API’s developed with .NET Standard, the common set of components and interfaces shared by .NET Standard and .NET Core,  easier to maintain and update than from .NET Framework since the standard abstracts away environment specifics with cross-platform functionality. They are ideal for device-agnostic cloud-based applications. APIs developed in this way require less actual coding to work on multiple platforms and support side-by-side versioning, which helps to identify dependencies and make application upgrades easier.

5. Improved Security for Web Applications

.NET Core offers several features to enhance security protection against SQL Injection attacks, Cross-Site Scripting, and Cross-Site Forgery Attacks. Since these attack vectors are common for open-source applications, enhanced security features are a welcome enhancement to organizations like healthcare and financial institutions and any business that is working with secure data and documents.

Microsoft recently confirmed that .NET Core is the future of .NET as far as investment and development focus is concerned. Businesses can continue to use .NET Framework for proprietary, completed APIs, though Version 4.8 will be the last release.

For new development initiatives, open-source, and platform-agnostic development projects though, .NET Core is the best way forward for Accusoft and other API development firms. Have you been working with .NET Core to build or maintain APIs? We look forward to learning about your experiences, and sharing ours as we build out our API portfolio on .NET libraries now that we have wins and lessons learned to build on with Barcode Xpress.

barcode education

It’s Julie’s first day on campus at the University of Prince Charles, commonly known as UPC. Julie will start her first class tomorrow morning, but in the meantime, she has so many things to do. She’s focused on finalizing her enrollment and picking up her student ID card, all while trying to juggle moving into her dorm, picking up her textbooks, and making sure she has her meal card so she can re-energize at the student commons.

Julie has been pretty stressed about getting through her first days at UPC because the welcome package she received in the mail was a single sheet of paper. She hands her barcoded welcome letter to the student administrator, who waves it under a laser light. The admin hands Julie her student badge quickly with the same ink pattern, and much of her anxiety falls away. The rest of Julie’s first day goes off without a hitch, though it would be nice if her classes didn’t start at 8:30 a.m.

Barcodes for the Higher Education Student Life Cycle

Many of us associate barcodes with products, like canned goods, books, and clothing. Barcodes were patented in 1951, but didn’t achieve wide popularity until about twenty years after when the Universal Product Code was invented in 1973. By 2004, 80 to 90 percent of Fortune 500 companies were using barcodes, and it has increased from there. The way we use barcodes has evolved over time as well. They not only facilitate the sale and tracking of products on the shelf, but are also used on:

  • Identification badges and ID cards
  • Mobile applications and mobile barcode scanning apps
  • Medical images and patient records
  • Legal and government records

All of these use cases are impressive on their own, but when integrated into student administration applications, physical security systems, college store POS systems, and on-campus meal plan software, barcodes can enhance student experiences.

The use of barcodes also gives colleges and universities a 360-degree view of students as they use campus facilities such as libraries, technology labs, fitness rooms, and other services. Barcodes are also a powerful way to increase privacy controls since a barcode can represent many lines of personal data including names, addresses, health conditions, social security data, and more.

As information capture and retention needs have increased, 1D barcodes have evolved into layered 2D barcodes. 2D barcodes are unique due to the following characteristics:

  • They have additional layers and markings to represent additional data.
  • They are an evolution from the traditional 1D barcode format.
  • Designed from patterns such as squares, hexagons and dots to encode information.
  • Contain more information than just numerical information.
  • Enriched data types they represent including names, addresses, phone numbers, images, and website URLs.

Barcodes for Physical Security Controls

Barcodes and barcode scanners on mobile phone apps can identify students to ensure the right person is taking an exam or participating in a class. From orientation to graduation, barcodes and QR codes are a great way to enable student access to the facilities which match the classes they are enrolled in and their course schedule.

Students who volunteer for programs like Safewalk can be given access to buildings after hours on an as-needed basis. Building permissions can be managed centrally, instead of requiring a student to report to a security office for a new card every time they need additional privileges.

If a student hasn’t returned a school asset like a video camera, computer, or other valuable school property, they can be denied checking out other assets until the original loaner gear is returned. Equipment is also generally barcoded, saving asset managers a lot of keying when checking equipment in and out.

Student Graduation

Julie has been at UPC for four years now, and she feels like the years have flown by. She has managed to hold on to her original ID badge, which is somewhat faded and worn but has made her life so much easier than she believed it could be.

She looks down at her badge and reminisces about the fun she’s had and the long nights of studying she’s endured. That photo, her first name, barcode, and the UPC logo are all that are on her badge which hangs around her neck on a lanyard. Julie hears her name announced as the valedictorian of her class. She tucks her badge into her gown and steps up to the podium to give her speech, and the next chapter begins.

If you are looking for a barcode solution to collect data and control security access, check out Barcode Xpress to learn more.


In government offices and data centers, document archives and data repositories are highly effective for organizing information which remains at rest. For those occasions when information workers simply need to read or review the contents of a file, repositories like SharePoint are ideal.  But reading or reviewing is not the whole range of government business processes.

Even repositories which are integrated with business applications which address business functions like human capital management, Freedom of Information (FoI) requests, or asset management are documents which rarely remain unmodified.

Yet when a public sector employee needs to modify, move, or manipulate a document to reflect an event which occurs in the real world, it requires a combination of workflow and analytics which exceed the capabilities of document filing and storage applications.

Document repositories provide limited value-add for government organizations which need to serve thousands of constituents, have annual budgets in the billions of dollars, and ongoing infrastructure projects which keep people and economies moving.

Custom development of these functions into your business applications demands significant time and technical resource investment. Pre-built supported APIs and SDKs reduce these overhead demands.

Here are five workflow functions which government organizations should add to the document management functionality of their business applications to get the best value from their historical and day-forward data.


 

1. Document Viewing, Annotation, and Redaction

Accusoft’s PrizmDoc Viewer enables users to view, annotate, and redact information without needing third-party applications like Word or Adobe Acrobat Reader. This enhances application security and facilitates project-related document collaborations.

Most businesses can draw a bright line between internal and external documents. Internal document permissions can usually be applied based on role and privileged access. As time passes, document viewers eliminate concerns over incompatible document versions.

Government organizations, however, have transparency requirements. Many documents need to be made public, but citizen privacy could be compromised in some cases, requiring sensitive info be redacted for those without proper clearances.


 

2. Document Lifecycle Management

Creating, editing, sharing, approving, and converting documents to searchable file types can take up a lot of time for government employees across departments including legal, operations, and public works. ImageGear simplifies these processes.

By standardizing these application-embedded document activities to a single interface, government organizations can accelerate workflow-related activities like eSignature approvals, annotations, and OCR of scanned files.


 

3. Enhanced Application-Based Document Routing and Approvals

Government organizations which use Citizen Management apps negotiate contracts with redlines and redactions, which is easier to do in one application. Documents won’t get lost in email chains, and alerts enable effortless digital signatures. Workflows are visually trackable, so if one approver isn’t available, a document can be rerouted. Workflows don’t get stuck in a big data bottleneck.


 

4. Barcoding for Images and Physical Records

In government facilities, physical records are often stored in folders or boxes before digital conversion, and damage to the record may come in the form of blurry text or ink blotches. There’s a better way to store the data. Barcodes can help businesses store and process this data in a better way, but building a custom barcode recognition for your business application is cumbersome and may cause frustration.

Accusoft’s Barcode Xpress SDK enables users to collect critical document information with ease. This barcode reader can detect even the most damaged or broken barcodes for a variety of industries and there’s even a mobile scanner available.

5. Government Forms Processing
Public sector organizations have vast amounts of forms to expedite the intake of data from their citizens. Court cases, license applications, and invoices are only a few examples of forms which have standardized fields which can aid in the conversion process. Accusoft’s FormSuite enables users to customize form field detection and process it into your application.

Are you looking for ways to increase the administrative productivity of your information workers? Want to increase the speed of document processing, discovery, and approval processes?

Accusoft offers a wide spectrum of document workflow solutions for government organizations which are proven, supported, and require minimal development effort to enhance your existing application ecosystem. Contact us to discuss your unique requirements today.

Software is everywhere. Recent research points to the development of “ubiquitous computing” solutions that underpin our interactions with familiar technologies and products. But there’s more to this IT evolution than meets the eye.

To meet growing consumer demand and corporate expectations of speed and security, enterprises are leveraging software development kits (SDKs) and application programming interfaces (APIs) — lightweight tools that can be easily integrated with existing applications and physical devices.

The result? A behind-the-curtain brand with powerful solutions. Did you know that you interact with Accusoft’s SDKs and APIs almost every day, but they’re hiding in plain sight?


 

Signed, Scanned, Delivered

Data is the foundation of reliable mail service. Accusoft’s Barcode Xpress Mobile (BXM) underpins critical technology used by the country’s largest mail carrier to ensure letters and packages are delivered to the right people on time, everytime.

By integrating BXM with mobile technology, employees can quickly scan postal barcodes to obtain delivery address, transit history, recipient names, and any special instructions for parcel drop-off or signature.

Accusoft’s SDK also empowers staff to deal with changing weather conditions like rain or snow, which may negatively affect packaging and transit labels. BXM has no trouble reading damaged, broken, or incorrect barcodes to ensure swift completion of appointed rounds.


 

Inside Job

Magnetic resonance imaging (MRI) machines provide critical data to healthcare providers about anatomical structures and physiological processes inside the human body without the need for invasive surgery. Now a fixture of both general and specialized hospitals across the United States, MRI machines depend on Accusoft’s PicTools Medical to create high-accuracy, high-quality images used to inform patient care.

Along with support for commercially-supported imaging software libraries, PicTools Medical natively delivers results that conform to digital imaging and communications in medicine (DICOM) image standards, making it easy for healthcare professionals to collaborate across departments, cities, or states and ensure patients receive the best care possible.


 

Green Machines

Used an ATM lately? Then you’ve probably watched ImagXpress at work. With over 80 functions for image processing and editing, ImagXpress provides ATM users with a fast, accurate view of the deposited check after the machine takes it.

Leveraging content processing technology, ImagXpress provides users with a better way to view their deposited check and keep an accurate depiction of their transaction for their records.

What does this mean for you, the consumer? ImagXpress streamlines the process that matters: documenting the check deposit with an image that shows the check you used in the transaction.


 

Behind the Scenes

Software streamlines our interaction with the world at large. But the cost and complexity of developing new software tools from the ground up for every new product and application can quickly sidetrack even the simplest of projects. The solution? Hide great code in plain sight with advanced SDKs and APIs.

Companies get the benefit of powerful tools and simplified functions fully integrated with existing applications and corporate security policies. Consumers reap the rewards of better end-user experience. Accurate, trackable mail delivery, life-saving medical images, and cold, hard cash on-demand. Ready to learn more about what Accusoft’s SDKs and APIs can do for you? Learn more about the products here.