We provide retail and stock control systems so accurate capture of barcodes and serial numbers at high speed is important to us. For what its worth, here's what we do, but our target market might be slightly different to yours.

Use a barcode scanner. There are bluetooth ones that interface easily to most mobile devices. Of course this costs the end user money so might not be an option.

Allow use of camera to capture barcode and/or OCR. Not that hard programming wise but is not actually that fast overall. Good for consumers but not a receiving dock. (Nb quality of cameras varies by device, so this does not work for all devices) Despite some drawbacks for high volume use, cameras do allow us to keep a photo as proof of entry forever, which is useful.

If keyboard entry is required, we present a text box input and display a series of tiles with valid options that can be pressed.  The list of tiles changes dynamically on every keystroke. We find the tiles are better than a classic drop list as (a) bigger and easier to press (b) let us display a bit more info such as description (c) have more options to colour code the background as a signal too.

Personally I would not just display a list of barcodes, try and display something else to help the user. As DaveAlger says in his answer barcodes and serial numbers aren't designed for humans. Display a product description, date it was first seen, anything.

For barcodes, the most useful parts are generally the first and last few characters. We allow users to enter any characters they can see in the barcode, skipping whatever they wish. They just cannot jumble the order.  If you are using sql, and my input is "9412" then the query is something like 

 Select ... From barcodes where barcode like '%9%4%1%2%'


Rather than the typically used

 Select ... From barcodes where barcode like '9412%'


Once users learn this, and it isn't obvious I admit, they really appreciate it.  Try reading 94100000000192 and entering it correctly. This technique means I can just enter 941192 and picklist will show it.

(Actually, we use both the above sql queries with the second sql doing the first half the results and the other doing all remaining gaps. This is to ensure the order looks right to users, but the second sql quickly resolves to no records as users enter more characters.)

We put a lot of effort into making the pick list tiles as relevant as possible, eg if you just used supplier #1, then barcodes from supplier number #1 have higher priority. Not sure this will be possible for you, but sometimes it is.  Imagine you are entering serial numbers of watches. After the user has entered "9412", you may know that the only brands possible (with 9412) are Seiko and Swatch, so two buttons appear on the pick list to select these as an additional filter if the user wishes. Lots of work to make this seemless, but for us 1/4 second and less friction from user entry is worth the effort.

What is the best way for a user to select an item by unique identifier?
In How to Use: XIII, in the second point it says


  The god of Death always remains with the owner of the Death Note.


indicating that a Shinigami will remain with the owner of their Death Note, Light learns this and gathers a group of friends to try and hide himself with Ryuk following him when Misa is trying to find him (she finds him because of her Eyes)

However, the Death Note Light had in the beginning isn't Ryuk's but Sidoh's which Ryuk stole, and unlike Gelus who died and Rem probably obtained ownership of Gelus's Death Note afterwards, Sidoh was still alive so even if Light became the owner after Ryuk dropped it in the human world, the Shinigami who was supposed to be with like was Sidoh.

Also in How to Use 2, the second point says


  The owner of the note can recognize the image and voice of the original owner, i.e. a god of death. 


So is there an explanation as to how Ryuk was tied with Light's Death Note having stolen it from Sidoh?
