Note: you will need sudo access. Add the following to /etc/exports replacing the myunixuser with your own unix user account name
/Users -alldirs -maproot=myunixuser -network 192.168.99.0 -mask 255.255.255.0
Restart NFS:
| require 'csv' | |
| merged_file_path = '/Users/danlynn/Documents/temp/merge-csvs/ahoy_report-20200607-20200613-merge.csv' | |
| file_paths = [ | |
| '/Users/danlynn/Documents/temp/merge-csvs/ahoy_report-20200607-20200613-interim.csv', | |
| '/Users/danlynn/Documents/temp/merge-csvs/ahoy_report-20200607-20200613-legacy.csv', | |
| '/Users/danlynn/Documents/temp/merge-csvs/ahoy_report-20200607-20200613-new.csv' | |
| ] | |
| # Merge column titles from each file so that we can start |
| select properties->>"$.cow" from ahoy_events where properties->>"$.cow" is not null; | |
| -- Finds rows where cow attr is not missing - BUT not where cow attr is not null | |
| # null | |
| # 1 | |
| # 2 | |
| # 3 | |
| # null | |
| select properties->>"$.cow" from ahoy_events where properties->>"$.cow" != CAST('null' AS JSON); | |
| -- Finds rows where cow attr is not missing - BUT not where cow attr is not null |
| # statuses: | |
| # * Unclipped - Campaign has not been clipped yet | |
| # - only the full mass clip will update this status - not the test clips | |
| # - the show page hides the metrics and log | |
| # | |
| # * Clipping - Campaign is currently clipping the offers | |
| # - full mass clip AND test clips will set this status | |
| # - when full mass clip completes, status will update to Clipped | |
| # - when test clips complete, status will update to Test Clipped | |
| # - show the metrics and logs and run the ajax updates while in this state |
| create table test ( | |
| id int auto_increment primary key, | |
| email varchar(20) | |
| ); | |
| -- Query OK, 0 rows affected (0.02 sec) | |
| insert into test | |
| (id, email) | |
| values | |
| (1, 'aaa'), |
| function CalcCheckDigit(uncheckedUpc) { | |
| let checkDigit = 0; | |
| for (let i = 0; i < 11; i++) { | |
| checkDigit += parseInt(uncheckedUpc.charAt(i)) * (i % 2 === 0 ? 7 : 9); | |
| } | |
| return checkDigit % 10; | |
| } |
| function CalcCheckDigit(strMsg){ | |
| // calculate the check digit - note UPCE and UPCA check digits are the same | |
| var Check = 0; // initialize the check digit value | |
| for(var X = 1; X <= 11; X++){ | |
| var Test = strMsg.substr(X-1, 1); | |
| if (isOdd(X)==true){ | |
| Check = Check + parseInt(Test) * 7; // odd position digits multiplied by 7 | |
| } | |
| else{ | |
| Check = Check + parseInt(Test) * 9; // even position digits multiplied by 9 |
| # imagine this code ran in parallel by 2 threads in the same proc | |
| @@credit = params[:credit] | |
| thread.sleep(1) # lots of work going on here giving other thread chance to set balance from its request | |
| account.balance += @@credit # reading value that might have been set by either thread last | |
| account.save |
| $global_var = 'global' | |
| class Foo | |
| def self.class_var # note name start with 'self.' making this a class-level method | |
| @@class_var | |
| # would be error if tried to access @instance_var here since class knows nothing about any particular instance of class | |
| end | |
| def instance_var | |
| @instance_var | |
| end |
| require 'log4r' | |
| def logger | |
| @@logger ||= Logger.new("#{Rails.root}/log/some_profile.log") | |
| end | |
| def elapsed(start_time) | |
| elapsed_secs = Time.now - start_time | |
| "#{'%2d' % (elapsed_secs/60)}:#{'%02d' % (elapsed_secs%60)}:#{('%.4f' % (elapsed_secs - elapsed_secs.floor))[-4..-1]}" | |
| end |