ブログ「サイバー少年」

ブログ「サイバー少年」へようこそ!
小学六年生ごろからプログラミングを趣味にしている高校生のブログです。
勉強したことについての記事などを書いています。フリーソフトも制作、公開しています。
(当ブログについて詳しくは「ブログ概要紹介」を参照)

サイバー少年が作ったフリーソフトは「サイバー少年の作品展示場」へ

11月

覚えた技術
・C#の構文の、よく使う物は覚えた。
・ネットワークのドメインは、右に行くほど大きくなる事を覚えた。
・累乗で、a^b×a^c = a^(a + b)や、a^b^c = a^(b×c)を覚えた。

進んだソフトウェア
・鬼方程式の制作を進行させた。(進行率70%)

コメント
鬼方程式はC#で作っているので、C#の構文をだいぶ記憶しました。配列の宣言とかも簡単に書けるようになりましたしね。所で「製作」を「制作」に変更しました。

tag:

プログラマ中学生ブログのGoogle検索ヒット状況

Google検索で「中学生 プログラマ」と検索したら、どこがヒットするかを順位形式でご紹介します。

ブログ「サイバー少年」があるといいですね!

Googleの検索結果はコロコロ変わりますので、
これは2012年12月1日現在のものだと言う点にご注意ください。

「中学生 プログラマ」のGoogle検索結果


1件目 Rubyを最大63%高速化した中学生は超多忙! − @IT自分戦略研究所

2件目 10年後はゲームプログラマーの中学生ぶろぐ


何と早速Flash Boyさんのブログがヒットしました。
2位って、何があったんですか…。


3件目 天才中学生プログラマは高校に行かずにCOOKPADで働く。 - Togetter

4件目 小・中学生のプログラマーが参戦!プログラマーキャンプ『Life is Tech!』


「Life is Tech!」はテレビとかでも話題になりましたもんね~。


5件目 最近、中学生プログラマ仲間が増えてきた。 - ブログ「サイバー少年」

6件目 鬼教授の顔作った。 - ブログ「サイバー少年」

7件目
中学生のためのプログラミング入門 VB.NET編 - ブログ「サイバー少年」


サイバー少年キターーー!

アクセス件数3万件を誇る、Flash Boyさんにはかないませんが、5件目から7件目まで独占しています。

5件目の記事はまぁ、いいとして

6件目にヒットした記事は、あれがここに来るか?って感じですね。

7件目なんて記事を書いていませんからね…。
そう言えばまだ書いてないな…。


私的には、記事がヒットするより、トップページがヒットするほうが嬉しいですね。

一記事がヒットするのは、一発屋みたいで嫌なんですよね…。


今のは「中学生 プログラマ」のGoogle検索結果だったので、

おまけで「中学生 プログラミング」でのGoogle検索結果も調べてみましょう。
続きを読む

tag:

形式名詞はひらがなで書こう

国語で習ったんですが、例えば

重要な所は赤字で書いてください。

という文は間違いだそうです。
本当は

重要なところは赤字で書いてください。

と書くのだそうです。
何が間違いのかと言うと、
重要な所」です。
本当は「重要なところ」だそうで。
ところはひらがなじゃないといけないんですね。

「ところ」自体は「所」と書くほうがいいのですが、
(同じく上の文を「書く方がいいのですが」とするのは間違いです。)

「○○なところ」など、あまり、“これだ”という具体さのない、
抽象的な表現の「ところ」については形式名詞と言う名詞の種類になるそうです。

原則として、形式名詞はひらがなで書かないと駄目なんですね。
駄目と言うより、ひらがなが推奨されているんです。

どこが形式名詞なのかは、私自身あまり理解していないのですが、
「○○する事」や「○○している物」などは形式名詞が含まれていて、
「○○すること」、「○○しているもの」が正解です。

私も結構、ブログで“事”とか“物”とか書いちゃっていますね…。

私は正直、国語の間違いなんてどーでもいいと思っているのですが、できることなら正しく日本語を書きたいものです。
(「できるなら正しく日本語を書きたいです」はダメ)

tag:

スマホ嫌いがスマホを持ちたくなくなるようなことを書きまくるの巻

私は、大のスマホ嫌い、Apple嫌い、JAVA嫌いです。

全部、はやりのテクノロジですね。
最新技術を嫌うのはプログラマとしてどうかなんて意見は聞かない。

私はね。
未だにデスクトップPC + Windowsを支持しています。
(Windows 8はデスクトップを見捨てたんでがっかりしましたけどね…。)

そこで!
今日はスマホの嫌いなところを書きまくって、読者の皆さんをスマホ大嫌いな人にしてしまおうと目論んでいます。

では張り切って書いていきましょう!

続きを読む

tag:

Googleが政府機関をボロクソに批判している

Googleの検索画面で

「僕らのインターネットは 自由でオープンでなければならない。世界の政府にそう伝えよう。」

と書いてあるリンクが貼っていました。
開いてみるとGoogleの特設ページに飛んだのですが、それがこちらのURLです。

Take Action – Google
https://www.google.com/takeaction/

どうやら様々な国の政府が非公開で会合を行って、インターネットの過激な言論を規制するようにしようとしている らしいのです。

現在の中国みたいな政策を世界各国がやろうとしているって事ですね。

Googleは政府のやっている事は自由なインターネット環境を破壊なんたら~ってボロクソに批判しています。

いや~、Google先生に目をつけられたら怖いですよ。
世界各国の人がGoogleを見ていますから、政府の敵がどんどん増えますよ。

上のURLで賛成の方に意見を募っているので、賛成の方は意見を書いてみてはどうでしょうか。

tag:

VB.NETは大文字小文字の区別をしないからってBASIC風の書き方

C#は大文字と小文字を区別します。
関数呼び出しなども、大文字小文字をしっかり書かなければいけませんから、
Console.WriteLineと書かなければエラーになります。
(CONSOLEクラスを作ってWRITELINEメソッドを作れば別かも)

しかし、VB.NETは大文字小文字を区別しません。
キーワードも関数呼び出しも変数もすべて大文字小文字は区別しません。

VB.NETでは外部ライブラリの関数も大文字小文字を区別しません。

じゃあC#でAクラスとaクラスが入っている.NETライブラリを作って、
VB.NETで呼び出そうとしたらどうなるのって問題は不明です。

ちなみにMain関数も、C#では必ずMainですが、
VB.NETはMAINでもmainでもmaINでもOKです。

C系言語のキーワードはifとかwhileとか全て小文字ですが、
Visual BasicではIfやWhileなど頭だけ大文字にする仕様になっています。

しかし、デフォルトがそうなだけで、
先ほど述べたとおり、VB.NETは大文字小文字を区別しませんから、whileでもWHILEでもwHilEでも構わないわけです。

そこで、VB.NETのソースコードを全て大文字にして、
レトロなBASIC言語風の景観にしてしまおう!
ということで。

IMPORTS SYSTEM
MODULE MODULE1

PUBLIC SUB MAIN()

DIM STR AS STRING = CONSOLE.READLINE()
CONSOLE.WRITELINE(UCASE(STR) & "OMOJIIIIIIII!")
FOR I AS INTEGER = 0 TO 99
CONSOLE.WRITELINE("OMOJI!")
NEXT
CONSOLE.READKEY(TRUE)

END SUB

END MODULE

えらいことになりましたね…。
この程度のコード量なら、かろうじて読めますが、
チーム開発でこんなもん書いたら仲間にぶん殴られますよ。

コンパイルする際、頭のいいVisual Studioは
キーワードを、頭だけ大文字の表記に修正しやがったので、
仕方なくvbc.exeでコンパイルしました。

エラーはありませんでしたよ。
やはりVB.NETの仕様的には通るんですね。

実用には向いていませんが、これで初期BASICな気分に浸れます。
テキストエディタの背景を黒くしたら、なおさら古臭くなりますね。

さすがに初期BASICのようなインタプリタ型にはできませんが…。


かなり暇な方は、ぜひやってみてください。
かなり暇な方はですよ(笑)。

tag:

オブジェクト指向の世界なんていらない

JavaやC#では、全てのものがオブジェクトで出来ていて、
オブジェクト以外のものは存在しないという、
バリバリのオブジェクト指向言語です。

関数型言語は全て関数で出来ているとか、もうめちゃくちゃですね。

オブジェクト指向言語ではオブジェクトの世界みたいなものが繰り広げられちゃっています。

これらの言語では、オブジェクト指向に従うというのは絶対なんですね。

ですが、私は別にそんな絶対的なオブジェクトワールドを作らなくてもいいと思うんですよね。

オブジェクト指向はプログラムを設計しやすくするために作られた設計思想ですから、
オブジェクトの機能は、設計術という位置づけでいいと思うんですよ。


JavaやC#みたいに、そんなガチガチとオブジェクトな仕様にせず、
「オブジェクト指向で作ったら何かと便利ですよ~」っていうレベルにとどめたほうが柔軟です。

オブジェクト指向にしないほうがやりやすい処理もあるでしょうしね。

JavaやC#は、オブジェクト指向を基本中の基本としているからダメなんですよ。

まず、下層レベルに
オブジェクト指向でも関数型でもない、ありがちな言語を設計して、
その上層部にツールとしてのオブジェクト指向をのせる

のが私の理想ですね。

ハイブリッド型オブジェクト指向というか、
とにかく「絶対オブジェクトじゃ!」なんて頑固さを無くした言語を望みます。

Smalltalkはまさに頑固オブジェクト指向なので、気に食いません。

オブジェクト指向はツールとして使いましょう。

tag:

128ビット整数型はまだできんのか

64ビットコンピュータの普及が進んで、Integerが64ビットになる日も近いこの頃です。

Integer = 32ビット
Long = 64ビット

で、いままでやってきていますが、
Integer = 64ビット になると、念のため128ビット整数型をつくらなくてはなりません。

今この32ビットコンピュータでも、128ビット整数型を作っておくべきだと思うんですよ。

128ビットなんて大したサイズじゃありませんし。

.NETやJavaな話ですが、
LongからいきなりBigIntegerに飛ぶのは差がありすぎでしょう。

メモリ管理の処理を自分で実装するのは面倒くさいので、128ビット整数型を作ってくださいMicrosoft。

ところで符号無しだった場合、128ビット整数の最大値は

16進数で
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
となります。

電卓でも2 ^ 128は近似値しかだせませんから、10進数でいくらかは分かりませんね。

tag:

ブログからカテゴリ一覧を取り払いました

カテゴリ一覧がブログ上部にでっかく出ているのは邪魔だと思い、右か左に配置しなおそうと思ったのですが、
そこに配置すると見づらくなるので、取り払いました。

まぁ、カテゴリなんて「PC非関連話題」と「つぶやき記事」にしか投稿していなかったので、必要ないんですよ。

このブログのデザインの特徴として、ブログっぽくないことが挙げられます。

だいたい、ブログといえば、さらさらっとスムーズに各記事がレイアウトされますが、

このブログは、記事ごとに違う空間になっているので重量感があるんですよね。
しかも3カラムで。

メリットもデメリットもあるデザインなんでしょうけど、どっしりしたデザインですね。

tag:

[C#] 名前空間に属さないクラスを作ることができる

C#では、.NET Frameworkのライブラリは全てSystem名前空間に属していますし、
自分で作ったクラスは、既定でプロジェクト名の名前空間に属すことになっています。

見ているクラス(など)が全て名前空間に属しているので、てっきり、
必ずクラスは最低でも一つの名前空間に属さなければならない仕様になっているのかな…

と思っていたのですが、
どうやら名前空間に全く属さないクラスも作成できるようです。

この手のクラスも他のクラスと扱い方に違いはありません。

一番、手っ取り早い実験として、
Visual StudioでC#のコンソールアプリケーションを作成し、
生成されたProgramクラスを梱包している名前空間(プロジェクト名)のコードを削除してみてください。

それでもビルドエラーは無く、ちゃんと動きます。

その場合のクラス名は単純に“Program”クラスとなるようです。

いつもはプロジェクト名の名前空間が付いていますね。
(“ProjectName.Program”クラス)

ちなみに所属しないのほかに、
System.Windows.Forms.Programクラスや
Microsoft.VisualBasic.Programクラスなど、
やろうと思えば何でもできるんですよね。


いや~、今日は
C#で名前空間に全く属さないクラスをつくることができる
という記事でした。

tag:

次のページ

当ブログをご利用(閲覧等)になる場合は必ず「当ブログの利用規定」をお守りください。