反動的ソフトウェア - by fschmidt

反動的プログラミングを学ぶ


目次


イントロダクション

目次

反動的プログラミングを学ぶことで、プログラミングの深い理解を得て、自分自身のプログラムやウェブサイトを書くことができるようになります。しかし、堕落した現代文化で仕事を得るにはこれだけでは不十分です。現代文化は彼らに人気のあるツールを使うことを期待するので、それらの1つを学ぶ必要があります。おそらく現代文化で使用される最もひどくないプログラミングツールはPythonです。仕事が欲しいなら、それを学ぶことをお勧めします。

次の4つのレッスンは基本的なコンピュータリテラシーです。プログラミングに興味がなくても、これらは役立つスキルです。

このコースは需要に基づいて段階的に開発します。ここでの内容を誰かが完了するたびに、別のレッスン/セクションを追加します。これにより、誰も使わないコンテンツを書くのに時間を無駄にしません。

このコースは、論理的な順序で反動的プログラミングを学ぶために設計されます。関連するリソースを見つけることに焦点を当て、他に何もない場合にのみ説明を書きます。私が最もよく知っているウェブ開発に焦点を当てます。

私はしばしば「Xを行う」と言いますが、Xを行う方法を言わないことがあります。プログラミングの大部分は、物事を行う方法を見つけることです。あなたの主なリソースはGoogleとChatGPTです。行き詰まったら、私に聞いてください。

ChatGPTは重要なプログラミングツールになりました。したがって、このレッスンの唯一のタスクはChatGPTで遊ぶことです。後で技術的な質問をすることができます。

質問がある場合は、私のフォーラムで私に聞いてください。

テキストエディタとJSON

目次

テキストエディタは反動的プログラマーの基本ツールです。私たちはシンプルで柔軟なツールを使用します。現代文化は大きくてIDEを使用しますが、これは複雑で柔軟性がありません。私たちはそのようなツールを使用しません。

利用可能なテキストエディタをレビューした結果、Sublime Textが最も優れていると思います。ダウンロードして使い方を学んでください。

JSONは最も人気のあるテキストデータ形式です。JSONは現代文化からの最後の良いプログラミングアイデアであり、2001年頃に開発されました。JSONについて理解するために自分で調査してください。かなりシンプルです。

Sublime TextはJSONファイルを設定に使用するため、Sublime TextとJSONを組み合わせました。(実際には純粋なJSONではなく、//で始まるコメントを含んでいます。)Sublime Textの設定を試して、Sublime TextとJSONの両方についてもっと学んでください。

Bash - コマンドラインシェル

目次

Bashは反動的プログラマーのもう一つの基本ツールです。このレッスンでは既存のBashチュートリアルを参照したかったのですが、すべてひどいので自分で書いています。このレッスンでは、私のチュートリアルを読んでください。

正規表現

目次

正規表現、略してregexは、テキストの検索や一致に使用されます。これは非常に一般的なニーズであるため、プログラミングのあらゆるところでregexが見られます。Bashを学んだばかりなので、regexを使用するgrepコマンドでregexを学ぶことができます。

Bashとは異なり、いくつかのまともなgrepチュートリアルがあるので、自分で書く必要はありません。ここにあります:

これらのチュートリアルを読み通して、regexとgrepの動作を理解してください。ここで何かを練習する必要はありません。regexやgrepが本当に必要になったときにこれらのチュートリアルに戻ることができます。

regexの詳細は実装によって異なります。LuanはJava regexを使用します。

真剣なプログラマーになるなら、regexの深い理解を持つべきです。その場合、Mastering Regular Expressionsという本をお勧めします。

Mercurial - ソース管理

目次

幸いなことに、Mercurialはよく文書化されています。Mercurial: The Definitive Guideを第9章まで(含む)読んでください。

Mercurialを始めるには、彼らのウェブサイトからMercurialをダウンロードしてインストールします。その後、次のようにします:

~/learn $ hg version Mercurial Distributed SCM (version 5.2.2) (see https://mercurial-scm.org for more information) Copyright (C) 2005-2019 Matt Mackall and others This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ~/learn $

これが動作すれば、正しくインストールされています。次に、Mercurialの設定ファイルを設定します。これはMacでは~/.hgrc、Windows MSYS2では/c/Users/$(whoami)/mercurial.iniです。私のhgrcファイルは次のようになっています:

[ui] username = Franklin Schmidt [auth] hghosting.prefix = https://hg.reactionary.software/repo/ hghosting.username = fschmidt@gmail.com hghosting.password = xxxxxxxxxx [extensions] hgext.extdiff = [extdiff] cmd.dm = diffmerge

私たちのMercurialホスティングサービスに登録し、.hgrcにユーザー名としてメールアドレスと割り当てられたパスワードを使用してください。最後の2つのブロックは、DiffMergeExtdiff拡張を使用してhg dmを呼び出すように設定します。

次に、次のようにしてhttps://hg.reactionary.software/repo/test/で遊ぶことができます:

~/learn $ hg clone https://hg.reactionary.software/repo/test/ hgtest1 no changes found updating to branch default 0 files updated, 0 files merged, 0 files removed, 0 files unresolved ~/learn $ hg clone https://hg.reactionary.software/repo/test/ hgtest2 no changes found updating to branch default 0 files updated, 0 files merged, 0 files removed, 0 files unresolved ~/learn $ ls -Fd h* hgtest1/ hgtest2/ ~/learn $ cd hgtest1 ~/learn/hgtest1 $ touch file.txt ~/learn/hgtest1 $ e file.txt ~/learn/hgtest1 $ cat file.txt some text ~/learn/hgtest1 $ hg status ? file.txt ~/learn/hgtest1 $ hg add file.txt ~/learn/hgtest1 $ hg status A file.txt ~/learn/hgtest1 $ hg pull pulling from https://hg.reactionary.software/repo/test/ no changes found ~/learn/hgtest1 $ hg commit -m 'add file.txt' ~/learn/hgtest1 $ hg push pushing to https://hg.reactionary.software/repo/test/ searching for changes remote: adding changesets remote: adding manifests remote: adding file changes remote: added 1 changesets with 1 changes to 1 files ~/learn/hgtest1 $ cd ../hgtest2 ~/learn/hgtest2 $ hg pull pulling from https://hg.reactionary.software/repo/test/ requesting all changes adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files new changesets aab34516d8dc (run 'hg update' to get a working copy) ~/learn/hgtest2 $ hg update 1 files updated, 0 files merged, 0 files removed, 0 files unresolved ~/learn/hgtest2 $ hg status ~/learn/hgtest2 $ cat file.txt some text ~/learn/hgtest2 $ e file.txt ~/learn/hgtest2 $ cat file.txt some text and more ~/learn/hgtest2 $ hg status M file.txt ~/learn/hgtest2 $ hg pull pulling from https://hg.reactionary.software/repo/test/ searching for changes no changes found ~/learn/hgtest2 $ hg dm ~/learn/hgtest2 $ hg commit -m 'and more' ~/learn/hgtest2 $ hg push pushing to https://hg.reactionary.software/repo/test/ searching for changes remote: adding changesets remote: adding manifests remote: adding file changes remote: added 1 changesets with 1 changes to 1 files

Java 8

目次

Javaは簡単な言語ではなく、後でPythonやLuanを使用する場合、Javaをあまり使用しません。ではなぜ最初に学ぶのか?それはプログラミングの核心的な理解を与えるからです。また、ChatGPTはJavaを非常によく理解しているので、これが学習を助けることができます。そして最後に、JavaはLuanを理解するのに役立ちます。

Javaを学ぶには、次のリソースが必要です:

私はあなたに直接Javaを始めさせるほどサディスティックではありません。それはあまりにも苦痛です。代わりに、BeanShellというJavaへの優しいインターフェースから始めさせます。Javaを学ぶためのステップは次のとおりです:

Java 8をインストールする

Java (JDK) 8をダウンロードしてインストールします。初心者向けのJavaの本には詳細な手順があるかもしれません。問題がある場合はChatGPTに聞いてください。JDKをインストールした後、次のように確認できます:

~ $ java -version java version "1.8.0_241" Java(TM) SE Runtime Environment (build 1.8.0_241-b07) Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode) ~ $

BeanShellを学ぶ

Bashと同様に、私自身のBeanShellチュートリアルを書きます。それを読んでください。

Javaを学ぶ

次に、初心者向けのJavaの本を読んで、いくつかのJavaプログラムを書いてみてください。詳細についてはThe Java Programming Languageを参照し、ChatGPTに説明を求めてください。Javaの専門家になる必要はありませんので、あまり時間をかけないでください。Javaの基本的な考え方を理解するだけで十分です。

Luan

目次

Luanを学ぶを参照してください。

HTMLとCSS

目次

Google Chromeはクライアントサイドのウェブ開発の標準ツールです。したがって、最初のステップはChromeをインストールして実行することです。

Chromeを使用して、任意のページで空白の領域を右クリックし、メニューから「ページのソースを表示」を選択します。これにより、ウェブページのHTMLが表示されます。異なるウェブサイトでこれを試すと、私のウェブページが比較的短く整理されているのに対し、現代文化のウェブページは読みにくいことに気付くでしょう。もう一つ試すことは、ページ内の任意の場所を右クリックして「検証」を選択することです。これにより、開発者ツールが「要素」タブを選択して開きます。このタブでは、HTMLがツリーとして整理され、展開または折りたたむことができます。Chromeの開発者ツールの「要素」タブは、HTMLとCSSを扱う際のコアツールです。それを試して、自分で調査してその動作を学んでください。

次のステップは、このウェブサイトを次のようにダウンロードすることです:

~/learn $ wget -r -k https://www.reactionary.software/ --2024-01-15 01:31:20-- https://www.reactionary.software/ ... ~/learn $ cd www.reactionary.software/ ~/learn/www.reactionary.software $ ls -F about.html hg_dev.html mercurial.html bash.html index.html needed.html books.html java.html nginx.html discussion.html java_fork.html python.html existing.html learn.html site.css external_link.svg learn_bash.html this.html freedit.html lucene.html wysiwyg.html

index.htmlはホームページです。Mac FinderまたはWindows File Explorerで見つけて、Chromeにドラッグアンドドロップしてください。このウェブサイトが表示されるはずです。テキストエディタでファイルを開いてHTMLを確認できます。これらのファイルを編集して、ウェブページがどのように変化するかを確認できます。

HTMLとCSSに関する良い文書があります。Cascading Style Sheets: Designing for the Webから始めてください。これはCSSを発明した人々によって書かれたもので、コアのアイデアを説明しています。本全体を読んでください。この本はこのウェブサイトのほとんどすべてをカバーしています。唯一欠けているのはflexboxです。次にCSS: The Definitive Guideを入手してください。この本も全体を読むべきですが、CSSを扱う際にゆっくりと読むことができます。今すぐこの本を読む必要はありません。次の2つのレッスンを終えた後に待つことができます。

HTMLとCSSを使って遊んで、それらがどのように機能するかの基本的な理解を得てください。このウェブサイトのHTMLとCSSを理解できるようになるべきです。

HTML自体のリソースは省略しました。HTMLタグに遭遇したときにGoogleやChatGPTで調べるだけで十分です。それでHTMLを学ぶことができます。

理想的には、インターネット上のウェブページを見て学ぶことができるはずです。しかし、残念ながらそれらはほとんどが過度に複雑で理解するのが非常に難しいです。試してみることはできます。私の個人のウェブサイトはこのように非常にシンプルで、現代文化にはプロフェッショナルに見えません。私の最高の商業ウェブサイトにリンクすることはできませんが、それは私が悪名高いからです。しかし、私の古い商業ウェブサイトのいくつかにここここにリンクすることができます。これらは合理的なHTMLとCSSを持っています。

HTMLとCSSを扱う際の一般的な原則がいくつかあります。まず、現代文化はHTMLがコンテンツ用でCSSがスタイリング用だと主張しています。これはナンセンスです。HTMLとCSSの両方がレイアウト用であり、概念的に異なると考えないでください。望む結果を得るために、最もシンプルな方法で両方を使用してください。headerのような無用な新しいHTML5コンテンツタグを気にしないでください。ほとんどのことにはdivspanを使用してください。また、HTMLクラスではなくHTML属性をセレクタとして使用します。これは単にシンプルです。HTMLクラスは無用であり、現代文化に任せておいてください。

ウェブサイトを作成するには、HTML、CSS、Javascript、Luanが必要です。したがって、これらの基本的な理解を得てから、後でそれらをより深く学ぶことをお勧めします。

JavaScript

目次

後で

HTTP

目次

後で

Lucene

目次

後で