私がオープンソースだった経緯...

むかしむかし、遠く離れたある銀河で...



それはすべて非常に普遍的に始まりました...ソフトウェア製品を完成させたいという願望がありましたが、そこにどのように配置されているのか少しのアイデアはありませんでした...そしてそれはずっと昔です...



おそらく2003年、...その頃までに私はSlackwareディストリビューションのユーザーであったため、ソフトウェアの構築方法は既に十分に知っていましたが、siの知識は本当に不足していました私はまだ彼を本当に知りません:)。 それにもかかわらず、Midnight Commanderに便利な機能を1つ追加したかったのです。 つまり、最初のファイルが「実行可能ファイル」である場合にファイルをソートするオプションは、たとえばこれまで行われています。 ICQの助けを借りて、より良いアプリケーションに値する仲間のシシュニクと忍耐に対する愚かな質問は、私が望んでいたことをほとんどうまくできませんでした...それは曲がっていましたが...それはうまくいきました! (2日間捨てるのはなんてバズなんだけど、やりたかったことをやる)

さらにmcに、達成されたものに休むことはしませんでした...年が過ぎました... :)



ASUS wl-500gP



約2〜3年前のある時点で、私は、Asus WL500g Premiumという誇りのある名前の面白い白い箱の幸せな所有者になりました。 なぜなら oleoリポジトリの私の母mcは完全に「あまりよくない」ので、座って見て、UTF-8で名前をうまく扱えないようにする必要がありました... UTF-8のDebianパッチとFC mcがmc箱をきっぱりと拒否しました、それは簡単ではありませんでしたが、私はまだ黙っていました...(私はショックでした:))。 siの知識がほとんどゼロであることを考えると、プロセスは多少遅れました。 しかし、すべてが終了すると、既製のパッケージの形で結果が適切なフォーラムに投稿されました。これは、「box」のmcに同じ苦労UTFがあります。



選んだ結果、私は確かにsiを勉強しませんでした。私は、原則として、小さなパッチを作成するには少しの忍耐と忍耐で十分であることに気付きました。 主なことは、システムを過度に破壊せず、継続的なコード作業などのXP( エクストリームプログラミング )トリックを使用することです。 そこで、私は「ボックス」の下で最初のプロジェクトを開始することにしました。これは、完全に機能しないハードウェアで動作し、各国語を適切にサポートし、部分的に異なるソースからファイルを配布および受信できる簡単なDC ++クライアントです。 wgetユーティリティのアプローチがコンセプトとして選択されました。 ユーティリティへのリンクを指定すると、すべてが自動的に実行され、ジョブが完了すると終了します。 それで、コンソールDC ++ dcgetクライアントのアイデアが生まれました。 多くの軽量オープンソースプロジェクトを見て、DC ++クライアントのクライアントサーバー実装であるShakesPeerが見つかりました。これは、UIソケットと、コンテンツのダウンロードと配信を行う実際のエンジンを介した通信に基づいています。

そこで、私はそれを分岐させて、欠けている機能を追加することにしました。 このタスクはそれほど難しくありませんでしたが、他の人のコードをナビゲートするのは非常に不便でした。適切なエディターが必要でした。 キーボードショートカットが似ているfarエディターに似たエディターと、便利なエディターに固有の定義関数やその他の快適なものに切り替えるなど、ソースコードを操作する機能を本当に見逃しました。 まったく悲惨にならないように、vimで必要なツールをセットアップしてIDEに変換し、ゆっくりと使用しました。 しかし、新しいトリックで老犬を再訓練するのは難しいです。 マシン上の3セットのホットキーを覚えているのは私にとって圧倒的な作業でしたが、遠くで働いていたときに、テキストをvimに自動的に移植したり、その逆を行ったりしました...



真夜中の司令官



その間、opennetで、新しいバージョンのmcが、ファイルやその他の便利なもの(多くは既に「ボックス」の下にあるアセンブリに既に含まれていた)などの追加のパッチとともに登場するというニュースに出会いました。 「共有エクスペリエンス」の観点からチームを作成し、WL500gPのアセンブリからマイナーパッチをいくつか提供します。 結局のところ、彼らは「友好的な若い、有望なチーム」でした( ):)共通の言語と理解を見つけやすい人。 チームに参加するために必要なことは、秘密鍵と公開鍵を作成し、受信した公開鍵をPatrick Wienertzに送信することだけでした。そうすれば、Midnight CommanderのWebサイトに登録され、gitリポジトリに書き込むことができます。 それですべてが始まりました...



要するに、Gitの使用不能、C言語の知識の欠如、多くの言語でのプログラミング経験、およびmceditをこれまでと同じ機能セットを持つエディターでより使いやすくしたいという大きな願望です。 私が最初に採用したパッチは、リストの一番上に実行可能ファイルを表示するパッチです。 今回のパッチはイデオロギー的に真であり、汚いハックではありませんでした。 幸いなことに、チームには私のパッチを見て、それらなしでコードを修正する素晴らしい仕事をした人々が含まれていました。おそらく、書かれたものの10分の1をマスターしなかったでしょう。 その結果、IDEとして使用するという点で私のニーズを完全に満たすエディターを手に入れました。 そして、最も興味深いのは、私がそこに必要なほぼすべてのものが既にそこにあり、そこに到達できないほど深く埋まっているか、わずかに「未完成」の状態にあることです。 一般に、エディターのテキストをドリブルすればするほど、未実現の機能が見つかりました。次のパッチを完了した後、非常に予想外の場所で同様の実装を見つけた後、自分自身を削除して正しい条件に到達したことを最終的に確定することは時々面白かったです...これは次のようなものでした-さらなるメンテナンスのためにコードをできるだけシンプルで理解しやすくし、プロジェクトの全体的なコンセプトとスタイルに最大限適合させること。



だから、私は典型的な真っ赤なオープンソースになりました:)、夕方には魂のコーディング、午後は私が働いている会社でレポートとフォームを書いています。



結論:)



ちなみに、オープンソースコードの作成はプログラマの観点から見ればただの景品です:)、必要なものはすべて前に書かれているので、必要なコードを見つけて正常にコピーするだけです:)終了...最も興味深いものさえ。 また、明らかではなく繰り返しにくいバグを検索して修正するなど、非常に面白くないものもありますが、セクトに入ったときに何ができるかは、抜け出さないようにするのがとても簡単です:))しかし、最後の重大な問題を修正する前ではなく、これが起こることを願っていますみんなを失望させたい...



もちろん、チームワークは別のトピックです...プログラマーの観点からの興味深い経験-コードの修正、ペアプログラミング、タスクの議論と可能な実装方法、その他



ひれ



PS:だから、彼の工芸品に取り組むために必要で便利なツールを受け取った-dcget、私はほとんど完全に、それへの興味を失った... ce la vie :)



PPS:誰かが* nixの下のコンソールDC ++クライアントに興味があるなら、あなたは大歓迎です。



しわくちゃのナレーションでごめんなさい。



All Articles