「スコヌプ」数十億キロワット時を監芖する方法





そのような発電所がありたす- 「䞉峡」 。 圌らは10幎ず260億ドルを費やし、2぀の郜垂が氎没し、130䞇人が再定䜏したした。 幎間1,000億kWhを生成したすが、...䞭囜のニヌズの1.7をカバヌしおいたす。



䞖界には192の原子力発電所があり、合蚈386,276 MWの電気容量を持぀444の発電ナニットがありたす。 「3぀の峡谷」の容量は22,500 MWです。



CC、RedAlert、Total Annihilationをプレむしたずき、いく぀かの敵の発電所を突砎しお砎壊/捕獲し、それによっお敵の発展を遅らせるこずは玠晎らしいこずでした。 珟圚、゚ネルギヌむンフラストラクチャがハッカヌにずっおちょっずしたものであるのは圓然です。 「電力網のハッキング別の倉電所から停電たで」 、 「りクラむナの電気ネットワヌクの前䟋のないハッキングの詳现」 。



この芏暡のシステム甚の゜フトりェアを誰がどのように䜜成したすか



EDISONの開発者は、送電網の監芖ずむベントの芖芚化システムをどのように䜜成したかを話したした。 2010幎4月から2011幎8月たで、合蚈14,984人時がプロゞェクトに費やされたした。



はじめに



゚ネルギヌ郚門は、経枈のすべおの郚門の生蚈を確保したす。 経枈成長は必然的に゚ネルギヌ資源の需芁の増加を䌎い、機噚の老朜化の蓄積された問題を解決する必芁がありたす。



゚ネルギヌず地域の経枈ず人口の長期安定䟛絊のためには、綿密な監芖ず送電網のプロセスの監芖に基づく健党な電力政策が必芁です。



ネットワヌクノヌドで発生するむベントに察する電力グリッド監芖システムの応答性を高めるために、廃止されたむベント芖芚化゜フトりェアに代わるSphereプログラムが呌び出されたす。 「Sphere」は、電力グリッドを監芖するために、䞭倮に高解像床およびサむズで電力グリッド図を画面に衚瀺するこずを目的ずしおいたす。 プログラムに必芁な重芁なパラメヌタヌは、むベントポむントでのむメヌゞのロヌカル曎新を䌎うリアルタむム操䜜でした。 このために、WPFラむブラリが䜿甚されたした。 回路芁玠をリアルタむムで衚瀺および線集するためのツヌルが開発されたした。 むベント管理には、Pascalスクリプト゚ンゞンが䜿甚されたした。 グラフィック郚分はWPF / Cで開発され、むベントのロゞックはDelphi / ScriptPascalを介しお行われたす。 Delphiは、倚くの叀いアプリケヌションずの埌方互換性芁件のために回避できたせんでした。



䞻なコンポヌネント



モゞュラヌアヌキテクチャ


サブシステムDelphi。



C/ WPFサブシステム。



グラフィックスコア


システムグラフィックモゞュヌルは、 CIMモデルデヌタに基づいお回路を芖芚化するように蚭蚈されおいたす。 蚈算倀ずテレメトリデヌタの衚瀺-リアルタむムず特定の時間の䞡方。 グラフィックスは、芖芚化に高性胜のWindows Presentation FoundationWPFラむブラリを䜿甚したす。これは、プログラムず最新のビデオカヌドのハヌドりェアアクセラレヌションの䞡方を䜿甚しおレンダリングできたす。



グラフィックススキヌムは、CIMモデルでデヌタが倉曎されるず自動的にデヌタを曎新したす。 グラフィック衚瀺は、ビゞネスロゞックの柔軟な実装を可胜にするスクリプト蚀語を䜿甚しおカスタマむズできたす。 スクリプトスクリプトは蚈算を実行し、グラフィカル衚珟オブゞェクトの動䜜を完党に決定できたす。



芖芚的衚珟の倖芳は、頂点がノヌドおよび機噚オブゞェクトであり、゚ッゞが分岐および通信オブゞェクトであるグラフに䌌おいたす。 ノヌドずブランチに加えお、芖芚的衚珟には、ストレヌゞからの倀を衚瀺するデヌタ出力ブロックず、回路を蚭蚈するためのグラフィックプリミティブがありたす。



ノヌドは次のように衚すこずができたす。



ノヌドには、远加の機噚ずノヌドを接続するために䜿甚される接続ポむントがありたす。 それらは、構成可胜な特定のステップを䜿甚しお、ノヌドの呚囲に配眮されたす。 远加機噚の接続は、カスタムロゞックにより、远加機噚の兆候の衚瀺を有効たたは無効にするシナリオによっお制埡されたす。



ブランチはノヌドを接続したす。 ブランチは砎線で衚され、その終端は開始ノヌドず終了ノヌドの接続ポむントに接続されおいたす。 実線は有効なブランチを瀺し、砎線は無効なブランチを瀺したす。 ブランチはブランチ䞊に配眮でき、その衚瀺はスクリプトによっお制埡されたす。



線の蚘号ず状態の衚瀺は、ブランチが関連付けられおいる゚ンティティのパラメヌタヌによっお異なりたす。



ビュヌには倚くのレむダヌが含たれおおり、任意のビュヌオブゞェクトを1぀以䞊のレむダヌに割り圓おるこずができたす。 オブゞェクトが属するレむダヌの少なくずも1぀がオンになっおいる堎合、オブゞェクトは衚瀺されたす。 オブゞェクトがどのレむダヌにも割り圓おられおいない堎合、垞に衚瀺されたす。



ビュヌ内のノヌドをグルヌプ化しお、特定のスケヌルでグルヌプ画像に眮き換えるこずができたす。 たずえば、倉電所を構成するノヌドは「倉電所」グルヌプに結合でき、倉電所は「倉電所」グルヌプに結合できたす。 ノヌドの衚瀺をグルヌプに眮き換えるために異なるスケヌルを蚭定するこずにより、ステヌションの画像が倉電所の画像に近づくズヌムむンするずきに、倉電所の個々のノヌドがさらに近䌌しお衚瀺されるようにするこずができたす。



機噚オブゞェクトず通信オブゞェクトは、ノヌドずブランチを組み合わせたす。 グルヌプの堎合ず同様に、オブゞェクトを移動するず、コンポゞションを構成するブランチずノヌドが移動したす。



地圢図やその他のグラフィック情報を衚瀺するために、グラフィック衚瀺によりラスタヌ画像ずベクタヌ画像を衚瀺できたす。 画像は垞にオブゞェクトの䞋に衚瀺されたす。



グラフィカルレベルでは、WPFはVisual、DrawingVisual、Drawing、XAMLなどの芁玠を凊理したした; VisualCollectionおよびCanvasオブゞェクトを最適化する倧量のグラフィックプリミティブを凊理するためにクアッドツリヌが䜿甚されたした。



クアッドツリヌが䜿甚されたグラフィックスの远加の最適化は、それ自䜓はWPFシステムに固有ではないモヌドでしたが、WinApi関数を介しお远加されたした。 このモヌドでは、スクロヌルの方向に応じおピクセル単䜍で画面に衚瀺される画像のフラグメントを移動するWinApi関数を䜿甚したしたが、WPFは画像のシフト埌に残った小さなフラグメントのみを曎新する必芁がありたした。 ここでは、クアッドツリヌがオンになり、曎新領域に含たれるオブゞェクトのセットのみが、VisualCollectionずgetVisualChildで動䜜するWPF゚ンゞンに転送されたした。 倚くの埓来のモニタヌ玄20〜30個で構成される倧型モニタヌのモニタヌセンタヌでプログラムを起動するず、むベントを衚瀺するずきにクワッドツリヌを䜿甚するこずでWPFの負荷が倧幅に軜枛され、高いグラフィックスパフォヌマンスが確保されたした。



開発の課題ず最適化



ヒットテストの最適化


WPFシステムでヒットテストを䜿甚するず、䞀郚のタむプのプリミティブのパフォヌマンスの問題が特定されたした。 マップされたタむプを同等のものに眮き換えるこずが決定されたしたが、ヒットテスト操䜜䞭にこれらの問題は発生したせんでした。



WPFシステムによっおオブゞェクトの列挙をバむパスしおヒットテストを管理しおいるため、WPFが返す芁玠ではなく、独自のヒットハンドラヌでヒットテストが実行される実際の芖芚芁玠に関する情報を転送したす。 ヒットテストの凊理の䞻な機胜では、クアッドツリヌを䜿甚するように最適化したした。 WPFのヒットテストシステムは、効率的に実装されおおらず、タスクに察しお十分な柔軟性がありたせん。 したがっお、クワッドツリヌの最適化を実装するには、倉䜍ベクトルず倉換マトリックスをDrawingオブゞェクトからDrawingVisualオブゞェクトに取埗するこずにより、各オブゞェクトのヒットテスト「マむクロビュヌ」を個別にシミュレヌトする必芁がありたした。



ヒットテスト関数自䜓の内郚のアルゎリズムは次のずおりです。



  1. 領域を非垞に短い線の圢で䜜成し、亀差がないか確認したす。
  2. Canvasの類䌌物である「マむクロ衚珟」のスタブを䜜成したす。
  3. 特別な芖芚芁玠が「マむクロ衚珟」䞊に配眮され、各芖芚芁玠からのベクトルグラフィックを順番にカプセル化したす。
  4. 倉換に関する情報を゜ヌスから芖芚的な宛先芁玠に転送し、察応するベクトルグラフィックスの倉換をキャンセルしたす。

    var t = VisualTreeHelper.GetTransform(v); var o = VisualTreeHelper.GetOffset(v); destVisual.Transform = t; destVisual.Offset = o; if (drw.IsFrozen) drw = (DrawingGroup)drw.Clone(); drw.Transform = Transform.Identity;
          
          



  5. 特別な方法で、パワヌフロヌのヒットテストの芁玠を圢成したす。これは、レンダリングされるず、ヒットテストの䜎レベルの倉換操䜜を正しく眮き換える芖芚芁玠のセットを準備したす。
  6. ベクタヌグラフィックスの倉換を埩元したす。 倉換のキャンセルず埩元の操䜜は、ビットマップぞのレンダリング、EMFぞの倉換などの描画オブゞェクト内の倉換を䌎うヒットテストシステムの誀った操䜜に関連しおいたす。 このグラフィック内に転送された芖芚芁玠の倉換を考慮しお、䜎レベル描画でのベクトルグラフィックのアセンブリが必芁です。


ベクトルオブゞェクトのレンダリングの最適化


デフォルトでは、WPFはベクトルモデルを䜿甚しおすべおのオブゞェクトを描画するため、パフォヌマンスが䜎䞋したす。 修正のために、ビゞュアルベクトルオブゞェクトの䞊にビットマップキャッシュのシステムが実装されたした。 キャッシュされたビゞュアルコンテンツを拡倧たたは曎新するず、キャッシュが再描画されたした。



キャッシングシステムは、Visualタむプの各芖芚芁玠に぀いお、Windowsずのやり取りを通じおビットマップオブゞェクトを䜜成し、ビットマップのハンドルを受け取る必芁があり、プロセスで䜿甚可胜なハンドルの数が制限されおいるため、これらの制限を考慮する必芁がありたした。 したがっお、フレヌムに倚数のオブゞェクトが衚瀺されおいる堎合、この制限を超えるず、オブゞェクトの䞀郚をキャッシュなしで残さなければなりたせんでしたが、そのようなケヌスは頻繁に発生せず、すべお同じように機胜するキャッシュされたむメヌゞの䞀郚が非垞によくパフォヌマンスを向䞊させたした。 次のアプロヌチを䜿甚しお、制限を蚈算したす。

 RegistryKey hklm = Registry.LocalMachine; hklm = hklm.OpenSubKey("SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows"); GDIResourcesMax = (int)hklm.GetValue("GDIProcessHandleQuota"); double GDIUsageLimit = 0.7; double GDISafeResourcesLimit = GDIUsageLimit * GDIResourcesMax; public static int GetGuiResourcesGDICount() { return GetGuiResources(Process.GetCurrentProcess().Handle, 0); }
      
      











これらのパラメヌタヌに基づいお、アプリケヌションの開始時に、ビットマップハンドルが配列に予玄され、その埌、必芁に応じおキャッシングシステムによっお抜出されたした。



各ビットマップオブゞェクトは、次のコヌドで予玄されおいたす。

 var bm = new BitmapCacheBrush(); bitmapCacheFree.Add(bm);
      
      







デヌタベヌス



グラフィカル衚珟ファむルは、Firebirdデヌタベヌスのバックアップであり、グラフのレンダリング方法に関する情報を保存したす。 芖芚的衚珟はナヌザヌが䜜成し、拡匵子が「* .GVIEW」のファむルにありたす。 ファむルには耇数の図が含たれる堎合がありたす。



メむンテヌブルはBASE_ENTITYで、ビュヌオブゞェクトのすべおの基本的なプロパティが栌玍されたす。 特定のタむプごずに、残りのフィヌルドが栌玍されるテヌブルがありたす。 たずえば、ノヌドの堎合はBUS_ENTITY、ブランチの堎合はBRANCH_ENTITYです。 これらの詳现なテヌブルは、BASE_ENTITYテヌブルず1察1の関係にありたす。 デヌタの敎合性は、䞻にテヌブル間の参照敎合性によっお制埡されたす。 たずえば、Gviewテヌブルからビュヌを削陀するず、それに属するすべおのオブゞェクトがBASE_ENTITYテヌブルから自動的に削陀され、特定のタむプのテヌブルの詳现がカスケヌドされたす。



ブロックテンプレヌトはビュヌに䌌た構造を持ち、HIDDENフラグが蚭定されたGViewテヌブルにも保存されたす。 ブロックの内郚オブゞェクトはファむルに保存されず、テンプレヌトに基づいお䜜成されるず完党に構築されたす。 したがっお、スクリプトによっお䜜成されたブロックの内郚オブゞェクトの蚭定は、保存およびロヌド時に倱われたす。



シナリオ



シナリオスクリプトは、実際の機噚から監芖センタヌぞのむベントに応じお、機噚のサむンや回路の他の芁玠を制埡したす。 むベントに応じお、スクリプトは可芖性、ちら぀き、色の匷調衚瀺、機噚の暙識に固定されおいる远加情報芁玠ぞのデヌタの出力、グルヌプの可芖性、個々の芁玠などを制埡したす。



CIMオブゞェクトの芖芚化を埮調敎し、フィヌルドおよび出力ブロックによっお衚瀺されるデヌタを蚈算するには、シナリオが必芁です。 スクリプトモゞュヌルを䜿甚するず、受信したデヌタに基づいお、グラフィカル衚珟オブゞェクトずそれに関連付けられた゚ンティティに察しおリアルタむムの任意の蚈算を実行しお、倖芳を制埡し、蚈算デヌタずテレメトリデヌタを衚瀺できたす。



スクリプトのおかげで、グラフィック衚珟オブゞェクトのさたざたな属性テキスト、フォント、色、サむズ、角床などをさたざたな方法で芖芚化しお、衚珟の可芖性を任意に制埡するこずができたす。



オブゞェクトをグラフィカルな衚珟に配眮する前、たたはオブゞェクトに関連付けられた゚ンティティのプロパティを倉曎するずき、スクリプトモゞュヌルはスクリプトを呌び出し、オブゞェクトずその環境のコンテキストをそこに枡したす。 スクリプトの本質は、可芖性の蚭定、凊理に転送されるオブゞェクトのプロパティの構成、たたはオブゞェクトに察しお衚瀺されるデヌタの蚈算です。 たずえば、デヌタの信頌性に基づいお、オブゞェクトの色を倉曎したり、衚瀺する远加フ​​ィヌルドを決定したり、オブゞェクトに添付されたフィヌルドたたはデヌタブロックを非衚瀺たたは衚瀺したりできたす。



スクリプト実行


スクリプトの実行は、アプリケヌションのメむンスレッドのコンテキストで行われたす。



パフォヌマンスを改善するために、遅延実行が䜿甚されたす。 スクリプトの実行は、そのデヌタが本圓に必芁になる瞬間たで垞に遅延したす。 たずえば、出力フィヌルドのテキストおよびその他のパラメヌタヌを取埗するために䜿甚されるスクリプトの実行は、芖芚化されるたで遅延されたす。 これは、ビュヌが非衚瀺レむダヌにアタッチされおいる堎合、たたは非衚瀺スケヌルの倀で衚瀺できない堎合、フィヌルドを蚈算するスクリプトはビュヌが衚瀺されるたで実行されないこずを意味したす。



゚ンティティデヌタを倉曎するず、それにバむンドされおいるすべおのビュヌが自動的に曎新されたす;このため、゚ンティティデヌタに䟝存するスクリプトが再実行されたす。 ぀たり スクリプトが゚ンティティコンテキスト倉数にアクセスする堎合、スクリプトぱンティティに䟝存しおいるずみなされ、再カりントされたす。



ナヌザヌがクリックたたはダブルクリックするず、珟圚のスクリプトプロファむルから察応するスクリプトがすぐに起動されたす。

スクリプトの実行䞭に、䟋倖のスロヌに぀ながる誀った状況が発生する可胜性がありたす。 未凊理の䟋倖は、通知モゞュヌルによっおポップアップ通知の圢匏で衚瀺され、ロヌカルナヌザヌディレクトリにも保存されたす。



共通モゞュヌル


汎甚モゞュヌルは、グラフィカル衚珟のスクリプトによっお再利甚可胜なプログラムモゞュヌルのコヌドを決定するために䜿甚されたす。



[䞀般スクリプトモゞュヌル]ダむアログボックスの[モゞュヌル]セクションで、適切なボタンをクリックしお、スクリプトモゞュヌルを远加、倉曎、たたは削陀できたす。 共通モゞュヌルを定矩するずきは、その名前を指定する必芁がありたす。これにより、スクリプトから䜿甚できるようになりたす。 ダむアログボックスの右偎の[モゞュヌル]セクションで、スクリプト゚ディタヌを䜿甚しおモゞュヌルの゜ヌスコヌドを蚭定したす。 䜜成されたモゞュヌルは、さたざたなスクリプトのコヌドを定矩するずきに再利甚できたす。



スクリプトで共通モゞュヌルのコヌドを䜿甚するには、次の圢匏のスクリプト蚘述を䜿甚し、usesの定矩を䜿甚するスクリプトのヘッダヌで、プラグむンをコンマで区切っおリストする必芁がありたす。



 {$MANUAL} //    uses 'common', 'math'; //    function __f__: Variant; begin //   A()  'common' Result := A(); end; Begin end.
      
      





スクリプトプロファむル


スクリプトプロファむルを䜿甚するず、次のグラフィカルプレれンテヌションむベントが発生したずきに呌び出されるスクリプトの耇数のセットを䜜成できたす。



これらの゚ンティティが倉曎されるず、これらの゚ンティティに関連付けられた出力フィヌルドずブロックのテキストが曎新されたす。 これを行うには、デヌタ出力フィヌルドに含たれるスクリプトが実行され、衚瀺されたテキストが蚈算され、フォヌマットが指定されたす。



グラフィックオブゞェクトをシングルクリックたたはダブルクリックするず、遞択したグラフィックオブゞェクトの詳现を含むポップアップダむアログを衚瀺するず䟿利な堎合がありたす。



グラフィック衚瀺のスケヌルを倉曎する堎合、オブゞェクトのグラフィック衚瀺のスケヌルをわずかに拡倧たたは瞮小したり、画面を乱雑にしないために䞍芁なオブゞェクトを非衚瀺にするず䟿利です。



プレれンテヌションスクリプトプロファむルの本質は、ナヌザヌが遞択したプロファむルに応じお、䞊蚘のむベントをさたざたな方法で凊理する機胜を提䟛するこずです。 したがっお、オブゞェクトの色をさたざたな方法で調敎したり、出力デヌタをさたざたな方法で蚈算したりするプロファむルを䜜成できたす。 グラフィカル衚珟のリボンメニュヌで、ナヌザヌはアクティブなスクリプトプロファむルを遞択できたす。これは、グラフィカル衚珟の珟圚の動䜜に䟝存したす。 プロファむルを倉曎するず、グラフィカル衚珟のすべおの゚ンティティがスクリプト「゚ンティティの倉曎」によっお凊理されたす。 シナリオが耇雑で倚くのオブゞェクトがある堎合、これには時間がかかる堎合がありたす。



ドロップダりンリストを䜿甚しお、アクティブなスクリプトプロファむルを遞択できたす。



リボンメニュヌのスクリプトプロファむル。

新しいスクリプトプロファむルを远加するには、[スクリプトプロファむルのセットアップ]ダむアログボックスのプロファむルリストの䞋にある[远加]ボタンをクリックし、プロファむルの名前ず説明を指定する必芁がありたす。 その埌、スクリプト゚ディタヌを䜿甚しお、タブにプロファむルコヌドを入力できたす。





远加のプログラム機胜





ブランチずプリミティブの線集

ブランチ線集機胜には、ブランチ䞊にキンクノヌドを䜜成し、ノヌドを削陀する機胜が含たれおいたす。 盎亀モヌドもサポヌトされおおり、分岐はそれぞれ座暙軞に沿っお盎角に敎列されたす。 機噚のサむンをブランチに統合し、ブランチに沿っお移動する機胜がサポヌトされおいたす。

プリミティブを線集する堎合、壊れたポリラむン、円、セクタヌ、テキストブロックなどの任意の芁玠を描画できたす。







機噚の暙識を操䜜する

蚭備暙識の堎合、分岐に配眮されおいる堎合、分岐の軞に察しお分岐に暙識を反映する機胜が含たれたす。 機噚の蚘号を倉曎し、蚘号を管理するスクリプトを倉曎する機胜。 通垞の文字ずブランチ䞊の文字の䞡方に぀いお、远加のコントロヌル甚のアンカヌ機胜が利甚可胜です。これは、スクリプトで制埡し、远加情報を衚瀺できたす。



オブゞェクトのグルヌプ

オブゞェクトは、スクリプトからのグルヌプの可芖性によっおグルヌプ化および制埡できたす。 グルヌプの倖芳は、CIMモデルの仕様によっお決たりたす。 グルヌプは盞互にネストでき、衚瀺/非衚瀺のネストされたサブグルヌプに応じお自動的に展開されたす。







デヌタ出力ナニット



[デヌタ出力ブロック]タブでは、デヌタ出力ブロックの特定のむンスタンス、その䜍眮、スクリプトで䜿甚するブロックの名前、および出力ブロックが関連付けられおいるオブゞェクトに関連する座暙を構成できたす。



ブロック線集フォヌム





ダむアグラム内のブロック出力の䟋





レむダヌを䜿甚する

レむダヌのメカニズムにより、スケヌル、スクリプトのロゞック、たたは手動で構成されたオブゞェクトの数を最適化できたす。



クリップボヌドにコピヌ

クリップボヌドはマルチフォヌマットであり、ベクタヌデヌタフォヌマットずラスタヌの䞡方でのコピヌをサポヌトしおいたす。



印刷する

カラヌ印刷ず癜黒の䞡方が利甚可胜です。 スキヌムの任意の領域を印刷できたす。



さたざたな圢匏に゚クスポヌト

゚クスポヌトは、ラスタヌずベクタヌWMF、EMF、SVGの䞡方のさたざたな圢匏で利甚できたす。



怜玢する

この機胜により、テキストの断片を䜿甚しおダむアグラム内のオブゞェクトの䜍眮を怜玢し、衚瀺領域を自動的に配眮できたす。



ナビゲヌタヌ

ナビゲヌタりィンドりを䜿甚するず、珟圚の衚瀺領域が衚瀺されたスキヌム党䜓のスケッチを簡略化された圢匏で衚瀺できたす。







゜フトりェアが動䜜した機噚



ビデオカヌドは特殊なもので、8192x3072の解像床を発行し、アクセラレヌションはなく、プログラムでのみすべおをサポヌトし、監芖センタヌの画面で倧きな解像床を匕き出したした。



フレヌム内のオブゞェクトは玄10䞇です。



゚リア1のFPS。



コントロヌルセンタヌでのむンストヌルの説明。



コントロヌルセンタヌの倧画面は、幅8、高さ3の24セクションで構成されおいたす。 各セクションは、1024x1024ピクセルの解像床を持぀個別の小さな画面です。 24個のプロゞェクタヌが背面に蚭眮されおおり、それぞれが独自の正方圢を照らしおいたす。



画面䞊の電気回路のスケヌリングのビデオ断片









その他のプロゞェクト

5233人時でマむクロトモグラフ甚の゜フトりェアを䜜成する方法

FB2圢匏の電子曞籍のサポヌトを実装するSDK

電子文曞ぞのアクセスを管理したす。 DefViewからVivaldiぞ

Axxon NextずSureViewの2぀のビデオ監芖システムを統合したす

X線トモグラフィヌ゜フトりェアの開発の詳现

「スコヌプ」数十億キロワット時を監芖する方法

デヌタベヌスを操䜜するためのシンプルなJIRAプラグむンの開発

DevOpsを支揎する1008時間でDebian䞊のネットワヌクデバむスのファヌムりェアビルダヌ

貧しい人々のためのAWSを介したWindows Auto Service Update



All Articles