XML 99 R24.htm IDEA: XBRL DOCUMENT v3.20.1
Note 1 - Significant Accounting Policies and Related Matters (Tables)
12 Months Ended
Dec. 31, 2019
Notes Tables  
Disaggregation of Revenue [Table Text Block]
   
Year ended December 31,
 
   
2019
   
2018
 
Americas
  $
69,359
    $
63,649
 
Europe, Middle East and Africa
  $
39,480
     
35,319
 
Asia/Pacific Rim
  $
8,393
     
6,600
 
Total
  $
117,232
    $
105,568
 
Schedule of Advertising Expenses [Table Text Block]
   
Year ended December 31,
 
   
2019
   
2018
   
2017
 
           
(in thousands)
         
                         
Advertising expense
  $
286
    $
299
    $
305
 
Financing Receivable, Allowance for Credit Loss [Table Text Block]
   
Balance at
   
Additions
   
Deductions
   
Balance at
 
   
Beginning
   
(recoveries) charged
   
from
   
End of
 
   
of Period
   
to Income
   
Reserves
   
Period
 
   
(in thousands)
 
Allowance for doubtful accounts and sales returns:
                               
Year ended December 31, 2019
  $
399
    $
388
    $
265
     
522
 
Year ended December 31, 2018
   
349
     
264
     
214
     
399
 
Year ended December 31, 2017
   
258
     
230
     
139
     
349
 
Schedule of Property, Plant and Equipment Estimated Useful Lives [Table Text Block]
Description
 
Useful Life
(Years)
Computers and equipment
 
 3
5
Machinery and equipment
 
 3
10
Leasehold improvements
 
The shorter of its useful life or lease term
Schedule of Earnings Per Share, Basic and Diluted [Table Text Block]
   
 Year ended December 31,
   
2019
   
2018
   
2017
 
   
(in thousands, except per share data)
 
Basic:
                       
Net income available for common stockholders
  $
17,934
    $
22,943
    $
17,177
 
                         
Weighted average shares outstanding
   
19,813
     
19,426
     
18,961
 
                         
Basic earnings per share
  $
0.91
    $
1.18
    $
0.91
 
                         
Diluted:
                       
Net income available for common stockholders
  $
17,934
    $
22,943
    $
17,177
 
                         
Weighted-average shares outstanding
   
19,813
     
19,426
     
18,961
 
Common stock equivalents, if dilutive
   
513
     
816
     
1,072
 
                         
                         
Shares used in computing diluted earnings per common share
   
20,326
     
20,242
     
20,033
 
                         
Diluted earnings per share
  $
0.88
    $
1.13
    $
0.86
 
                         
Shares excluded in computing diluted earnings per share as those shares would be anti-dilutive
   
468
     
230
     
6