Building a training set of tags for vimscript

Hello lovely maintainers :wave:
We've recently added "tags" to student's solutions. These express the constructs, paradigms and techniques that a solution uses. We are going to be using these tags for lots of things including filtering, pointing a student to alternative approaches, and much more.
In order to do this, we've built out a full AST-based tagger in C#, which has allowed us to do things like detect recursion or bit shifting. We've set things up so other tracks can do the same for their languages, but its a lot of work, and we've determined that actually it may be unnecessary. Instead we think that we can use machine learning to achieve tagging with good enough results. We've fine-tuned a model that can determine the correct tags for C# from the examples with a high success rate. It's also doing reasonably well in an untrained state for other languages. We think that with only a few examples per language, we can potentially get some quite good results, and that we can then refine things further as we go.
I released a new video on the Insiders page that talks through this in more detail.
We're going to be adding a fully-fledged UI in the coming weeks that allow maintainers and mentors to tag solutions and create training sets for the neural networks, but to start with, we're hoping you would be willing to manually tag 20 solutions for this track. In this post we'll add 20 comments, each with a student's solution, and the tags our model has generated. Your mission (should you choose to accept it) is to edit the tags on each issue, removing any incorrect ones, and add any that are missing. In order to build one model that performs well across languages, it's best if you stick as closely as possible to the C# tags as you can. Those are listed here. If you want to add extra tags, that's totally fine, but please don't arbitrarily reword existing tags, even if you don't like what Erik's chosen, as it'll just make it less likely that your language gets the correct tags assigned by the neural network.

To summarise - there are two paths forward for this issue:

You're up for helping: Add a comment saying you're up for helping. Update the tags some time in the next few days. Add a comment when you're done. We'll then add them to our training set and move forward.
You not up for helping: No problem! Just please add a comment letting us know :)

If you tell us you're not able/wanting to help or there's no comment added, we'll automatically crowd-source this in a week or so.
Finally, if you have questions or want to discuss things, it would be best done on the forum, so the knowledge can be shared across all maintainers in all tracks.
Thanks for your help! :blue_heart:

Note: Meta discussion on the forum

Exercise: leap
Code
"
" This function takes a year and returns 1 if it's a leap year
" and 0 otherwise.
"
function! IsLeap(year) abort
  if a:year % 400 == 0
    return 1
  elseif a:year % 100 == 0
    return 0
  elseif a:year % 4 == 0
    return 1
  endif
endfunction

Tags:
No tags generated

Exercise: hamming
Code
"
" This function takes two strings which represent strands and returns
" their Hamming distance.
"
" If the lengths of the strands don't match, throw this exception:
"
"     'The two strands must have the same length.'
"
function! Hamming(...)
  let [s1, s2] = map(copy(a:000), 'split(v:val,"\\zs")')
  if len(s1) != len(s2)
    throw 'The two strands must have the same length.'
  end
  return len(filter(range(len(s1)), 's1[v:val]!=s2[v:val]'))
endfunction

Tags:
construct:string
construct:assignment
construct:copy
construct:endfunction
construct:if
construct:indexing
construct:invocation
construct:let
construct:list
construct:map
construct:function
construct:parameter
construct:return
construct:string
construct:throw
construct:variable
construct:visibility-modifiers
paradigm:functional
paradigm:imperative
paradigm:reflective
technique:exceptions
technique:higher-order-functions

Exercise: rna-transcription
Code
"
" This function takes a DNA strand and returns its RNA complement.
"
"   G -> C
"   C -> G
"   T -> A
"   A -> U
"
" If the input is invalid, return an empty string.
 ToRna(strand) abort
    let a:complement = ''
    for s:item in split(a:strand, '\zs')
        if s:item !~? '[GCTA]'
            return ''
        endif
        let a:complement.=s:rna[s:item]
    endfor
    return a:complement
endfunction

" echom ToRna('CTA')

Tags:
construct:assignment
construct:dictionary
construct:for-loop
construct:function
construct:if
construct:index
construct:invocation
construct:let
construct:loop
construct:return
construct:string
construct:variable
paradigm:imperative
paradigm:reflective
technique:looping
uses:Dictionary

Exercise: anagram
Code
"
" Given a word and a list of possible anagrams, select the correct sublist.
"
" Hints:
"
"   - Same words don't match.
"   - Cases are treated insensitivley.
"   - The returned list is sorted.
 Anagram(word, candidates) abort
  let key = 'join(sort(split(tolower(v:val),"\\zs")),"")'
  let cand = sort(copy(a:candidates))
  let keys = map(copy(cand), key)
  let [tofind] = map([a:word], key)
  let ret = []
  for i in range(len(cand))
    if keys[i] == tofind && tolower(cand[i]) != tolower(a:word)
      cal add(ret, cand[i])
    end
  endfor
  return ret
endfunction

Tags:
construct:boolean
construct:assignment
construct:backslash
construct:boolean
construct:call
construct:copy
construct:double
construct:endif
construct:for-loop
construct:function
construct:if
construct:implicit-conversion
construct:indexing
construct:invocation
construct:lambda
construct:list
construct:logical-and
construct:map
construct:number
construct:parameter
construct:return
construct:string
construct:variable
construct:visibility-modifiers
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:boolean-logic
technique:higher-order-functions
technique:looping
uses:List

Exercise: difference-of-squares
Code
"
" Find the difference between the square of the sum and the sum of the squares
" of the first N natural numbers.
 Difference(number) abort
  return abs(SquareOfSum(a:number) - SumOfSquares(a:number))
endfunction

function! SquareOfSum(n) abort
  let ret = 0
  for i in range(a:n+1)
    let ret += i
  endfor
  return ret * ret
endfunction

function! SumOfSquares(n) abort
  let ret = 0
  for i in range(a:n+1)
    let ret += i * i
  endfor
  return ret
endfunction

Tags:
construct:add
construct:assignment
construct:comment
construct:for-loop
construct:function
construct:function-definition
construct:invocation
construct:let
construct:multiline-string
construct:number
construct:parameter
construct:return
construct:string
construct:subtract
construct:variable
construct:visibility-modifiers
paradigm:imperative
paradigm:functional
paradigm:object-oriented
technique:looping

Exercise: difference-of-squares
Code
" Workaround for the fact that `range()` throws an error if it gets a negative
" number. I think it should just return an empty range.
function! Range(n)
  return a:n < 0 ? [] : range(a:n)
endfunction

" I can't believe I have to use `eval` for this...
function! Sum(numbers)
  return len(a:numbers) == 0 ? 0 : eval(join(a:numbers, ' + '))
endfunction

" Workaround for the fact that `pow()` returns a Float, which makes the tests
" fail because they don't use numerical equality.
function! Squared(n)
  return float2nr(pow(a:n, 2))
endfunction

"
" Find the difference between the square of the sum and the sum of the squares
" of the first N natural numbers.
 Difference(number) abort
  return SquareOfSum(a:number) - SumOfSquares(a:number)
endfunction

function! SquareOfSum(number) abort
  return Squared(Sum(Range(a:number + 1)))
endfunction

function! SumOfSquares(number) abort
  return Sum(map(Range(a:number + 1), {i, n -> Squared(n)}))
endfunction

Tags:
construct:add
construct:boolean
construct:comment
construct:eval
construct:eval-in-vim
construct:expression
construct:float
construct:floating-point-number
construct:function
construct:function-overloading
construct:invocation
construct:lambda
construct:list
construct:map
construct:number
construct:parameter
construct:return
construct:subtract
construct:ternary
construct:using-a-float
construct:variable
construct:visibility-modifiers
paradigm:functional
paradigm:imperative
paradigm:reflective
technique:higher-order-functions

Exercise: difference-of-squares
Code
"
" Find the difference between the square of the sum and the sum of the squares
" of the first N natural numbers.
 Difference(number) abort
  let squareOfSum = SquareOfSum(a:number)
  let sumOfSquares = SumOfSquares(a:number)

  return squareOfSum - sumOfSquares
endfunction

function! SquareOfSum(number) abort
  let l:sum = s:sum(range(a:number + 1))

  return l:sum * l:sum
endfunction

function! SumOfSquares(number) abort
  return s:sum(map(range(a:number + 1), {i -> i * i}))
endfunction

function! s:sum(numbers) abort
  let l:sum = 0

  for n in a:numbers
    let l:sum += n
  endfor

  return l:sum
endfunction

Tags:
construct:add
construct:assignment
construct:comment
construct:dictionary
construct:for-loop
construct:function
construct:function-invocation
construct:invocation
construct:lambda
construct:let
construct:list
construct:local-variable
construct:map
construct:multiply
construct:number
construct:parameter
construct:return
construct:subtract
construct:variable
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:higher-order-functions
technique:looping

Exercise: raindrops
Code
"
" Convert a number to a string, the contents of which depend on the number's
" factors.
"
"   - If the number has 3 as a factor, output 'Pling'.
"   - If the number has 5 as a factor, output 'Plang'.
"   - If the number has 7 as a factor, output 'Plong'.
"   - If the number does not have 3, 5, or 7 as a factor, just pass
"     the number's digits straight through.
"
" Example:
"
"   :echo Raindrops(15)
"   PlingPlang
"
function! Raindrops(number) abort
  let output = ""

  if a:number % 3 == 0
    let output = output . 'Pling'
  endif

  if a:number % 5 == 0
    let output = output . 'Plang'
  endif

  if a:number % 7 == 0
    let output = output . 'Plong'
  endif

  if output == ''
    return str(a:number)
  endif

  return output
endfunction

Tags:
construct:string
construct:assignment
construct:comment
construct:endif
construct:function
construct:if
construct:implicit-conversion
construct:integral-number
construct:invocation
construct:let
construct:number
construct:parameter
construct:return
construct:string-concatenation
construct:variable
construct:visibility-modifiers
paradigm:functional
paradigm:imperative
paradigm:object-oriented

Exercise: atbash-cipher
Code
"
" Create an implementation of the atbash cipher, an ancient encryption system
" created in the Middle East.
 Cypher_mapping() abort

    "create cypher mapping
    let l:alphabet = split("abcdefghijklmnopqrstuvwxyz", '\zs')
    let l:rvrs_alphabet = reverse(copy(l:alphabet))
    let l:comb_alphabet = {}
    for l:ind in range(len(l:alphabet))
	let l:comb_alphabet[l:alphabet[l:ind]] = l:rvrs_alphabet[l:ind]
    endfor
    return l:comb_alphabet

endfunction

function! AtbashDecode(cipher) abort

    "define mapping
    let l:mapping = Cypher_mapping()

    "remove spacing between any grouping of letters
    let l:nsp_cipher = join(split(a:cipher), "")

    "loop through each letter and find the corresponding decoded mapping
    let dec_message = []
    for l:letter in split(l:nsp_cipher, '\zs')
	call add(dec_message, l:mapping[l:letter])
    endfor
    let l:dec_message = join(l:dec_message, "")
    return l:dec_message

endfunction

function! AtbashEncode(plaintext) abort

    "define mapping
    let l:mapping = Cypher_mapping()

    "remove spacing between any grouping of letters
    let l:nsp_text = join(split(a:plaintext), "")

    "loop through each letter and find the corrsponding cypher mapping
    let l:inter_message = []
    for l:letter in split(l:nsp_text, '\zs')
	call add(l:inter_message, l:mapping[l:letter])
    endfor
    let l:inter_message = join(l:inter_message, "")

    "split encoded message into groupings of 5 ciphered letters
    let l:enc_message = ""
    for l:letter in range(len(l:inter_message)/5 + 1)
	let l:start = l:letter*5
	let l:end = l:letter*5 + (5-1)
	let l:enc_message = l:enc_message.l:inter_message[l:start : l:end]." "
    endfor

    return l:enc_message

endfunction

Tags:
construct:add
construct:assignment
construct:call
construct:dictionary
construct:divide
construct:for-loop
construct:function
construct:implicit-conversion
construct:indexing
construct:invocation
construct:lambda
construct:let
construct:list
construct:loop
construct:multiply
construct:number
construct:parameter
construct:return
construct:string
construct:subtract
construct:variable
construct:visibility-modifiers
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:higher-order-functions
technique:looping

Exercise: atbash-cipher
Code
func! s:lc_chars(str) abort
    return filter(split(tolower(a:str), '\zs'),
            \    'trim(v:val) =~? "\\w"')
endfunc

func! s:chunks(lst, size) abort
    let sub_list = []
    let res = []
    let i = 0
    let j = 0
    while i < len(a:lst)
        for j in range(0, (a:size - 1))
            call add(sub_list, get(a:lst, i + j, ''))
        endfor
        call add(res, sub_list)
        let sub_list = []
        let i += a:size
    endwhile
    return res
endfunc

let s:alphabet = map(range(97, 122), 'nr2char(v:val)')

func! AtbashDecode(cipher) abort
  let i = 0
  let charmap = {}
  for ch in reverse(copy(s:alphabet))
      let charmap[ch] = s:alphabet[i]
      let i += 1
  endfor
  return trim(join(map(s:lc_chars(a:cipher),
          \           'get(charmap, v:val, v:val)'),
          \       ''))
endfunc

func!
 ToNANP(number) abort
    if a:number =~ '\a' || (a:number[0] != '+' && a:number =~ '\V+') || a:number =~ '[^0-9 ().\-+]'
        return ''
    endif
    let number = substitute(a:number, '\D', '', 'g')
    if strlen(number) == 10
        let ret = number
    elseif strlen(number) == 11
        if number[0] == '1'
            let ret = number[1:]
        else
            return ''
        endif
    else
        return ''
    endif
    if ret[0] !~ '[2-9]' || ret[3] !~ '[2-9]'
        return ''
    else
        return ret
    endif
endfunction

Tags:
construct:assignment
construct:boolean
construct:elseif
construct:endif
construct:function
construct:if
construct:indexing
construct:invocation
construct:logical-and
construct:logical-or
construct:number
construct:parameter
construct:return
construct:string
construct:substring
construct:variable
construct:visibility-modifiers
paradigm:imperative
paradigm:functional
paradigm:reflective
technique:boolean-logic
technique:regular-expression
uses:substrings
uses:vim

Exercise: phone-number
Code
function! ToNANP(number) abort
  let l:number = substitute(a:number, '\v[^0-9]', '', 'g')
  if match(l:number, '\v^1?[2-9][0-9]{2}[2-9][0-9]{6}$')
    let l:number = ''
  endif
  return strlen(l:number) ==# 11 ? l:number[1:] : l:number
endfunction

Tags:
construct:assignment
construct:conditional
construct:function
construct:function-definition
construct:if
construct:implicit-number-conversion
construct:index
construct:invocation
construct:let
construct:number
construct:parameter
construct:return
construct:string
construct:ternary
construct:variable-shadowing
construct:visibility-modifiers
paradigm:functional
paradigm:imperative
paradigm:metaprogramming
paradigm:object-oriented
technique:regular-expression
uses:Vim

Exercise: nucleotide-count
Code
"
" Given a DNA string, compute how many times each nucleotide occurs in the
" string.
"
" Examples:
"
"   :echo NucleotideCount('ACGTACGT')
"   {'A': 2, 'C': 2, 'T': 2, 'G': 2}
"
"   :echo NucleotideCount('ACGTXACGT')
"   E605: Exception not caught: invalid nucleotide in strand
"

function! NucleotideCount(strand) abort
    if a:strand =~ '[^ACGT]'
        throw 'invalid nucleotide in strand'
    endif
    let l:count = {'A': 0, 'C': 0, 'G': 0, 'T': 0}
    for i in range(strlen(a:strand))
        let l:count[a:strand[i]] += 1
    endfor
    return l:count
endfunction

Tags:
construct:assignment
construct:dictionary
construct:endif
construct:for-loop
construct:function
construct:if
construct:indexing
construct:invocation
construct:let
construct:loop
construct:number
construct:parameter
construct:return
construct:string
construct:throw
construct:variable
construct:visibility-modifiers
paradigm:imperative
paradigm:functional
paradigm:object-oriented
technique:exceptions
technique:looping
uses:Dictionary

Exercise: allergies
Code
let s:allergies = {
    \ 1: 'eggs', 2: 'peanuts', 4: 'shellfish',
    \ 8: 'strawberries', 16: 'tomatoes',
    \ 32: 'chocolate', 64: 'pollen', 128: 'cats' }

let s:log2 = { n -> log10(n) / log10(2) }

let s:next_power_of_2 =
    \ { n -> float2nr(pow(2, floor(s:log2(n)))) }

func! s:powers_of_2 (n) abort
    let pows = []
    let step = a:n
    while step > 0
        let next = s:next_power_of_2(step)
        call add(pows, next)
        let step -= next
    endwhile
    return pows
endfunc

func! AllergicTo(score, allergy) abort
    for p in s:powers_of_2(a:score)
        let found = get(s:allergies, p, v:null)
        if found == a:allergy
            return 1
        endif
    endfor
    return 0
endfunc

func!
"
"    Letter                           Value
"    A, E, I, O, U, L, N, R, S, T     1
"    D, G                             2
"    B, C, M, P                       3
"    F, H, V, W, Y                    4
"    K                                5
"    J, X                             8
"    Q, Z                             10

let s:LettersGroups = {
  \ "aeioulnrst": 1,
  \ "dg": 2,
  \ "bcmp": 3,
  \ "fhvwy": 4,
  \ "k": 5,
  \ "jx": 8,
  \ "qz": 10,
  \ }

function! s:Value(char) abort
  let reg = a:char
  for letters in keys(s:LettersGroups)
    if letters =~ reg
      return s:LettersGroups[letters]
    endif
  endfor
endfunction

function! Score(word) abort
  let count = 0
  let chars = split(tolower(a:word), '\zs')
  for char in chars
    let val = s:Value(char)
    let count += val
  endfor

  return count
endfunction

Tags:
construct:assignment
construct:char
construct:dictionary
construct:for-loop
construct:function
construct:if
construct:indexing
construct:invocation
construct:let
construct:method
construct:number
construct:parameter
construct:return
construct:string
construct:variable
construct:visibility-modifiers
paradigm:imperative
paradigm:functional
paradigm:object-oriented
technique:looping
uses:Dictionary

Exercise: scrabble-score
Code
let s:scoreletters = {
\       1: 'AEILNORSTU',
\       2: 'DG',
\       3: 'BCMP',
\       4: 'FHVWY',
\       5: 'K',
\       8: 'JX',
\       10: 'QZ',
\   }

let s:letterscores = map(range(26), 0)
for s:score in keys(s:scoreletters)
  for s:letter in split(s:scoreletters[s:score], '\zs')
    let s:letterscores[char2nr(s:letter) - s:a_char] = s:score
  endfor
endfor

function! Score(word) abort
    let l:a_char = char2nr('A')
    let l:total = 0
    for l:item in split(a:word->toupper(), '\zs')
      let l:total = l:total + s:letterscores[char2nr(l:item) - l:a_char]
    endfor

    return l:total

endfunction

Tags:
construct:add
construct:assignment
construct:char
construct:dictionary
construct:for-loop
construct:function
construct:implicit-conversion
construct:indexing
construct:invocation
construct:lambda
construct:let
construct:map
construct:number
construct:parameter
construct:return
construct:string
construct:subtract
construct:variable
construct:visibility-modifiers
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:higher-order-functions
technique:looping

Exercise: triangle
Code
function! Equilateral(triangle) abort
    return CheckInequality(a:triangle) && len(uniq(sort(a:triangle))) == 1
endfunction

function! Isosceles(triangle) abort
    return CheckInequality(a:triangle) && len(uniq(sort(a:triangle))) <= 2
endfunction

function! Scalene(triangle) abort
    return CheckInequality(a:triangle) && a:triangle[0] != a:triangle[1]
endfunction

function! CheckInequality(triangle) abort
    return count(a:triangle, 0) == 0
      \ && a:triangle[0] + a:triangle[1] >= a:triangle[2]
      \ && a:triangle[0] + a:triangle[2] >= a:triangle[1]
      \ && a:triangle[1] + a:triangle[2] >= a:triangle[0]
endfunction

Tags:
construct:add
construct:boolean
construct:function
construct:functional
construct:invocation
construct:logical-and
construct:number
construct:parameter
construct:return
construct:string
construct:variable
paradigm:functional
paradigm:imperative
paradigm:reflective
technique:boolean-logic

Exercise: etl
Code
func! Transform(scores) abort
    let new_map = {}
    for pt in keys(a:scores)
        for ch in a:scores[pt]
            let new_map[tolower(ch)] = str2nr(pt)
        endfor
    endfor
    return new_map
endfunc

Tags:
construct:assignment
construct:dictionary
construct:endfor
construct:for
construct:function
construct:function-definitions
construct:implicit-conversion
construct:indexing
construct:invocation
construct:let
construct:loop
construct:lowercase
construct:parameter
construct:return
construct:string
construct:throw
construct:variable
construct:visibility-modifiers
paradigm:imperative
paradigm:functional
paradigm:reflective
technique:exceptions
technique:looping

Exercise: pangram
Code
"
" Determine if a sentence is a pangram.
"
" A pangram is a sentence using every letter of the alphabet at least once.
"
" The alphabet used consists of ASCII letters a to z, inclusive, and is case
" insensitive. Input will not contain non-ASCII symbols.
 IsPangram(sentence) abort
   let map = {}
   for letter in tolower(a:sentence)
      if (letter <= 'z' && letter >= 'a')
         let map[letter] = get(map,letter,0)+1
      endif
   endfor
   return len(map) == 26
endfunction

Tags:
construct:add
construct:assignment
construct:boolean
construct:dictionary
construct:endif
construct:for-loop
construct:function
construct:if
construct:implicit-conversion
construct:indexing
construct:invocation
construct:let
construct:number
construct:parameter
construct:return
construct:string
construct:variable
construct:visibility-modifiers
paradigm:functional
paradigm:imperative
paradigm:object-oriented
technique:looping
uses:Dictionary

This is an automated comment
Hello :wave: Next week we're going to start using the tagging work people are doing on these. If you've already completed the work, thank you! If you've not, but intend to this week, that's great! If you're not going to get round to doing it, and you've not yet posted a comment letting us know, could you please do so, so that we can find other people to do it. Thanks!


plan dies with a nullpointer exception

After setting KAFKA_SASL_JAAS_USERNAME, KAFKA_SASL_JAAS_PASSWORD and KAFKA_BOOTSTRAP_SERVERS running kafka-gitops validate as well as kafka-gitops plan results in
java.lang.NullPointerException
	at com.devshawn.kafka.gitops.config.KafkaGitopsConfigLoader.handleAuthentication(KafkaGitopsConfigLoader.java:62)
	at com.devshawn.kafka.gitops.config.KafkaGitopsConfigLoader.setConfig(KafkaGitopsConfigLoader.java:41)
	at com.devshawn.kafka.gitops.config.KafkaGitopsConfigLoader.load(KafkaGitopsConfigLoader.java:18)
	at com.devshawn.kafka.gitops.StateManager.<init>(StateManager.java:63)
	at com.devshawn.kafka.gitops.cli.PlanCommand.call(PlanCommand.java:37)
	at com.devshawn.kafka.gitops.cli.PlanCommand.call(PlanCommand.java:19)
	at picocli.CommandLine.executeUserObject(CommandLine.java:1783)
	at picocli.CommandLine.access$900(CommandLine.java:145)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2141)
	at picocli.CommandLine$RunLast.handle(CommandLine.java:2108)
	at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:1975)
	at picocli.CommandLine.execute(CommandLine.java:1904)
	at com.devshawn.kafka.gitops.MainCommand.main(MainCommand.java:76)

I tried it with both 0.2.14 and 0.2.15.

Looking at the error - and checking the line in the code
if (config.get(SaslConfigs.SASL_MECHANISM).equals("PLAIN")) {
You're likely missing the setting KAFKA_SASL_MECHANISM

It happened with me as well. The issue for me was - one of the config values are empty or null.

If you're still interested, this issue should have been fixed in https://github.com/joschi/kafka-gitops/releases/tag/0.2.16.

Then we can actually close the issue. Thank you so much  :)

Then we can actually close the issue. Thank you so much :)

Please note that https://github.com/joschi/kafka-gitops is an unofficial fork of this project. 😄


Alive notifications aren't handled properly

The device list isn't updated when receiving an alive notification.
https://github.com/ivanempire/lighthouse/blob/main/lighthouse/src/main/java/com/ivanempire/lighthouse/core/LighthouseState.kt#L83

Fixed, closing


Fix selection of a node in Snapshot tree

https://bugzilla.redhat.com/show_bug.cgi?id=1398239
Before:
node is not selected at init
After:
node is selected at init

[x] selection of a node
[x] lazy loading will be solved for every tree by https://github.com/ManageIQ/manageiq/pull/12986

@miq-bot  add_label wip, ui, bug, euwe/yes

@miq-bot remove_label wip

@miq-bot add_label blocker

@ZitaNemeckova i still see same issue on snapshots tree screen, on initial load of screen, a non-active snapshot is selected and Create a new Snapshot button is enabled, see the attached screenshot. Second issue is still there where the node with Active snapshot is not getting expanded, clicking on the arrow doesn't load children under that node.
snapshots tree after the fix:

@h-kataria First issue solved. Second should be resolved by #12986. I checked and it works for me. Thanks for review :)

@ZitaNemeckova there's a relevant spec failure, please take a look.

I'm adding a wip label, until the CI failure is resolved.

@miq-bot remove_label wip

retested, verified fix.

Euwe BZ: https://bugzilla.redhat.com/show_bug.cgi?id=1402991

Euwe Backport details:
$ git log -1
commit 18fdbd6d3447d420e02d4da1d6f7c37f75242a43
Author: Dan Clarizio<EMAIL_ADDRESS>Date:   Thu Dec 8 11:35:38 2016 -0500

    Merge pull request #12980 from ZitaNemeckova/snapshot_fix

    Fix selection of a node in Snapshot tree
    (cherry picked from commit a49537249c11edeb3c9a606a36da6d96c72b65ba)

    https://bugzilla.redhat.com/show_bug.cgi?id=1402991


Drawing positions of marker-like tools are off

Drawing positions of marker-like tools are off when running canvas in modal

Closing this as, well, it is true, but NOTHING works in a modal so this should not be surprising


Siatest persistence cleanup

This PR cleans up the madness in the /tmp/SiaTesting folder for the siatest framework.
siatest- Tests will create the following folder structure in the /tmp/SiaTesting directory.
/tmp/SiaTesting/siatest/<packageName>/<testName>/<nodeName>
The  is the the folder name specified in the Dir field of the NodeParams struct.
If no Dir field is specified (e.g. when creating a whole group at once) the node name will be an encoded string of the enabled modules plus a random 4 byte, hex-encoded suffix. So for example a renter node could have the name gctwr-deadbeef.
One exception to this structure is the /tmp/SiaTesting/siatest/data folder. It contains all the randomly generated files of all siatest tests. The files follow the encoding <sizeInBytes>bytes-<4byte-hex-suffix>. e.g. 100bytes-deadbeef

Different data is generated for each test, right? Is there any reason you can't add a data subfolder to the tmp/SiaTesting/siatest/<packageName>/<testName> folder?

We can break some of this into another PR if you prefer, namely the NewFile stuff

@DavidVorick Yeah I think we should talk about how we would like to change the NewFile stuff and move that into another PR. It might touch more code than expected. Especially if we make it a method of the TestGroup.


Azure Kinect Viewer GUI Blank

Describe the bug
After installing the latest sdk via the MSI the viewer is entirely blank.
To Reproduce

On a mac book pro with bootcamp install the SDK 1.2.0
Launch the kinect viewer

Logs
I'm not able to get the logs from the pre-built viewer because the UI isn't functional.
Expected behavior
The azure kinect viewer should display its typical UI
Screenshots

Desktop (please complete the following information):

OS with Version: Windows 10 Version 1803
SDK Version:  1.2.0
Firmware version:

 == Azure Kinect DK Firmware Tool ==
Device Serial Number:<PHONE_NUMBER>12
Current Firmware Versions:
  RGB camera firmware:      1.6.98
  Depth camera firmware:    1.6.70
  Depth config file:        6109.7
  Audio firmware:           1.6.14
  Build Config:             Production
  Certificate Type:         Microsoft

Also, I found that .\k4arecorder.exe appears to work. I haven't checked the contents, but it generates a mkv of a few hundred MB without any errors. This makes me think the issue lies with rendering the UI.

@FreakTheMighty, Thank you for sharing with us, but at this point we do not support Macs. Please follow to Customer Voice to vote for the feature.

Hi @tesych, to be clear I am running Windows 10, the feature request you linked is for macOS support. I mentioned the the hardware is a macbook running bootcamp incase that is relevant. Still, I am running Windows 10 Version 1803.
My laptop meets the hardware requirements mentioned here: https://docs.microsoft.com/en-us/azure/Kinect-dk/system-requirements
I humbly request we re-open this issue :D

Hi @FrankTheMighty, I suspect you have a bug with one of the UI frameworks and its compatibility with your graphics driver.
Can you create a batch file launch K4aViewer.exe with ENV variable set? This will have th SDK collect its own log and hopefully give us a clue about what is happening.
set K4A_ENABLE_LOG_TO_A_FILE=k4a.log
set K4A_ENABLE_LOG_TO_STDOUT=0
set K4A_LOG_LEVEL=w

We can reopen this if you are still having the issue and can share the requested log


validation & examples

rules() contain:
'time_to' => 'required|date_format:H:i', and in example request show "time_from": "ex",
'notification_before' => 'integer|nullable|max:240', and in example request show "notification_before": 4782, (4782>240)

Fixed

'website_settings' => 'nullable|array' =>  "website_settings": "culpa"


trained weights available?

Hi!
I want to know if you can provide the trained module or weights. I'm a new beginner here, and it's too hard for me to train these models from the scratch due to personal computer's bad computing performance and small memory. Still, I wanna evaluate these models performance .Thus, I'll appreciate it if you can provide your best trained checkpoint file of that three different loss function.
Thanks, anyway.

Sorry but I don’t have trained models on hand. Will try to retrain some models when available. Nevertheless, this repo aims at reproducible research more than off-the-shelf industry solution to reid.


Fix init sequence (CMD0).

Avoid wait_not_busy() calls before SD card is reset, the first command
after an idle state needs to be CMD0 to reliably reset an SD card.

While this seems to fix it on one type of micro a different init problem appears on another. There must be some other issue in my init sequence.


fix loading of datasets in datasets.py fixes issue-80

fixes: https://github.com/rtavenar/tslearn/issues/80

Hi @MarcCoru ,
Could you check that? It seems that you changed that part because of a new format in UEA zip files.


Default fingerprint

I changed my fingerprint to Pixel 4XL but I want to go back to my default fingerprint. Can you please help me?

Run props and go back to the "Edit device fingerprint" menu. There's an option to reset the fingerprint there.


vget for fractional register doesn't exist

There seem to be no intrinsics vget that take a whole register and return a fractional register. Namely, intrinsics like vint8mf2 __riscv_vget_v_i8m1_i8mf2(vint8m1_t src, size_t index) don't exist. The same behavior can be achieved by trunc, and slidedown intrinsics, but it seems to be good to have them.
The intentions to have these intrinsics are

It is weird that the integer LMUL has vget intrinsics, and the fractional ones don't have.
The extra overhead caused by the slidedown here is strange.
It is not instinct, so the RVV beginners may take some time to find the combination to achieve the behavior

The 2nd reason should not exist now, since according to @topperc

A vget for fractional would have to do the same slidedown in order to the elements into the lower elements of a register to meet up with later intrinsics.

cc @nick-knight @cmuellner @eopXD

I stand by my comments in the other ticket
https://github.com/riscv-non-isa/riscv-c-api-doc/issues/54#issuecomment-1796978593
but let me address the intentions here directly.

It is weird that the integer LMUL has vget intrinsics, and the fractional ones don't have.

This is a subjective comment. It is not weird to me. There is a fundamental difference between the behavior of the current (integer LMUL) and proposed (fractional LMUL) intrinsics: the current ones do not require any instructions to be generated, while the proposed ones will require data movement instructions (e.g., vslidedown).

The extra overhead caused by the slidedown here is strange.

This is a subjective comment. It is not strange to me. This overhead is necessary due to the aforementioned fundamental difference.

It is not instinct, so the RVV beginners may take some time to find the combination to achieve the behavior

This is a subjective comment. As someone with some RVV experience, the current approach makes more intuitive sense. It would be counterintuitive for me if some vget intrinsics had no performance overhead, while others did.
I don't feel terribly strongly about any of this. But I don't think this is sufficiently important to address in v1.0 of the API.

I understand (from the other issue) that this is arising from your Neon-to-RVV translation project. Instead of proposing a solution (new API), perhaps it would be more productive to explain the particular translation challenge you are facing.

Also, note that for a NEON int8x16_t upper half to int8x8_t function you would not want __riscv_vget_v_i8m1_i8mf2 even if it existed - such an intrinsic would slide down by VLEN/16 elements, but you want to slide down by exactly 8 elements; so it'd work correctly if VLEN==128, and not work anywhere else.

I agree with your points, so I prefer to close this issue.
No big challenges I am facing right now. I understand that I can use the combination of vslidedown to achieve the behavior (at the beginning I wasn't able to achieve it, since I was familiar to RVV enough). The overhead was the only practical issue, but you have explained that it is unavoidable.
But I am curious where can I find this information. I am sorry that I didn't see it. I was trying to figure out understanding the difference between the usage and overhead of integer and fractional LMUL.

There is a fundamental difference between the behavior of the current (integer LMUL) and proposed (fractional LMUL) intrinsics: the current ones do not require any instructions to be generated, while the proposed ones will require data movement instructions (e.g., vslidedown).

Also, note that for a NEON int8x16_t upper half to int8x8_t function you would not want __riscv_vget_v_i8m1_i8mf2 even if it existed - such an intrinsic would slide down by VLEN/16 elements, but you want to slide down by exactly 8 elements here; so it'd work correctly if VLEN==128, and not work anywhere else. Rather, you should use e.g. __riscv_vslidedown_vx_i8m1(x, 8, 16).

Thank you for the suggestion!

The current vget intrinsics work by just extracting a register group part - e.g. for __riscv_vget_v_i8m2_i8m1 the input is two whole registers, and the result is just the second register - so the operation is entirely free.
Whereas, for a hypothetical __riscv_vget_v_i8m1_i8mf2, the input is already a single register, and the result is "half" a register. In reality, though, it's a full register (there are no fractional registers in RVV) but with the upper half ignored. Thus, a __riscv_vget_v_i8m1_i8mf2(x, 1) wouldn't have any whole register to return.

But I am curious where can I find this information. I am sorry that I didn't see it. I was trying to figure out understanding the difference between the usage and overhead of integer and fractional LMUL.

I agree it's not clear in the documentation of this repo, and I support your effort to keep digging into this until you understand it. In general, to obtain a deeper understanding of the rationale behind certain RVV intrinsics API decisions, you'll need to consult the ISA spec:
https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc , which will eventually be merged into the ISA manual (https://github.com/riscv/riscv-isa-manual/pull/1088)
The discussion most relevant to fractional LMUL appears in Sections 3.4.2 and 4.

The current vget intrinsics work by just extracting a register group part - e.g. for __riscv_vget_v_i8m2_i8m1 the input is two whole registers, and the result is just the second register - so the operation is entirely free.
Whereas, for a hypothetical __riscv_vget_v_i8m1_i8mf2, the input is already a single register, and the result is "half" a register. In reality, though, it's a full register (there are no fractional registers in RVV) but with the upper half ignored. Thus, a __riscv_vget_v_i8m1_i8mf2(x, 1) wouldn't have any whole register to return.

Thank you for explaining! this explain a lot

But I am curious where can I find this information. I am sorry that I didn't see it. I was trying to figure out understanding the difference between the usage and overhead of integer and fractional LMUL.

I agree it's not clear in the documentation of this repo, and I support your effort to keep digging into this until you understand it. In general, to obtain a deeper understanding of the rationale behind certain RVV intrinsics API decisions, you'll need to consult the ISA spec:
https://github.com/riscv/riscv-v-spec/blob/master/v-spec.adoc , which will eventually be merged into the ISA manual (riscv/riscv-isa-manual#1088)
The discussion most relevant to fractional LMUL appears in Sections 3.4.2 and 4.

Thanks! I have referred this doc in my current implementation.


frog-protocols: init at 0.01-unstable-2024-09-25

Description of changes
https://github.com/misyltoad/frog-protocols
I chose to package the latest commit, as it contained some minor fixes.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/2003


Error: An error occurred while creating reflections for the current project.

I'm getting this sort of error? There's no details so hard to know what is in question. I still need to narrow it down, but it seems to be related to some specific file.
Error: An error occurred while creating reflections for the current project.
Please report this error at https://github.com/sebastian-lenz/typedoc/issues
including the following details:

BEGIN OF ERROR DESCRIPTION

<<< END OF ERROR DESCRIPTION

I was able to narrow down, and it seems it's related to files / classes in my project which extends classes defined in phaser.d.ts (version 2.1.3).
https://github.com/photonstorm/phaser/blob/v2.1.3/build/phaser.d.ts

Hi, thank you for reporting this. I could trace this error to a stack overflow error due to an error while inherting classes. Next version includes a fix that should fix this.

The new version on npm should include the fix. Can you confirm it is working now?


Instruct typedoc which kind of symbols need distinct files

First of all, I want to be grateful for the amazing work and energy put in this project. It is really super helpful!
I am having a bit of a struggle with the tool: the distinction between how typedoc handles, on one hand, functions, type aliases and variables and on the other hand, classes, enums and interfaces seems arbitrary.
Looks like it creates individual files for the later group, and flushes anything else in a "globals" file. I have read the documentation, and haven't seen anything that could meet my needs.
Is there any way I can change this behavior, and have let's say all symbols in one unique page, or have functions and variables in separate files?

Version 0.19:
This is determined by the Theme class. The theme class has a getUrls function which returns a UrlMapping for each contained document that should be rendered. The DefaultTheme will create a new page for classes, interfaces, enums, namespaces, and modules. The MinimalTheme is simpler since it tries to put everything in one page.
To override this, you need to make a custom theme which contains theme.js in the root directory. This file needs to export a class that will be created by the renderer with module.exports = class ... or export default class ....
Version 1.0 (unreleased):
This is determined by the hasOwnDocument function in the theme's router. There is more info here.

@Gerrit0 I patched the DefaultTheme class to achieve what I wanted:
diff --git a/dist/lib/output/themes/DefaultTheme.js b/dist/lib/output/themes/DefaultTheme.js
index 46b5fae75b8945d6d1f1b42c8f7025b721e3b61e..80f90e0787aa8b49a0e8ec6a42009d83a3547330 100644
--- a/dist/lib/output/themes/DefaultTheme.js
+++ b/dist/lib/output/themes/DefaultTheme.js
@@ -227,6 +227,22 @@ DefaultTheme.MAPPINGS = [{
         isLeaf: false,
         directory: 'enums',
         template: 'reflection.hbs'
+    },{
+        kind: [index_1.ReflectionKind.Variable],
+        isLeaf: false,
+        directory: 'variables',
+        template: 'reflection.hbs'
+    },{
+        kind: [index_1.ReflectionKind.Function],
+        isLeaf: false,
+        directory: 'functions',
+        template: 'reflection.hbs'
+    }, {
+    },{
+        kind: [index_1.ReflectionKind.TypeAlias],
+        isLeaf: false,
+        directory: 'types',
+        template: 'reflection.hbs'
     }, {
         kind: [index_1.ReflectionKind.Namespace, index_1.ReflectionKind.Module],
         isLeaf: false,

I would love to extend the DefaultTheme class instead; but it looks like there is no way to redefine DefaultTheme.MAPPINGS in a clean fashion. Do you think it would be a good idea that this library provide a "ThemeBuilder" facility to handle such use-case easily? Or do you see a different yet easy pattern for implementing such extension?

@Gerrit0 A lot of these static methods (getUrls ...) could be refactored to an external class which can be injected by the "ThemeBuilder".

I absolutely think there is room for improvement in how TypeDoc handles themes. I particularly dislike how data about how to render reflections is stored on reflections themselves. The 1.0 rewrite was one attempt to fix that, though it still needs some modification (it doesn't really give a good way to render anything besides html). If you'd like to give making the 0.x theme architecture better, I'd welcome it!

@Gerrit0 I would be willing to work on such draft, unfortunately my bandwidth is limited as I am already investing a lot of efforts in my own open source projects. I'll eventually work on something if I find the time.


Navigating to a Module that is represented by d.ts file (with provided declaration map) works incorrectly on Windows

TypeScript Version:  3.0.0-dev.20180707
VS Code: Latest Insiders build.
The problem is still there.

Search Terms:
declarationMap, case sensitive, Windows
Problem
The project consists of multiple sub-projects, and we generate *.d.ts files (along with the declaration map files) for dependent sub-projects to consume.
The idea is that users can navigate to actual source files, not to the *.d.ts files. On Windows, and when the path to such files contains upper-case letters, this doesn't work as expected.
Expected behavior:
In VS Code, I CTRL-click on the module name and expect to get to the actual ts file, that belongs to the opened workspace.
Actual behavior:
The actual *.ts file is opened, but it is showed as a stand-alone file with full path name, and NOT as file that belongs to the workspace. Say, I navigate to the module named Modal. I end up with file X:\full\path\all\lowercase\project\modal.ts
In fact, if the actual Modal.ts file is already opened, the second tab is created, which is unexpected. The expectation is that I should just navigate to the workspaces' Modal.ts.
It looks like VS Code / Typescript service try to navigate to the file with some kind of normalization applied (entire path and the filename are all lower-cased), and VS Code can't handle that correctly.
Related Issues:
Microsoft/vscode#12448

I think VS Code should be handling this, not TS Server. We have to believe whatever the sourcemap tells us about where the target file is on disk.

Since I am not well familiar with the source bases, I can't say for sure who should be handling this, but assuming that Typescript / language service don't do any weird path case normalizations, then VS Code should probably be handling this case properly.

//cc @mjbvz


lua ,response body parsing issue for one upstream

I am parsing response body in lua script using following code which is working for all upstream but one have issue parsing the body looks gibberish . instead it should have string json data .
                     local body = response_handle:body()                        local jsonString = tostring(body:getBytes(0, body:length()))                       response_handle:logInfo(jsonString)

cc @wbpcode

Hi, @medhat-ramadan It seems that the upstream responses are some binary data. Would you like to ensure the upstream response body again? If it's possible, can you provide the content of response body?

Hi @wbpcode the body is json data
removing request header  accept-encoding solved the problem seems like decoding/compression problem
               request_headers_to_remove:                 - accept-encoding

Sound you are right. Based on the accept-encoding header, the upstream server responds with conpressed/encoded body to Envoy.


New User Flows: Get Started Signup Modal

Modifications for Sign Up modal:

Parent and Individual user types separated
I'm an Educator goes to the Oz vs CoCo modal. The old EducatorSignupOzariaEncouragement split into multiple files and moved into a new  screen for CreateAccountModal
I'm a Parent leads to /parent unless we're already there. In this case we lead to Create Individual Account
I'm a Student leads to Class Code Modal.

@adamkecskes can u add some gif/screenshots for me to test and understand the changes?

@mrfinch
Basically the only new thing is the Signup Modal which is now offering four options.
https://user-images.githubusercontent.com/11805970/144485141-92468018-7343-43f9-a052-c6e89d3bac79.mov
On small screens the images are removed and the boxes appearing vertically.

Revision Notes from Product Team:

Put the descriptive text under each button
Make sure the text is closer to the associated button than the one below it
Make sure spacing between each button is even distribution

@charlotteDrawsOnWalls
Modifications done. Pls check screenshot below:

looks much better! Thanks :)
On Mon, Jan 10, 2022 at 11:43 AM adamkecskes @.***>
wrote:

@charlotteDrawsOnWalls https://github.com/charlotteDrawsOnWalls
Modifications done. Pls check screenshot below:
[image:
CodeCombat_-_Coding_games_to_learn_Python_and_JavaScript___CodeCombat]
https://user-images.githubusercontent.com/11805970/148828444-d217139a-1f35-40f9-a50e-e95736ab56dd.png
—
Reply to this email directly, view it on GitHub
https://github.com/codecombat/codecombat/pull/6421#issuecomment-1009281774,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASADJB4MAPI7PNAWSSGLZMDUVMZHPANCNFSM5FPP5X2Q
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>


CAN Interface

Thank you for that grate project!
Everything went smooth!
Just one remark, i build it up like it is on the picture, but i had to change the CAN Interface in the yaml.
rx_pin: GPIO19
tx_pin: GPIO18
to
rx_pin: GPIO18
tx_pin: GPIO19
Just in case someone faces a simular issue.

Thanks for this!


update schema: changing new_name to be optional and making empty updates change nothing

PR Checklist

[x] A description of the changes is added to the description of this PR.
[x] If there is a related issue, make sure it is linked to this PR.
[x] If you've fixed a bug or added code that should be tested, add tests!
[x] If you've added or modified a feature, documentation in docs is updated

Description of changes

Making update schema work similarly to how update catalog was changed to work in PR #158
Fixes the schema part of issue #110
Two main changes:

Changed the parameter new_name to be optional in the server and CLI.
Changed both the CLI and SchemaRepository.updateSchema to not update anything if no parameters are provided to update.

CLI just prints a help message listing all optional parameters.
SchemaRepository.updateSchema just returns existing SchemaInfo.

@haogang could you merge this please

lgtm, please resolve conflicts

Done @haogang

Looks like the tutorial tests failing at the duckdb commands is unrelated to this PR as the test also failed after the latest commit.

The test failure could be related to this PR: https://github.com/unitycatalog/unitycatalog/pull/222 cc. @vksx
I'm going to merge this one. @vikrantpuppala can you please create a separate issue to fix the tutorial test?

@haogang this is fixed in #242


Improve workflow

Reorganized UI elements for clean look and better workflow,
Added enable/disable buttons in icon tab for set visibility for all components in one click.

Ah thank you for this! The height fix is a nice touch, and I should have added that myself to fix the height issue on the settings.
Merging pull request thank you for this small addition!


[GROUND-13] Truncation API

Add delete API to DB clients
Add truncate fun to DAG and Item factories
No truncate API exposed via REST yet
Passes initial tests

Codecov Report

Merging #65 into master will decrease coverage by 0.14%.
The diff coverage is 78.81%.

@@             Coverage Diff              @@
##             master      #65      +/-   ##
============================================
- Coverage     81.43%   81.29%   -0.15%
- Complexity      638      674      +36
============================================
  Files           114      114
  Lines          3297     3533     +236
  Branches        179      196      +17
============================================
+ Hits           2685     2872     +187
- Misses          515      557      +42
- Partials         97      104       +7

Impacted Files
Coverage Δ
Complexity Δ

...y/ground/dao/versions/VersionSuccessorFactory.java
100% <ø> (ø)
2 <0> (ø)
:arrow_down:

...berkeley/ground/dao/usage/LineageGraphFactory.java
100% <ø> (ø)
2 <0> (ø)
:arrow_down:

...u/berkeley/ground/dao/models/StructureFactory.java
100% <ø> (ø)
2 <0> (ø)
:arrow_down:

.../berkeley/ground/dao/usage/LineageEdgeFactory.java
100% <ø> (ø)
2 <0> (ø)
:arrow_down:

...va/edu/berkeley/ground/dao/models/EdgeFactory.java
100% <ø> (ø)
2 <0> (ø)
:arrow_down:

.../ground/dao/versions/VersionHistoryDagFactory.java
100% <ø> (ø)
3 <0> (ø)
:arrow_down:

...a/edu/berkeley/ground/dao/models/GraphFactory.java
100% <ø> (ø)
2 <0> (ø)
:arrow_down:

.../edu/berkeley/ground/dao/versions/ItemFactory.java
100% <ø> (ø)
2 <0> (ø)
:arrow_down:

...va/edu/berkeley/ground/dao/models/NodeFactory.java
100% <ø> (ø)
2 <0> (ø)
:arrow_down:

...round/dao/models/postgres/PostgresNodeFactory.java
88.09% <0%> (-4.41%)
6 <0> (ø)

... and 30 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 00388e2...2e5de84. Read the comment docs.


Warn about images which are unused

The idea here was that I’d have some sort of plugin which would check all my images were actually used, and warn me if I'd added any images which weren't referenced anywhere.
In practice, I don't think it's that useful – the cost of having an unreferenced image is slight, and images can be referenced from multiple places (an image, a link, a meta tag). I'm not convinced the extra build complexity is worth the marginal gains, so I'm going to close this as WONTFIX.


Define ordering when multiple outlines are present

Does this issue occur when all extensions are disabled?: No

VS Code Version: 1.71.2
OS Version: 12.6

Steps to Reproduce:

Add custom document symbols for a YAML document in addition to those provided by the RedHat YAML extension.

The bread crumbs for a document are not showing our custom document symbols but using those of another extension. Our outline also appears second in the outline view. In the screenshot below, we want the Solution tree to appear first. We are providing the custom document symbols via our language server extension and were directed here by that team (https://github.com/microsoft/vscode-languageserver-node/issues/1077).

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_smiling_face: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


ES6 Unicode Identifiers

The new Unicode "code point escape" form is also valid for identifiers, such as:
var \u{2B400} = 42;

As usual, @mathiasbynens has a bunch of great stuff about what makes a valid Unicode identifier in ES6 vs ES5, etc.

The hard part here appears to be that we don't yet know how to distinguish >0xFFFF code points as being identifier characters.

I believe the regex at the above link gives that answer definitively, right?

So that means there are no code points above 0xffff that can be part of an identifier? (This is entirely possible, I just don't know)

New blog post that documents the differences between ES5 and ES6 identifiers, with examples: https://mathiasbynens.be/notes/javascript-identifiers-es6 It answers your question, @marijnh.

Right, so that puts us in a bit of a bind -- including another giant regexp (even bigger than the old ones -- some 14k) in the library to handle obscure identifier names is not a very attractive idea. But not being able to properly identify ES6 identifiers is also a shame.
Attached patch solves the issue reported here. The ES6 identifier issue is now tracked in #215


Identifiers validation failed for dataset Flora acuática vascular del área focal Felipe Carrillo Puerto, Corredor Biológico Sian Ka'an-Calakmul, Quintana Roo, México

Identifier validation failed for the dataset Flora acuática vascular del área focal Felipe Carrillo Puerto, Corredor Biológico Sian Ka'an-Calakmul, Quintana Roo, México:

Crawler attempt: 266
Publishing organization: Comisión nacional para el conocimiento y uso de la biodiversidad
Publishing country: MEXICO
Installation: IPTCONABIO
Number of occurrences indexed for this dataset at the time of the issue: 715
Cause: GBIF IDs hit maximum allowed - 50%, duplicates - 100%, total records count 696, absent records count 694
Pipelines execution steps: http://api.gbif.org/v1/pipelines/history/execution/3073224/step

Publisher email
Hello,
I am contacting you from the GBIF Secretariat about a dataset published by the Flora acuática vascular del área focal Felipe Carrillo Puerto, Corredor Biológico Sian Ka'an-Calakmul, Quintana Roo, México : https://doi.org/10.15468/kryidi.
We noticed that the occurrenceIDs were changed. We have temporarily paused the ingestions of this dataset.
As you might already know, when an occurrence record has a new occurrenceID for a given dataset, our system considers it to be a new occurrence.
This means that it will be given a new gbifid and a new occurrence URL (like this one: https://www.gbif.org/occurrence/1252968762) and the old gbifid and URL will be deprecated.
In this case, this means that the occurrence URLs would be deprecated when ingesting the newest versions of these datasets.
We would like to check with you if those changes were intentional. Do you know if this is the case?
Please let us know, thanks! We are happy to resume the dataset ingestion.
Note that some users rely on those occurrence URLs and gbifids (like https://bionomia.net for example). In an attempt to improve
the stability of the occurrence URLs and gbifids, we have implemented a warning system to detect these type of changes in datasets (see this news item).
If the data publisher can provide us with a list of old and new occurrenceIDs per record, we can avoid the identifier and URL changes. Could that be an option?
Please let us know if you have any question. Thanks!
All the best,

You can skip/fix identifier validation using the registry UI.

Identifier validation still  failing for the dataset Flora acuática vascular del área focal Felipe Carrillo Puerto, Corredor Biológico Sian Ka'an-Calakmul, Quintana Roo, México:

Crawler attempt: 269
Publishing organization: Comisión nacional para el conocimiento y uso de la biodiversidad
Publishing country: MEXICO
Installation: IPTCONABIO
Number of occurrences indexed for this dataset at the time of the issue: 715
Cause: GBIF IDs hit maximum allowed - 50%, duplicates - 100%, total records count 696, absent records count 696
Pipelines execution steps: http://api.gbif.org/v1/pipelines/history/execution/3094084/step

Publisher email
Hello,
I am contacting you from the GBIF Secretariat about a dataset published by the Flora acuática vascular del área focal Felipe Carrillo Puerto, Corredor Biológico Sian Ka'an-Calakmul, Quintana Roo, México : https://doi.org/10.15468/kryidi.
We noticed that the occurrenceIDs were changed. We have temporarily paused the ingestions of this dataset.
As you might already know, when an occurrence record has a new occurrenceID for a given dataset, our system considers it to be a new occurrence.
This means that it will be given a new gbifid and a new occurrence URL (like this one: https://www.gbif.org/occurrence/1252968762) and the old gbifid and URL will be deprecated.
In this case, this means that the occurrence URLs would be deprecated when ingesting the newest versions of these datasets.
We would like to check with you if those changes were intentional. Do you know if this is the case?
Please let us know, thanks! We are happy to resume the dataset ingestion.
Note that some users rely on those occurrence URLs and gbifids (like https://bionomia.net for example). In an attempt to improve
the stability of the occurrence URLs and gbifids, we have implemented a warning system to detect these type of changes in datasets (see this news item).
If the data publisher can provide us with a list of old and new occurrenceIDs per record, we can avoid the identifier and URL changes. Could that be an option?
Please let us know if you have any question. Thanks!
All the best,

You can skip/fix identifier validation using the registry UI.


Problems with install

Hi. Thanks for taking the time to write the package but I'm having problems trying to run it.
I created a test route
TestController
        if ($request->isMethod('post')) {
            $recaptcha = new Recaptcha(env('NOCAPTCHA_SITEKEY'), env('NOCAPTCHA_SECRET'));

            try {
            } catch (UnverifiedRecaptchaException  $e) {
                dd('Failed: UnverifiedRecaptchaException ');
        }

        return view($this->route . '.recaptcha');

But when I hit submit the form, I get a
Invalid recaptcha response error [invalid-input-response]. error
I realize it's probablt something stupid on my part. The documentation gets a little vague with where to put the 'new Vinkla\Recaptcha\Recaptcha' stuff
Thanks in advance for any help

Thanks for using the package! Are you using this with Laravel?

Yes, Laravel v5.2.41

Could you also share where you're calling the validate() method?

Sure.
routes.php
Route::any('recaptcha', ['as' => 'recaptcha', 'uses' => 'TestController@recaptcha']);

TestController.php
    /**
     * @param \Illuminate\Http\Request $request
     * @return \Illuminate\View\View
     */
    public function recaptcha(Request $request)
    {
        if ($request->isMethod('post')) {
            $recaptcha = new Recaptcha(env('RECAPTCHA_SITE'), env('RECAPTCHA_SECRET'));

            try {
                $recaptcha->validate('g-recaptcha-response');
            } catch (UnverifiedRecaptchaException $e) {
                dd('Failed: UnverifiedRecaptchaException ');
            }
        }

        return view('test.recaptcha');
    }

Blade file includes
    <form action="{{ route('recaptcha') }}" method="POST">
        {{ csrf_field() }}

        <button class="btn btn-primary">submit</button>
    </form>

You can remove this line (this should be done within your config file):
$recaptcha = new Recaptcha(env('RECAPTCHA_SITE'), env('RECAPTCHA_SECRET'));

You can replace this:

With this:
{!! recaptcha()->field() !!}

You also need to add the response from the view here:
Before:
$recaptcha->validate('g-recaptcha-response');

After:
$recaptcha->validate($request->get('g-recaptcha-response'));

Thanks for taking the time.
When I update my controller, I can get a TRUE
            try {
                $recaptcha = app(Recaptcha::class);
                dd($recaptcha->validate($request->get('g-recaptcha-response')));
            }

Thanks for your help.

Anytime!


Unable to Initialize autocomplete textfield on init method()

I can initialize textfield controller in init function. but can't do with autocomplete textfield. it shows error while running code.
this line:
 searchTextField.textField.controller.text = widget.custno;
log:
[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The getter 'textField' was called on null. E/flutter (23780): Receiver: null E/flutter (23780): Tried calling: textField E/flutter (23780): #0      Object.noSuchMethod  (dart:core-patch/object_patch.dart:53:5) E/flutter (23780): #1      _EditBillPageState.setValues.<anonymous closure>  package:audit_shop/pages/bill_edit_page.dart:101 E/flutter (23780): #2      State.setState  package:flutter/…/widgets/framework.dart:1148 E/flutter (23780): #3      _EditBillPageState.setValues  package:audit_shop/pages/bill_edit_page.dart:95 E/flutter (23780): #4      _EditBillPageState.initState
how do I resolve this?

searchTextField is null, maybe try checking whether it's mounted?

@ericomine  how to check that?

Sorry, I miss interpreted the error message before. What seems to be null is actually the textField that's retrieved by the getter, which is initialized inside the AutoCompleteSearchTextField state constructor.
Maybe that constructor call hasn't finished yet when you're assigning this value? Can you check the textField for null before assigning and see if it'll at least build?
Can you provide more details/context?

I am facing the same problem, is this issue fixed ?

Sorry, I miss interpreted the error message before. What seems to be null is actually the textField that's retrieved by the getter, which is initialized inside the AutoCompleteTextField state constructor.
Maybe that constructor call hasn't finished yet when you're assigning this value? Can you check the textField for null before assigning and see if it'll at least build?
Can you provide more details/context?

So the following is on my initstate ( imagesToPost.mlMake.toString() is supposed to be 'Toyota' ) :
   try {
  print( "imagesToPost.mlMake.toString() IS ============== ${imagesToPost.mlMake.toString()}");
  searchTextFieldMake.textField.controller.text = imagesToPost.mlMake.toString()';
} catch (e) {
  print("CATCHED ERROR IS ============== $e");
}

And i get this in my following try and catch error:
NoSuchMethodError: The getter 'mlMake' was called on null.
So basically what i am doing is:
I get a String from my API response and save it in imagesToPost.mlMake.toString() on my first screen so that i can show it in the next screen on my AutoCompleteTextField .
If the AutoCompleteTextField is in the same screen where i am calling the API, and i assign the string direct from the API response to the AutoCompleteTextField, it works perfectly fine.
But if the AutoCompleteTextField is in the next page, i can not assign the value to that field if its in the second screen from the initstate.


missing description

after update to 0.8.1

I confirm this.

😰 I see what happend currently debugging why.

Problem is ... i seems that enties got mixed up :disappointed:

Uff ... bug found ... my Init in "zone" mixed up after shuffleling with attributes. In minutes fix will be available

First one Peter!


If i run the below command i am getting attached error.

If i run the below command i am getting attached  error.
conda install -c h2oai h2o4gpu-cuda10

OS platform, distribution and version ( Ubuntu 16.04.6 ):
Installed from (source or binary):
**Versionh2o4gpu:
Python version (3.7):
CUDA/cuDNN 10:
GPU model (k80):
CPU model:
**RAM available61:

Please refer to google on how to obtain the above on your platform.
h2o4gpu.txt
.

Please help me with this.

You have to use python 3.6
See https://github.com/h2oai/h2o4gpu/issues/808


Lay on Hands - Applying Effect when used on yourself

For some reason when you use Lay on Hands on yourself it is applying the effect when it shouldn't, it should only be applied when used on someone else.

Fixed


Apply flake8 policy for unused imports

Final refactor to unit test files to conform to unused module import policy. In the case when modules absolutely need to be imported but unused, the comment # noqa: F401 can be added at the end of that line to make it exempt from the policy. This is used in several places due to the need to import pytest in some cases for Iron Python.
The flake8 configuration is also updated to have this policy checked in the CI.
The style check CI for this PR will not pass until #448 is merged.

I think the CPython failure was due to instability, but I can't tell why IronPython failed...


create_stream() and start_stream() should return Result, not Option

This would allow some kind of diagnostic in the GUI when start_stream() fails.

Would also allow removing some .expect() cases in create_stream().

Hmm yeah I was just using Option in the interim because I don't have any diagnostics, but yeah I probably should add a label or something that will display error messages. Good idea!


Run the plugin as early as possible

This is required when other plugins (e.g. pytest-django) need to access environment variables set by this plugin.
Fixes #3.

I emailed Lucas Budman to try get some traction on this.


Portalfooter and EditDialog fix

Category

[x] Bug Fix
[ ] New Feature
Related issues: fixes at least #102

What's in this Pull Request?
With the newest realease, SPFx 1.7 and sp starter kit there have been some issues with the Portal footer.
There have been errors not being able to open the edit dialog more than once, and saving without any modifications broke the footer.
There was also some saving made when choosing to cancel, etc. So hopefully that's improved now aswell.
I've made some fixes and some IE11 support, actually it should work in all browsers.
The only additional thing for IE11 users could be to add some polyfills if needed.
I needed the PNPJs polyfills for the footer to work in IE11, but not sure everyone would need to.
I did not include the polyfills.
These are the fixes I've made:

Changed to UIEvents instead of Event. Should not break in IE11 anymore.
Added blocking to the dialog, because clicking outside caused errors.
Added code to unmount the dialog, so we are able to open it twice. This is a workaround to solve issues with SPFx 1.7 and basedialog.
Changed so cancelling doesn't save to UserProfile, and no success messagebar is displayed.
Changed so saving with no new values doesn't break, but doesn't save to userprofile either.
Changed so only actual changes (new, edit, delete) are saved to userprofile, and ONLY then the success messagebar is displayed.
Minor css change to display messagebar properly in IE11 aswell.

Let me know if we need changes :)
/Simon

thx @simonagren, appreciated.

@VesaJuvonen my pleasure buddy! :)


Incorrect generic type constraint for interface Record?

Hi,
When I open record.ts in Visual Studio Code with TypeScript 2.8.1, the following error is shown:

Current definition:
export interface Record<O extends { [_ in never]: Runtype }>
  extends Runtype<{ [K in keyof O]: Static<O[K]> }> {
  tag: 'record';
  fields: O;
}

Isn't the following more appropriate? If not, I would appreciate if you explain me why! I don't understand the current constraint for the generic type.
export interface Record<O extends { [_: string]: Runtype }> // [_: string] instead of [_ in never]
  extends Runtype<{ [K in keyof O]: Static<O[K]> }> {
  tag: 'record';
  fields: O;
}

Thank you in advance.

Fixed by #49.


Task Scheduling repeted

Hi, I found the following problem to schedule my tasks:
I followed the documentation and:
With sudo crontab -e i added
* * * * * php /MiRutaAlProyectoLaravel/artisan schedule:run > /dev/null 2>&1
my kernel.php
$schedule->call('App\Http\Controllers\IniciarController@EnviaMensaje')->everyMinute();
My IniciarController.php
`    public function EnviaMensaje(Request $request){
$destinos  = "";
$campania = \DB::table('campania')
->where('fecha_inicio', date("Y-m-d H:i:00"))
->whereNotNull('grupo_id')
->where('status', 2)->get();
$rows      = count($campania);
if($rows>0){
    $token = Token::where('id', $campania[0]->token_id)->first();

    if($scampaign[0]->grupo_id==0){
        $clientes  = \DB::table('clientes')->get();
    }
    else{
        $clientes  = \DB::table('clientes')->where('grupo', $campania[0]->grupo)->get();
    }
    foreach ($clientes as $key => $value) {
        $destinos .= $value->telefono.',';
    }
    $destinos = substr($destinos,0,-1);
    $client = new \GuzzleHttp\Client();
    $response = $client->request('GET', env('API_URL'), [
        'query' => [
            'token'         => $token->token,
            'destinations'  => $destinos,
            'message'       => $campania[0]->body
        ]
    ]);
    $id = $campania[0]->id;
    $campania               = Scampaign::find($id);
    $campania->status  = 4;
    $campania->save();
}

}`
But the function is executed 2 times, so I get 2 times a message in my phone. I want to know that I'm doing wrong or that I lack, I can not make it run only once per minute.
Please, I await your response, thanks.

I haven't found any problem with scheduler, have you checked using "crontab -l" that there is only 1 cron on this project?
For test you can use this code in the "handle" method:
file_put_contents(__DIR__.'/test.txt', date('Y-m-d H:i:s')."\n", FILE_APPEND);

So in app/Console/Commands/test.txt you can see when and how many times the scheduler execute your command.

Excuse me,
This is my kernel.php
`namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel {
protected $commands = [ ];

protected function schedule(Schedule $schedule)  {
    $schedule->call('App\Http\Controllers\IniciarController@EnviaMensaje')->everyMinute();
}

}`
the "file_put_contents..." within the function "schedule"? or in my IniciarController@EnviaMensaje?

I haven't see that you call a controller method, sorry. Use this code in IniciarController@EnviaMensaje:
file_put_contents(storage_path('app/test.txt'), date('Y-m-d H:i:s')."\n", FILE_APPEND);

Ok,
1.-
vagrant@homestead:~$ sudo crontab -l
Edit this file to introduce tasks to be run by cron.

Each task to run has to be defined through a single line
indicating with different fields when the task will be run
and what command to run for the task

To define the time you can provide concrete values for
minute (m), hour (h), day of month (dom), month (mon),
and day of week (dow) or use '*' in these fields (for 'any').#
Notice that tasks will be started based on the cron's system
daemon's notion of time and timezones.

Output of the crontab jobs (including errors) is sent through
email to the user the crontab file belongs to (unless redirected).

For example, you can run a backup of all your user accounts
at 5 a.m every week with:
0 5 * * 1 tar -zcf /var/backups/home.tgz /home/

For more information see the manual pages of crontab(5) and cron(8)

m h  dom mon dow   command

php /home/vagrant/Code/CBSYS-SMSGlobal/artisan schedule:run > /dev/null 2>&1
vagrant@homestead:~$

2.- I put the line on IniciarController@EnviarMensaje
file_put_contents(DIR.'/test.txt', date('Y-m-d H:i:s').'\n', FILE_APPEND);
3.- In the file test.txt I see the following things:
2016-05-19 17:23:04\n2016-05-19 17:23:06\n

Can you show me only the output of "crontab -l" ?

Seems ok, try to execute "ps -A" and make sure that "crond" isn't running twice

excuse me where execute "ps -A"?

In the terminal

vagrant@homestead:~$ ps -A
PID TTY          TIME CMD
1 ?        00:00:01 init
2 ?        00:00:00 kthreadd
3 ?        00:00:00 ksoftirqd/0
5 ?        00:00:00 kworker/0:0H
6 ?        00:00:00 kworker/u2:0
7 ?        00:00:01 rcu_sched
8 ?        00:00:00 rcu_bh
9 ?        00:00:00 rcuos/0
10 ?        00:00:00 rcuob/0
11 ?        00:00:00 migration/0
12 ?        00:00:00 watchdog/0
13 ?        00:00:00 khelper
14 ?        00:00:00 kdevtmpfs
15 ?        00:00:00 netns
16 ?        00:00:00 perf
17 ?        00:00:00 khungtaskd
18 ?        00:00:00 writeback
19 ?        00:00:00 ksmd
20 ?        00:00:00 khugepaged
21 ?        00:00:00 crypto
22 ?        00:00:00 kintegrityd
23 ?        00:00:00 bioset
24 ?        00:00:00 kblockd
25 ?        00:00:00 ata_sff
26 ?        00:00:00 md
27 ?        00:00:00 devfreq_wq
28 ?        00:00:00 kworker/u2:1
31 ?        00:00:00 kswapd0
32 ?        00:00:00 fsnotify_mark
33 ?        00:00:00 ecryptfs-kthrea
45 ?        00:00:00 kthrotld
46 ?        00:00:00 acpi_thermal_pm
47 ?        00:00:00 scsi_eh_0
48 ?        00:00:00 scsi_tmf_0
49 ?        00:00:00 scsi_eh_1
50 ?        00:00:00 scsi_tmf_1
55 ?        00:00:00 ipv6_addrconf
75 ?        00:00:00 deferwq
76 ?        00:00:00 charger_manager
117 ?        00:00:00 kpsmoused
119 ?        00:00:00 scsi_eh_2
120 ?        00:00:00 scsi_tmf_2
128 ?        00:00:00 kdmflush
129 ?        00:00:00 bioset
131 ?        00:00:00 kdmflush
134 ?        00:00:00 bioset
187 ?        00:00:00 jbd2/dm-0-8
188 ?        00:00:00 ext4-rsv-conver
296 ?        00:00:00 kworker/0:1H
334 ?        00:00:00 upstart-udev-br
343 ?        00:00:00 ext4-rsv-conver
347 ?        00:00:00 systemd-udevd
379 ?        00:00:00 iprt-VBoxWQueue
410 ?        00:00:00 rpciod
411 ?        00:00:00 nfsiod
415 ?        00:00:00 dbus-daemon
434 ?        00:00:00 rsyslogd
458 ?        00:00:00 systemd-logind
546 ?        00:00:00 rpc.idmapd
654 ?        00:00:00 rpcbind
661 ?        00:00:00 upstart-file-br
664 ?        00:00:00 upstart-socket-
667 ?        00:00:00 rpc.statd
709 ?        00:00:00 dhclient
914 tty4     00:00:00 getty
916 tty5     00:00:00 getty
920 tty2     00:00:00 getty
921 tty3     00:00:00 getty
923 tty6     00:00:00 getty
951 ?        00:00:05 redis-server
953 ?        00:00:00 cron
997 ?        00:00:00 kauditd
999 ?        00:00:00 mysqld_safe
1268 ?        00:00:03 mysqld
1289 ?        00:00:00 nginx
1291 ?        00:00:00 nginx
1519 ?        00:00:00 sshd
1537 ?        00:00:00 postgres
1562 ?        00:00:00 postgres
1563 ?        00:00:00 postgres
1564 ?        00:00:00 postgres
1565 ?        00:00:00 postgres
1566 ?        00:00:00 postgres
1629 ?        00:00:00 beanstalkd
1688 ?        00:00:00 hhvm
1695 ?        00:00:00 memcached
1713 ?        00:00:00 php-fpm7.0
1714 ?        00:00:05 php-fpm7.0
1715 ?        00:00:04 php-fpm7.0
1745 ?        00:00:00 supervisord
1797 ?        00:00:01 VBoxService
1825 tty1     00:00:00 getty
2064 ?        00:00:05 php-fpm7.0
2526 ?        00:00:01 kworker/0:0
3348 ?        00:00:00 sshd
3363 ?        00:00:00 kworker/0:2
3367 ?        00:00:00 sshd
3368 pts/0    00:00:00 bash
3657 pts/0    00:00:00 ps

I use date_default_timezone_set("America/Havana"); in my IniciarController.
I thought it might be the time zone in cron, so I added TZ=America/Havana
And I changed on my kernel.php
$schedule->call('App\Http\Controllers\IniciarController@EnviaMensaje')->everyMinute()->timezone('America/Havana');
But nothing, 2 message in my phone T.T

Ok seems there only one cron procede. Execute this commando to see which users have active crontabs, there should be only one result.
sudo ls /var/spool/cron/crontabs

vagrant@homestead:~$ sudo ls /var/spool/cron/crontabs
root  vagrant
vagrant@homestead:~$

This means you have 2 crontabs running, one for root user and one for vagrant.
Try to remove crontab from all the users and add the crontab again only for vagrant user (don't use sudo with crontab -e)

Perfect!
 Eres un Genio!! <3

Same problem schedule cron job,
my kernal.php
<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
use Log;

use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [
      //  \App\Console\Commands\SecondTable::class,
    ];

    /**
     * Define the application's command schedule.
     *
     * @param  \Illuminate\Console\Scheduling\Schedule  $schedule
     * @return void
     */
    protected function schedule(Schedule $schedule)
    {
        // $schedule->command('inspire')
                  //->hourly();
        $schedule->call('App\Http\Controllers\Sale\SaleController@sync')->everyMinute();
    }

    /**
     * Register the Closure based commands for the application.
     *
     * @return void
     */
    protected function commands()
    {
        require base_path('routes/console.php');
    }
}

manually run a command->  php artisan schedule:run
working good!
but, cronjob run server not working correctly,
my cron job code,
* * * * * php /laravel project folder/artisan schedule:run >> /dev/null 2>&1
not working, please help him.......

php /laravel project folder/artisan schedule:run >> /dev/null 2>&1
check for the path what you have given.

Hello @billmn I have also this type of issue.
when we send single message its work properly. When we go for send messages to multiple no (1000 sms) and users get at a time 7 to 8 sms to users. i don't know understand can you please help me.

They call me Spencer "2 cron jobs" Williams...


#2246 added Github actions example

Adds example code for GitHub Actions, identical to in this working example to the top of continuous integration.
Fixes: #2246

Live at https://molecule.readthedocs.io/en/latest/ci.html


Add initial SQL support for non-expression sketch postaggs

This PR adds support for using PostAggregators on Datasketches aggregators in SQL, by adding new SQL operators that accept quantile, HLL, and theta sketches.
To support this, the SQL system has been updated to allow operators to be converted into non-expression-based PostAggregators. This is accomplished by adding a new PostAggregatorVisitor class and adding new variants of the existing RexNode conversion methods that accept a post agg visitor.
This PR does not add support for all current sketch postaggregators (such as DoublesSketchToCDFPostAggregator) and the tuple sketch is currently not supported, I plan to  handle this in a follow on PR.
This PR has:

[x] been self-reviewed.
[x] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[x] added unit tests or modified existing tests to cover new code paths.

Marking WIP temporarily, need to update the docs

Updated docs, removing WIP tag

Added Design Review since this PR adds new SQL functions.

@jihoonson Addressed latest comments, also added a "round" parameter to the HLL sketch estimate postagg, and fixed the numStdDev param for HLL_SKETCH_ESTIMATE_WITH_ERROR_BOUNDS to actually be optional (it's optional in the docs and the underlying postagg).


Verify that "Tiur" is listed in the dropdown menu when searched

Description:
"Tiur" should appear in the dropdown menu with correct spelling and locality information.
Preconditions:
The website is up and running.

Step 1
Type "Tiur" in the search bar.
Expected results:
The dropdown is listing "Tiur" as the first location in the dropdown menu.

Step 2
Observe the dropdown menu.
Expected results:
"Tiur" is displayed and selectable from the dropdown menu.


Issues in 1.38 and 1.39

In the past I ran cupscale 1.37 but after updating to 1.38 or 1.39, the upscales look wrong.
I tried different models but same result.
I attached the original texture and upscales with 1.37, 1.38 and 1.39 so you can see the difference and test it yourself.
texture upscales.zip

Try a different alpha mode in the settings.

You're right in v1.37 I used mode 2 (separated alpha).
Using this setting in v1.39 fixed my issue.
Sorry and thanks for your fast reply :)


Can't build for RHEL 6

Build problem 18.05 with Qt 5.6.1
../../../Source/GUI/Qt/mainwindow.cpp: In constructor 'MainWindow::MainWindow(QStringList, int, QWidget*)':
../../../Source/GUI/Qt/mainwindow.cpp:200: error: no matching function for call to 'QAction::QAction(QString)'
/usr/include/qt5/QtWidgets/qaction.h:192: note: candidates are: QAction::QAction(const QAction&)
/usr/include/qt5/QtWidgets/qaction.h:174: note:                 QAction::QAction(QActionPrivate&, QObject*)
/usr/include/qt5/QtWidgets/qaction.h:89: note:                 QAction::QAction(const QIcon&, const QString&, QObject*)
/usr/include/qt5/QtWidgets/qaction.h:88: note:                 QAction::QAction(const QString&, QObject*)
/usr/include/qt5/QtWidgets/qaction.h:87: note:                 QAction::QAction(QObject*)
make: *** [_Automated/mainwindow.o] Error 1

https://kojipkgs.fedoraproject.org//work/tasks/604/26990604/build.log

Duplicate of #236 ?

No. Errors are different.
But if you think it can be solved by one method it will be good.

error: no matching function for call to 'QAction::QAction(QString)'
After https://github.com/MediaArea/MediaInfo/commit/a2d44a209c35e4e530d0526c13b2f7acfc64250 the call is to 'QAction::QAction(QString,  QActionGroup*)'

I am not applyed this patch because for Qt 5.10 it was not need.
With patch builded OK.


Response without NameID is valid behaviour

Should fix:
Oct  3 13:52:09 sv1810952 EBLOG[1527]: [2020-10-03 13:52:09] app.ERROR: Call to a member function getValue() on null {"session_id":"o6v872d3nh68rrlt1tn40jrv2g","request_id":"5f7865e9c3ebe"} {"exception":"[object] (Error(code: 0): Call to a member function getValue() on null at /apps/installation/OpenConext-engineblock/OpenConext-engineblock-6.3.5/library/EngineBlock/Corto/Filter/Abstract.php:75)"}
Although I haven't tested this yet..

I've just verified the suggested patch and it seems to do what it should..

Hi Tim, thanks for this PR and for already verifying that this should work! Would you be kind to target this PR on the master branch? We have not merged any post 6.3 work, so it's safe to keep working on master for these bugfixes


Error while running "npm run blockit"

Hi,
I encountered an error while running "npm run blockit".
TypeError: Cannot read properties of undefined (reading 'toLowerCase')
at F.hookSections (file:///home/marksea/equity/node_modules/blockit-builder/blockit.js:15:1500)
at ee (file:///home/marksea/equity/node_modules/blockit-builder/blockit.js:17:8023)
at se (file:///home/marksea/equity/node_modules/blockit-builder/blockit.js:17:8091)
at file:///home/marksea/equity/node_modules/blockit-builder/blockit.js:17:8096
at ModuleJob.run (node:internal/modules/esm/module_job:198:25)
at async Promise.all (index 0)
at async ESMLoader.import (node:internal/modules/esm/loader:409:24)
at async loadESM (node:internal/process/esm_loader:85:5)
at async handleMainPromise (node:internal/modules/run_main:61:12)
Node.js v17.9.1

Did you run command "npm install" before "npm run blockit"?
"npm install" is needed to install the dependencies required by blockit, if this is not done then an error will occur

Thank you for your reply.
Yes, I ran "npm install" before running blockit.

I know the reason.
process.env.npm_package_title is only supported by nodejs v18+.
So, replacing it with the package title will solve this issue.

TypeError: Cannot read properties of undefined (reading 'toLowerCase')
at w.hookSections (file:///Users/zhangqiang/Downloads/Telegram%20Desktop/equity%203/node_modules/blockit-builder/blockit.js:16:1144)
at se (file:///Users/zhangqiang/Downloads/Telegram%20Desktop/equity%203/node_modules/blockit-builder/blockit.js:20:517)
at te (file:///Users/zhangqiang/Downloads/Telegram%20Desktop/equity%203/node_modules/blockit-builder/blockit.js:20:586)
at file:///Users/zhangqiang/Downloads/Telegram%20Desktop/equity%203/node_modules/blockit-builder/blockit.js:20:591
at ModuleJob.run (node:internal/modules/esm/module_job:192:25)
at async DefaultModuleLoader.import (node:internal/modules/esm/loader:246:24)
at async loadESM (node:internal/process/esm_loader:40:7)
at async handleMainPromise (node:internal/modules/run_main:66:12)
Node.js v20.3.0
why i console.log(process.env.npm_package_title) is undefined

May i know what version of blockit-builder and what theme are you using?

{
  "name": "equity",
  "title": "Equity",
  "version": "1.1.5",
  "description": "Investment and Forex HTML Template",
  "private": true,
  "scripts": {
    "build": "node ./node_modules/blockit-builder/blockit.js --build",
    "blockit": "node ./node_modules/blockit-builder/blockit.js"
  },
  "author": "mudza09",
  "license": "MIT",
  "dependencies": {
    "@fortawesome/fontawesome-free": "6.4.0",
    "particles.js": "2.0.0",
    "share-buttons": "1.9.0",
    "uikit": "3.16.17"
  },
  "devDependencies": {
    "blockit-builder": "^3.2.2"
  }
}

I change process.env.npm_package_title to  process.env.npm_package_name  in /node_modules/blockit-builder/blockit.js:16:1144), and resolve it

okay thanks for the information from you, I will check it soon, and make improvements in the next update


Add glib::BoolError for use as return value of possibly failing functions returning booleans

https://github.com/gtk-rs/gir/issues/368
And example usage in utils::setenv(). Code generator changes come tomorrow when this is all ok.
How do you handle API changes?

@EPashkin Is this also what you meant? Could make the struct field public, and discuss names for the constructor, but apart from that there don't seem to be many other alternatives.
FromGlib can't be implemented properly here because we need the additional &str argument.

Yes I meant same, thanks
Also think that from_glib is not good.
Maybe rename it for 'checkortry` ?
We have time to think about naming and usage anyway,
I prefer apply https://github.com/gtk-rs/gir/pull/371 and it effects first and it can take days.

check and try seem equally confusing. IMHO it should be some from_XXX for consistency with other API, as we create something from the arguments.

from IMHO also confusing as it don't produce BoolError.
Maybe to_result ? But by convention it not static member :(

@GuillaumeGomez that you think about this change?
If you accept, I merge https://github.com/gtk-rs/gir/pull/373.
@sdroege When Gir's PR merged, please generate all *env that currently ignored

I have to admit that I don't see the point of having a BoolError type. It doesn't bring anything except for the function name. If you really want to not return a bool in case of failure, then let return Option<bool> or Result<bool, ()> directly.
If you think I missed something, I'm open to discussion so don't hesitate to bring the explanations. :p

@GuillaumeGomez Main reason possibility of use try, see https://github.com/gtk-rs/gir/issues/368

Then why create a whole new type? Just returning a Result<bool, ()> would be enough, no?

Just returning Result<(), ()> would work, yes. But it seems quite ugly, instead of some actual error type.
Also it's not just the try macro, but also the compiler warning about unchecked results.

Also with the function name in there you at least have some idea where it comes from when propagating the error further up and wrapping it in more meaningful error types

Main problem that () not implement Error

() don't implement Error

Ok, your arguments are valid so now I agree. Thanks a lot for this PR!
@EPashkin: I let you merge gir then I guess this code will need to be regenerated?

@GuillaumeGomez Yes

@sdroege When Gir's PR merged, please generate all *env that currently ignored

Please merge the first commit (adding the BoolError type) at the same time, otherwise GIR will generate code that can't compile. I removed the g_setenv() commit from this pull request for now.
I'll open a new pull request that updates g_setenv() and others after the other parts are merged.
For g_*env(), you'd like to have them autogenerated instead of manually implemented? I can do that, I was wondering anyway why you implemented them manually (especially because they don't work only on Unix-like OS, but work just fine on Windows too).

Just add commit here, with gir.toml, gir submodule and regen.
I get src/utils.rs:39: undefined reference to g_getenv'` when attempt of using it on Windows + MSYS2

I'll double check later, maybe it's a macro on Windows. I definitely used it on Windows from C code though and even the docs mention the Windows behaviour of it.

On windows it just named differently: g_getenv_utf8.
Code was in https://github.com/GNOME/glib/blob/master/glib/genviron.h but seems it removed  this spring https://github.com/GNOME/glib/commit/b67d071321264cc4a7bb9df47a4381918232279a
So currently it better stays unix only.

There many functions like that. We planed support naming difference sometime.
But if it replaced now situation worsened: we have old libraries that use "_utf8" suffix and new that don't :cry:

I'll investigate at home, going through code on the phone is not very pleasant
Glib changing API is a problem in any case, will talk to them. Thanks for pointing that out

@EPashkin You were misreading, it's all there still:
https://github.com/GNOME/glib/blob/master/glib/genviron.h#L36
https://github.com/GNOME/glib/blob/master/glib/genviron.c#L416
It's not just always going to the normal function and using UTF8 instead of the system's codepage. All good here

So what should happen about this? For GLib < 2.53 there is g_getenv() for Unix-like OS, g_getenv_utf8() for Windows (and g_getenv() on Windows that returns strings in the system codepage, which we don't want). For GLib >= 2.53, there's only g_getenv() in the headers and it always gives UTF8 (e.g. is equivalent to g_getenv_utf8() on Windows), and g_getenv_utf8() still exists on Windows (just not in the headers).
Maybe for the time being the following: Always expose a manually implemented g_getenv(), which on Windows calls g_getenv_utf8() (which is always available for the time being, maybe just not in the headers) and g_getenv() elsewhere. And in some far away future, we just call g_getenv() always once glib-rs depends on GLib >= 2.53

Thanks for pointing that we still can use _utf8 even in new version.

This is now on top of https://github.com/gtk-rs/glib/pull/171

Last commit IMHO unneeded as likely don't need regen

Yes, removed then :)

@GuillaumeGomez CI passed, please do final check this PR

All good for me. Thanks!


Asynchronous master-slave replication problem

The document says synchronize double write slave will not automatically switch to master.
Can slave asynchronously copy automatically become master after master down.
Whether the continued consumption will also continue to produce

in master-slave cluster model，master/slave will not automatically，you can refer https://github.com/apache/rocketmq/blob/master/docs/cn/operation.md
in Dledger cluster model，you can ref
https://github.com/apache/rocketmq/blob/master/docs/cn/dledger/deploy_guide.md

in master-slave cluster model，master/slave will not automatically，you can refer https://github.com/apache/rocketmq/blob/master/docs/cn/operation.md
in Dledger cluster model，you can ref
https://github.com/apache/rocketmq/blob/master/docs/cn/dledger/deploy_guide.md
https://github.com/apache/rocketmq/blob/master/docs/cn/operation.md
If this link is deployed asynchronously, can Slave continue to produce and consume when master goes down