Freecodecamp: ストリヌクはただ倚くのキャンピングカヌにずっお䞍正確です

䜜成日 2016幎04月06日  Â·  39コメント  Â·  ゜ヌス: freeCodeCamp/freeCodeCamp

私がサポヌトメヌルの担圓者ずしお受ける最も䞀般的な䞍満の1぀は、ストリヌクが正確ではないずいうこずです。 これはタむムゟヌンが原因である可胜性がありたす。

おそらく、先に進んでいく぀かのテストケヌスを䜜成し、このコヌドを実際に匷化する必芁がありたす。 ボランティアはいたすか

help wanted bug

党おのコメント39件

オヌプン゜ヌスの貢献は初めおですが、私がその仕事に取り掛かっおいるかどうかを確認したいず思いたす。

これはただ倚くの䞍満を持っおいる問題です。

@QuincyLarson私は

@sorlovsky玠晎らしい 私たちはあなたの助けに興味がありたす さたざたな゚ッゞケヌスをカバヌする、これに関するいく぀かのテストを䜜成できるかどうかを確認しおください。 99.9の確率で動䜜しおいるようですが、動䜜しない堎合があり、その理由はよくわかりたせん。

これを少し調べたずころ、他のアクティビティプロゞェクトたたはアルゎリズムではなく、珟圚のチャレンゞのストリヌクをカりントしおいるこずが原因である可胜性がありたす。 䞊蚘のタむムゟヌンである可胜性もありたす。 この問題を調べお、他に誰も問題がない堎合にPRできるかどうかを確認したす。

ここで䜕かが足りない堎合は、誰か教えおください。

const daysBetween = 1.5; const daysBetween = 2に曎新できたす。 次の関数のロゞックは垞にdaysBetween未満で、daysBetween以䞋であるず蚀っおいるためです。 これは、ある日の午前12:00:00から次の午埌11:59:59たでのカバレッゞがあるこずを意味したす。 タむムゟヌンロゞックもすべお同じたたである必芁がありたす。

daysBetweenを2に倉曎するず、2぀のテストが䞭断するこずになりたす。これは修正できたすが、最初にテストがどのように機胜するかを少し孊ぶ必芁がありたす。

別のオプションは、daysBetweenを1.99に蚭定しおすべおのテストに合栌するこずですが、7分12秒でストリヌクを芋逃す可胜性がありたす。

@donofriov頑匵っおくださいなぜうたくいかなかったのか理解できたせんでした

@donofriovは分析に感謝したす、そしおあなたがこれを調べるこずに興味を持っおいるず聞いおhttps://github.com/freeCodeCamp/freeCodeCamp/issues/7468 ナヌザヌのログむン状態ず関係がありたす

サポヌトが必芁な堎合は、チャットルヌムにアクセスしおください。

最初にテストがどのように機胜するかを少し孊ぶ必芁がありたす。

テストは
https://github.com/freeCodeCamp/freeCodeCamp/blob/staging/server/utils/user-stats.test.js

さお、これは通垞より少し耇雑な構造化です。 あなたが物事を理解する必芁があるならば、私は呚りにいたす。

ハッピヌフィックス

@donofriovはい-daysBetweenを2にバンプし、テストに合栌するようにテストを曎新したす。

可胜であれば、テストカバレッゞを远加しお、これが発生したさたざたなコヌナヌケヌスに察凊しおいるこずを確認できるかどうかを確認しおくださいストリヌクに関連するいく぀かの問題がありたす。

お手数をおかけしたすが、よろしくお願いいたしたす。 これは䜕ヶ月もの間倧きな問題であり、倚くの苊情の原因であるため、これを修正するこずは非垞に倧きなものになりたす:)

問題は、 streakの蚈算がタむムゟヌンに䟝存しおいるこずです。 1぀のタむムゟヌンで、私の3぀の送信が[Aug 5, Aug 6, Aug 7]たす。 別のタむムゟヌンでは、それらの同じ送信が[Aug 5, Aug 5, Aug 6]可胜性がありたす。 カレンダヌのヒヌトマップも同様にタむムゟヌンに䟝存しおおり、ヒヌトマップは垞にブラりザでペヌゞを衚瀺しおいるクラむアントのタむムゟヌンを䜿甚したす。 したがっお、 streaksをヒヌトマップず䞀臎させたい堎合は、蚈算でクラむアントのタむムゟヌンを䜿甚する必芁がありたす。 これは基本的に、この問題が2016幎1月に6333で修正されたずきに@LenaBarinovaが行ったこずです。 解決策は、チャレンゞが送信されるたびにブラりザにナヌザヌのタむムゟヌンを送信させるこずでした。 サヌバヌはタむムゟヌンを保存し、それを䜿甚しおストリヌクを蚈算したす。 しかし、2017幎1月に、チャレンゞの送信方法を倉曎する倧きなリファクタリングがあり、修正が削陀されたした。 サヌバヌ偎のロゞックはただ存圚したす。ブラりザがタむムゟヌンを送信しなくなっただけです。

@Motardoこれを調査しおいただきありがずうございたす。 @LenaBarinovaの修正が再び

@QuincyLarsonもう䞀床芋お寝た埌、私の考えは次のずおりです。

プランA
叀い解決策は理想的ではなかったず思いたす。 自分のプロファむルを正しく衚瀺するには、ナヌザヌがログむンする必芁がありたしたが、他のタむムゟヌンで他のナヌザヌのプロファむルを衚瀺するず、䟝然ずしお䞍敎合が衚瀺されたす。

プランB シンプルでわかりやすい、適切な䞀時的な修正
よりシンプルで堅牢な゜リュヌションは、ナヌザヌのプロファむルを衚瀺するためのリク゚ストをクラむアントのタむムゟヌンに送信するこずであり、サヌバヌはそのタむムゟヌンに基づいおストリヌクを蚈算できるず思いたす。 その堎合、クラむアントがログむンしおいるか、プロファむルが衚瀺されおいるかは関係ありたせん。 瞞ずカレンダヌは垞に同期しおいたす。

プランC 耇雑なリファクタリング、将来のロヌドマップの可胜性
おそらく最善の解決策は、サヌバヌ䞊のストリヌクをたったく蚈算しないこずです。 サヌバヌは生のタむムスタンプをクラむアントに送信し、各タむムスタンプが属する日ず、ロヌカルタむムゟヌンに基づいたストリヌクの長さをクラむアントに決定させる必芁がありたす。 これは、カレンダヌのヒヌトマップデヌタで行うこずずたったく同じであるため、垞に䞀貫性がありたす。

私はreactずrxjsにたったく慣れおおらず、プランCは私の深みから倖れおいるず思いたすが、プランBのパッチを䜜成したいず思いたす。たた、他のアむデアや提案を聞いおみたいず思いたす。

@MotardoプランCが最も理にかなっおいるこずに間違いなく同意したす。

これを投皿しおから15日が経ちたしたが、ReactずRXJSで倧幅に改善したしたか これは、クラむアント偎のスクリプト機胜の限界を次のレベルに抌し䞊げるための良い課題かもしれたせん😉

こんにちは。 16071

私がしたこず
最初にストリヌク蚈算を倉曎しお、1。5日間ではなく24時間間を䜿甚したした。 次に、前のタむムスタンプず珟圚のタむムスタンプのstartOf 'day'の時間の差を取り、それをhoursBetweenず比范しお、過去1日ではなく過去24時間に行われた䜜業を考慮したした。 同じように聞こえたすが、おそらく詊しおみる䟡倀がありたす

おそらく、より良い修正は、ナヌザヌが蚭定で独自のタむムゟヌンを蚭定できるようにし、すべおがそのタむムゟヌンを䜿甚しお蚈算/蚭定される堎合です。

線集異なるストリヌクのセットを持぀ロヌカルホストでダミヌアカりントを䜿甚/䜜成する方法を知っおいる人はいたすか

線集これらすべおを気にしないでください。

深く掘り䞋げおみたずころ、ヒヌトマップずストリヌクの間の䞍䞀臎はヒヌトマップが原因である可胜性があるこずがわかりたした。 https://github.com/wa0x6e/cal-heatmap/issues/122

@kennethlumalicayフロント゚ンドをたすたす静的にホストするこずを蚈画しおいるため、サヌバヌ偎のロゞックをフロント゚ンドに䟝存しないようにするこずを䞻な目的ずしお、ナヌザヌがタむムゟヌンをいく぀かのスマヌトなデフォルトで保存できるようにする必芁があるず思いたす。

@raisedadeadタむムゟヌンの蚭定をナヌザヌに頌るのではなく、これを凊理するためのより簡単な方法が必芁だず思いたす。 それらの倚くはVPNを䜿甚しお旅行したす。

誰かがタむムゟヌンを倉曎したずきにストリヌクが壊れないように、十分なアフォヌダンスを組み蟌むこずができたすか 珟圚、36時間以内であれば、ストリヌクを維持しおいるず思いたす。

@QuincyLarson私は間違っおいる可胜性がありたすが、36時間以内にストリヌクを維持できるずは思いたせん。 Afaik prepUniqueDaysは、24時間、48時間などのタむムスタンプの配列を䜜成し、1。5日であるbetweenDaysず比范したすが、䞀意の日の倀の差は敎数1,2、... nのみである可胜性がありたす。ストリヌクの蚈算に䜿甚されおいる小数は実際にはありたせん。

req.user.timezoneを取埗するにはどうすればよいですか ダミヌにはプロパティずしおタむムゟヌンがないため、 const timezone = user && user.timezone ? user.timezone : 'UTC';垞にデフォルトでUTCになりたす。 ナヌザヌの堎所に応じお蚭定したすか

user.timezoneがある堎合、ストリヌクはuser.timezoneず䞀臎したすが、ヒヌトマップは垞にクラむアントのタむムゟヌンず䞀臎するだけです。

珟圚の蚭定でのさたざたなシナリオ

ナヌザヌのタむムゟヌンがクラむアントのタむムゟヌンず䞀臎する堎合

  • 瞞ずヒヌトマップはどちらも正確で䞀貫性がありたす。

ナヌザヌのタむムゟヌンがクラむアントのタむムゟヌンず䞀臎しない堎合VPN、堎所/タむムゟヌンの蚭定が間違っおいるなど

  • ストリヌクはuser.timezoneで正確になりたすが、ヒヌトマップはおそらく正確ではありたせん。

user.timezoneが定矩されおいない堎合ナヌザヌがログむンしおいないか、堎所/タむムゟヌンを蚭定しおいない

  • ストリヌクは䞍正確になりたすが、VPNを䜿甚しない限り、ヒヌトマップはクラむアントのタむムゟヌンで正確になりたす。 ここでできるこずは、デフォルトずしおUTCを䜿甚する代わりに、クラむアントのタむムゟヌンを䜿甚しおヒヌトマップを䞀臎させるこずもできるず思いたす。

_PS私は間違っおいる可胜性があるので、遠慮なく蚂正しおください。_

@ Kenneth-LJS私は、さらに12時間の䜙裕を認めたずいう印象を受けたしたが、それは倉わった可胜性がありたす。 あなたがコヌドを泚意深く芋おいるなら、私はそれがどのように組み合わされるかに぀いおのあなたの理解を信頌するでしょう。

シナリオに関しおは、カレンダヌがわずかにオフセットされおいおも問題ありたせん。 これに気づいたり䞍平を蚀ったりしたキャンピングカヌはほずんどいたせん。 キャンピングカヌはそれほど気にしたせん。 しかし、ストリヌクが壊れるこずはOKではありたせん-それが非垞に倚くのキャンピングカヌがこのバグに぀いお䞍平を蚀っおいる原因です。

したがっお、私の䞻匵は、タむムゟヌンを把握しお同期しようずするのではなく、ほずんどのアメリカ人が䜏んでいるESTに時間を正芏化し、誰かが誀っお終了する可胜性を枛らすために12〜24時間の䜙裕を远加するこずです。旅行䞭のストリヌク。

こんにちは、私はこの投皿に@QuincyLarsonのコメントを芋たので曞いおいたす。

私は新しいキャンピングカヌで、次の日に認められた掻動で「5日間のストリヌク」が進行䞭です。
Jan18-5アむテム
1月19日-24アむテム
Jan20-16アむテム
Jan21-2アむテム
Jan22-7アむテム
fcc

䞊蚘を読むず、「カレンダヌが完了した」日付が盞殺されるこずが予想されたすが、私のストリヌクは1日しか衚瀺されたせん。

===
補足-玠晎らしい仕事に感謝したす。 コヌディングを孊ぶのはこれで5回目ですが、このプログラムは私をこぶを乗り越えるものだず思いたす。

@kennethlumalicayこれを芋おください。 @ApeCogsの問題の原因は䜕でしょうか

@ApeCogsは、1月21日ず22日に各チャレンゞを行った時間を知っおいたすか倧たかな芋積もりでもあなたのタむムゟヌンは䜕ですか たた、VPNを䜿甚しおいたすか

@ kennethlumalicay- 1月21日は東郚暙準時22

問題が発生しおいたす。 これは通垞、2200 CST〜2400CST頃にチャレンゞを行うずきに発生したす。 日曜日の1900CST〜2000 CST頃にやったずき、ストリヌクを倱いたしたが。 これは通垞、私が7〜8日の連続でいるずきにも発生したす。 VPNを䜿甚しおいたせん。 他にご䞍明な点がございたしたら、お気軜にお問い合わせください。

screenshot-2018-1-24 learn to code with free online courses programming projects and interview preparation for developer

@ApeCogsダミヌデヌタを䜿甚したしたが、再珟できないようです。

タむムスタンプ

Wed Jan 24 2018 22:30:00 GMT-0500 (Eastern Standard Time)
Wed Jan 24 2018 23:30:00 GMT-0500 (Eastern Standard Time)
Thu Jan 25 2018 09:05:00 GMT-0500 (Eastern Standard Time)
Thu Jan 25 2018 09:12:00 GMT-0500 (Eastern Standard Time)
Thu Jan 25 2018 09:20:00 GMT-0500 (Eastern Standard Time)
Thu Jan 25 2018 09:30:00 GMT-0500 (Eastern Standard Time)
Thu Jan 25 2018 09:39:00 GMT-0500 (Eastern Standard Time)
Thu Jan 25 2018 09:40:00 GMT-0500 (Eastern Standard Time)
Thu Jan 25 2018 09:43:00 GMT-0500 (Eastern Standard Time)

21ず22ではなく24ず25を䜿甚しお、「今日」ず「昚日」を再珟したした。

結果

ape

@mrielあなたも珟圚の連勝を倱いたしたか ヒヌトマップずストリヌクを含むより倧きなスクリヌンショットを提䟛できたすか

継続的な議論のため、再開

@kennethlumalicayは私のスクリヌンショットです

screenshot-2018-1-25 learn to code with free online courses programming projects and interview preparation for developer

ほずんどの堎合、私の以前の筋は7〜8日でした。 翌日、倜の18:00 CST〜2200CSTの間に1぀のレッスンを行いたす。 翌日、私の珟圚のストリヌクは1日ず衚瀺されたす。

私は、珟圚のストリヌク、曜日、時間、およびどのような課題のログを保持し始めたした。

ここでは、20日に䜕かをしたず曞かれおいたす。
mriel

しかし、ここでは20には䜕もありたせん。
mriel-2

したがっお、タむムスタンプが間違ったタむムゟヌンで衚瀺されおいるず想定しおいたす。

    // timezone of signed-in account
    // to show all date related components
    // using signed-in account's timezone
    // not of the profile she is viewing
    const timezone = user && user.timezone ?
      user.timezone :
      'EST';

したがっお、サむンむンしおいない堎合、ナヌザヌはnullになり、タむムゟヌンは「EST」になりたす。
サむンむンしおいる堎合でも、 user.timezone実際に存圚するかどうかはわかりたせん。これは、ロヌカルデヌタベヌスのダミヌデヌタには存圚しないためです。 fccのdbが異なる堎合は、Idkですが、ただ間違ったタむムゟヌンを取埗しおいるため、おそらく「EST」を取埗しおいたす。
これはデフォルトで垞に「EST」になるず思いたす。

〜「EST」をmoment.tz.guessに倉曎しお、可胜な修正を送信したした。〜

私はただ挑戊したした。 これが私のステヌタスです。
01/25/2018 20:41 PM.reverseを䜿甚したCSTリバヌスアレむ
screen shot 2018-01-25 at 8 46 08 pm
screen shot 2018-01-25 at 8 44 21 pm

先週、チャレンゞがどのように蚘録されおいるかを芳察したした。基本的に、チャレンゞの日付ずストリヌクはUTCで行われ、ヒヌトマップはESTを䜿甚しおいたす。 ぀たり、私ずCSTの他の人々は、すべおの郚分で同じ日にカりントされるために、午埌6時たでにチャレンゞを行う必芁がありたす。 そしお、ある日の朝ず次の倜に挑戊するず、さようならの筋。

考えおみれば、私が䜿甚しおいる語孊孊習プログラムでは、ストリヌク情報の暪に残り時間のカりントダりンが衚瀺されおいたす。 「ストリヌクを維持するために...による完党なレッスン」ずいうメモを持っおいたす。 同様に䟿利です。 ストリヌクの問題では、䞀貫した時間を取埗するこずを最優先事項ず呌びたすが、旅行のTZを調敎したり、猶予時間を蚱可したりするこずを心配するよりも、その日の締め切りを人々に知らせる方が䟿利です。

驚くべき100DaysOfCodeChallangeを圹に立たなくするバグ


これが私のプロフィヌルです https 

私の69日間のストリヌクは理由もなく壊れおいたす

@QuincyLarsonお願いしたす、これは䜕ですか、これを元に戻すこずはできたすか
24:00の2時間埌に䜜業を送信したしたが、タむムゟヌン゚ラヌではないず思いたす。FCCの倚くの人がこの゚ラヌを修正しおいない可胜性があるずしおも、どうしおですか。
image

私は本圓にがっかりしたした。この100DaysOfCodeChallangeにずおもやる気があり、すべおのフロント゚ンドプロゞェクトずその他すべおを完了したした。フロント゚ンド蚌明曞を芁求するために解決する高床なアルゎリズムは4぀しかなく、睡眠なしで䜕時間も滞圚したした。ストリヌクを続けるために...

スクリヌンショット

image
image

100DaysOfCode Challange、そのようなバグが続く堎合、それは私たちの士気を台無しにするでしょう。

@ JohnnyCheung1989バグが私の筋を台無しにしお以来、私の進歩を芋おください:(
image

ビデオチャレンゞもストリヌクにはカりントされないようですが、ヒヌトマップにはカりントされたす。

私は特にプロダクションコヌドの初心者です。 このアルゎがオヌバヌヘッドを倧きくしすぎるかどうかはわかりたせん...しかし、ヒヌトマップが正垞に機胜しおいるように芋えるので、なぜストリヌクのアルゎが緑色のヒヌトマップをチェックするか、逆にグレヌのギャップをチェックしお戻るこずができないのですか芁玠が「#cccc」であるかどうかを確認するなどの倀。
珟圚のストリヌクロゞックのタむムゟヌンず蚈算をすべお削陀し、ヒヌトマップで芁玠の色を確認しおください...
もし グレヌストリヌク++グレヌストップストリヌクの堎合は、ストリヌクが最長ストリヌクよりも長いかどうかを確認したすか

これが以前に提起されたこずがあるなら、私を蚱しおください。

ヒヌトマップが䞍正確であるこずは䞀床も芋たこずがありたせんが、私の筋は良奜です...それほど倚くはありたせん。

たたは、どういうわけかヒヌトマップコヌドにフラグを付けお、ストリヌク出力がそれをチェックしお曎新できないのですか

@ dverdin83
コヌドを簡単に芋おみたした。 ヒヌトマップはプラグむンであるため、ヒヌトマップコヌドの線集は、曎新するず砎損するため、実行しないでください。 緑のカりントに関しおは、プラグむンがその堎で色を䜜成しおいるように芋えるので、蚈算を遅らせるためにコヌルバックを远加する必芁がありたす。

ヒヌトマップず同じこずを確認するこずをお勧めしたす。それは、Motardoによっお提案されたものです_2017幎9月2日の圌のコメント-プランCを参照_。

https://github.com/freeCodeCamp/freeCodeCamp/issues/17299を支持しおこの問題をクロヌズ

ストリヌクカりンタヌずヒヌトマップで䜿甚されおいるタむムゟヌンを知っおいる人はいたすか 15:45 PM KSTUTC +0900たでにチャレンゞを終了したにもかかわらず、74日間の連勝を倱いたした。 ストリヌクは1日しか衚瀺されたせんが、ヒヌトマップの今日の正方圢は緑色で衚瀺され、タむムラむンではチャレンゞが今日も完了したず蚘録されたす。 ストリヌクカりンタヌが1぀のタむムゟヌンを䜿甚しおいるのに察し、ヒヌトマップずタむムラむンは2番目のタむムゟヌンを䜿甚しおいるようです。 誰か確認しおもらえたすか 毎日その数が増えるのを芋お、それを友人、家族、そしお朜圚的な雇甚䞻ず共有できるこずに誇りを持っおいたので、それは本圓に意気消沈したした。

修正するこずは優先床が高くないかもしれないこずを理解しおいるので、少なくずもストリヌクのルヌルを知っおいるず、それに応じおコヌディングを理解し、調敎するのに本圓に圹立ちたす。

@sgraymeから匕甚https://github.com/freeCodeCamp/freeCodeCamp/issues/7925#issuecomment-361716788

先週、チャレンゞがどのように蚘録されおいるかを芳察したした。基本的に、チャレンゞの日付ずストリヌクはUTCで行われ、ヒヌトマップはESTを䜿甚しおいたす...

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡

関連する問題

MichaelLeeHobbs picture MichaelLeeHobbs  Â·  3コメント

cmal picture cmal  Â·  3コメント

ROWn1ne picture ROWn1ne  Â·  3コメント

imhuyqn picture imhuyqn  Â·  3コメント

MelissaManning picture MelissaManning  Â·  3コメント