高専をやめる話
こんにちは Twitter上でも書いてましたが,私は高専を3月末で退学します.
退学Advent Calendarなるものがあるらしいですがまだ退学したわけではないので登録してません.
退学する理由,および現状など書きます.
なお、この記事はあくまで私の個人的な意見や偏見に基づくものであり、某高専の学生を代表する意見ではないことにご注意ください.全体的に私がアウトローであるので,他の人は違う可能性が大いにあります.
また、この記事を鵜呑みにすることはおすすめしません.
I'm in 高専
入学前
親父の影響で昔からコンピュータに触れており,将来はサーバーインフラを扱う仕事に就きたいと思っていた
中3の時、普通科高校に行くか工業高校に行くか高専に行くかという選択肢があった 早く学んで社会に出たかった私は高専を選んだ
学科はオープンキャンパスへ行った際に,"コンピュータ"を学べるという触れ込みをしていたところがあったのでそこにした
数学が苦手だったので英語を得点源とする意味不明な方針で受かった
入学後
学年が上がるごとに専門科目が増えるという説明があった
一年生の段階では、「C言語の授業があるのでここから情報系の授業も増えていくのだろうな」と考えていた
二年生になると"工場実習"が時間割に登場した しかし情報系科目(1科目)はいまだC言語を扱い続け、何かがおかしいと思い始めた*1
かねてより興味があった高専プロコンに参加した 三年生の先輩が一緒のチームになったが,習っているはずのCですら私よりも書けない人しかいなかった
三年生になると"材料力学"が増えた
ここで中学校の時の学科選択のミスを悟った
つまりこの科はロボットに搭載する"マイクロコンピュータ”を制御する科であり、ぶっちゃけた話が,計算機工学関係の授業はほぼおまけのようなものだったのだ
受けたかったカリキュラムなど存在しなかったのだというショックから、学校へ行く気力もなくなり、大学への進路変更を考え,親および担任に相談した
相談した結果,というより自分でいろいろ考えた結果,3年で高専をやめ,他大学の情報工学科へ進学しようということになった(した)
そして現在に至る
高専中退勢にとって受験は大変だ
高校の学習指導要領が適用されない高専では,一般科目を浅い部分しか取り扱わない
数Iの「集合と論理」,数Aの「確率」,数Bの「確率分布」,有機化学,世界史,地学などは習わない*2
他の範囲も極めて浅い部分しか学習しない
したがって受験勉強は高校3年分を半分ほど独学でやらなければならない
模試の成績が振るわず,ほぼ一浪が決まっているがこれからどうなるかは私にもわからない
最近はモンハンのナルガクルガが非常に可愛く見えてきて,擬人化してお嫁さんにしたいと思っていたりする
やっぱりナルガはカワイイなぁ
— Gedyra (@Gedyra) 2014, 12月 6
いやほんとにな、ナルガっぽい耳の生えた黒髪の赤目のお姉さんがおったらどんな手を使ってでもお近づきになるけどな
— Gedyra (@Gedyra) 2014, 12月 6
私は進学先に希望を持っている
しかしいろいろ調べてみたところ,大学でも普通科高校からの進学者が多いために講義の内容が低レベルであることが多いらしい(大学による)*3
結局自分のレベルでやっていくには独学が一番良いということがわかりつつある
それでも進学すれば高専にいるよりは少しはマシになるだろう たぶん
中学の時に高専へ行かない道を選んでいたらどんな人生だっただろうか
想像するだけ無駄である
高専を目指している人たちへ
まずは自分が本当に高専で学習するべきなのかを考えましょう.
ただ「校則がゆるいから」*4という理由で目指すのはおすすめしません.なぜなら高専ではとにかく専門科目に重点を置いており,授業の内容がそれなりに好きでなければやってられないからです.レポート*5も学校や学科によって違いますが非常に多いです.私のいる学科では週1手書き10枚がザラです.*6
このへんは近くの高専生のおにいさんおねえさん方へ聞いてください.なるべく多くの人に聞くのがよいでしょう.
中学校の先生の話は正直信じないほうがいいです.
また,高専の授業は人を選びます.あわないと思ったらその時から3年次での進学を考えましょう.
— Gedyra (@Gedyra) 2014, 12月 2
なお,高専は,「数学および物理の高校の範囲を2年間で終わらせる」と宣伝していることがありますが,授業の内容を薄くして終了を早くするという仕掛け*7を使っているので,授業で全ての範囲を網羅するわけではありません.注意しましょう.
学科選びの際にはシラバス(授業計画表)を見ましょう.
たいていの高専ではシラバスをweb上で公開しています.
どの学科がどの教科でどんなことをやっているのかがよくわかります.
「情報系の授業を求めて来たのに,カリキュラムに組み込まれていない」ということが防げます.
自分の学びたい分野と学科の授業がマッチしている高専生は最強です.
Androidを英語設定にしたまま日本語をきれいなフォントで表示する
2016/05/26 追記
シンタックスハイライトとか要らんやろみたいなあたりをどうにかしたり常識の記述をどうにかした.読み直すとパーミッションnoobだったためなのか,chmod 777とかやってて完全にガバガバなのでもう少しどうにかならんかったのかという感じです.つか書いてからもう2年弱経ってるので信用しないほうが良いです.
追記ここまで.
お元気でしょうか
私は死んでます
久しぶりにこういう記事書くので緊張している
そもそも
英語を勉強している人に携帯を英語表記に設定している人が多かったのでまねしようとしたら,日本語フォントが中華フォントになった
しかし,Androidに対する知見が少ないために,元のフォントに戻す方法を知らなかったので調べた
手順
前提
- root権限取得済み
- adb shellを使える状態
- 2014/11/11現在の情報 今後xmlファイルの内容が変更される可能性がある
環境として Galaxy Nexus(SC-04D)/ParanoidAndroid 4.6-BETA6 を用いた.
前座
Androidがフォントの読み込む際,優先順位は
/system/etc/fallback_font.xml
に記述されている順である.
システム言語が英語に設定されている場合,最下部には
<family> <fileset> <file>DroidSansFallback.ttf</file> </fileset> </family> <family> <fileset> <file lang="ja">MTLmr3m.ttf</file> </fileset> </family>
と書いてある.通常,日本語設定では
<file lang="ja">MTLmr3m.ttf</file>
が読まれ,日本語はきれいなモトヤLマルベリ3等幅でレンダリングされる.
しかし,英語設定の場合ではその上の
<file>DroidSansFallback.ttf</file>
が読まれ,クソみたいなフォントでレンダリングされる.
今回はこの記述を改変する.
リマウント
通常ではAndroidの/systemは以下のパーミッションでマウントされる.
$ ls -l ... drwxr-xr-x root root <タイムスタンプ> system ...
そこで,
$ su # mount -o rw,remount -t ext4 /dev/block/foobar/system /system
これで/systemをいじれるようになった.
なお,ファイルシステムおよびfoobarの部分は引数なしのmountで確認できる.
この状態で放置するのはかなり恐ろしいことのような気がする.インターネット接続を切断しておいたほうが良いかもしれない.
ファイルいじり
目標のファイルは/system/etcにある.
# chmod 777 /system/etc
を叩いて/system/etcを読み書きできるようにする.モード指定は755でも差支えないだろう.
ちなみにadb shellでは文字列によるモード指定は使えないようである.*1
次に目標のファイルをPC上に持ってくる.別のコマンドプロンプトで
>adb pull /system/etc/fallback_fonts.xml
を叩けば,adbを動かしているフォルダ(この環境ではsdk/platform-tools)にファイルがコピーされる.
これをエディタで開いて最下部を見ると,冒頭で書いたようになっている.
<family> <fileset> <file>DroidSansFallback.ttf</file> </fileset> </family> <family> <fileset> <file lang="ja">MTLmr3m.ttf</file> </fileset> </family>
これを,
<family> <fileset> <file>MTLmr3m.ttf</file> </fileset> </family> <family> <fileset> <file>DroidSansFallback.ttf</file> </fileset> </family> <family> <fileset> <file lang="ja">MTLmr3m.ttf</file> </fileset> </family>
とすれば,モトヤマルベリがDroidSansFallbackよりも先に読み込まれる.
後片付け
先ほど編集したファイルを元の場所に戻す.コマンドプロンプトで,
>adb push fallback_fonts.xml /system/etc
とした後,ファイルの属性を整える.
# chmod 644 /system/etc/fallback_fonts.xml # chown root.root /system/etc/fallback_fonts.xml
/system/etcも元に戻す.
# chmod 755 /system/etc
再起動
# sync # reboot
終了
調べるのにめっちゃ時間がかかった
2年位前まではfallback_fontsは言語の種類だけあったらしい(言語設定によって変わっていた?)が,今は一つのファイルに集約されているので混乱した
ちなみにキャリア公式のロムなら/system/vendor/の中にもあるらしく,そこも書き換えなければならないらしいのでめんどい
ここまでするならむしろ普通に英語勉強したほうが良い
PCK2014
パソコン甲子園出場者のみなさん,お疲れ様でした
本選出場者のみなさん,頑張ってください
俺はもう疲れたよ...
5問目がボーダーかと思ってたら実は4問目がボーダーだったみたいですね
1問目 問題印刷中に解法を言われてマジで焦る
というか開始3分位でacceptもらってる団体どういうことだよ
2問目 えっこれはなんかえらく簡単ですね
3問目 あっ!この問題過去問でやったことある!→WA1回
ここまで10分
4問目 なぜかWA.飛ばす→ 最後の一時間をすべて注ぐものの完全にダメ
5問目以降 !!??!?????
相方が3ヶ月前までプログラミングの初心者だったのに,当日には1問目を見た瞬間に解法を言ってくれるくらいに成長していたので最強
俺は結局探索を身につけられなかったので雑魚
おかげで5問目以降すべてできなかった感じになった
しかしなぜ4問目でWAが出るんだ...ここで解けていたら激本戦出場ユウテワンチャンアルッショコレ状態だったんだが
実力不足が否めない
おわり
文字列処理できない雑魚
それは私のことだ
C++のコードでは暗黙にusing namespace stdです,あとmain関数は省略
おおよそここから引用しました*1
復習
Cで文字列を扱うとき
#include "stdio" char s[100]; scanf("%s", s);
のようにする
使えそうな関数
stringではいろいろ関数が使える
ここでは競技プロコンで使えそうなやつを列挙
#include <string> string str = "hoge"; int a = 0; bool b; a = str.length(); //aに文字列の文字数を格納 a = str.size(); //上と宣言まで同じ 使い分けはよくわからない b = str.empty(); //空の文字列かどうかを判定 str.reserve(new_size); //文字列をnew_sizeに変更(new_sizeはsize_type型)
ちなみにsize_type型ってのは大抵size_t(unsignded int)らしい*2
文字列から数値への変換はいろいろありすぎて書くのが面倒くさい
<cstdlib>のatoiとか<sstream>のisstringstreamとかいろいろあるらしいが詳しい使い方はよくわかりません*3
おわり
なんかしらんが最近他の高専の方々とつながりができた,たのしい
夏ですね
おはようございません
パソコン甲子園予選が2週間後に迫る中,みなさんいかがお過ごしでしょうか
模擬予選をしたが4問しか解けずこれで大丈夫なのかという感じ
今年が地元(から半径30km以内)で浴衣JKを見られる最後のチャンスだったけど見られなさそうだしつらすぎる
浴衣JKを地元(の近く)で見られる最後のチャンスだ
— hoge (@Gedyra) 2014, 8月 28
浴衣JKで私と水郷祭に一緒に行ってくれるという奇特な方はいらっしゃいませんでしょうか
— hoge (@Gedyra) 2014, 8月 28
やっぱみんな交通費が大変とのことですね
— hoge (@Gedyra) 2014, 8月 28
どう考えても後者の日本語がヤバイ
引っ込み思案を治したい
コーディング速度を鍛えたい
以上
あ,マーニー最高でした 原作ほしいです
9/2追記
いろいろあったが浴衣JKと祭りに行けた
まあとにかく浴衣JKと祭りを歩くという目標は達成できました、ありがとうございました
— hoge (@Gedyra) 2014, 8月 30
初めてのPythonと動的型付けについて
テスト中だがPythonやってみようと思った
python、簡単な処理書くのだとCとかより全然楽だし最高
— hoge (@Gedyra) 2014, 8月 2
C言語でHello worldしようとすると
//C言語 #include <stdio.h> void main { printf("Hello, World!"); }
という感じだけど、Pythonなら
#Python print "Hello,World!"
これだけでいいらしい
この手軽さは非常に良い、The スクリプト言語という感じ
ところがどっこい
Cは静的型付け、Pythonは動的型付けだったのだ!
いままでずっと静的型付け言語ばかりを触っていたために、動的型付けの書き方に慣れない
wikipediaによれば動的型付けとは、
プログラミング言語で書かれたプログラムにおいて、変数や、サブルーチンの引数や返り値などの値について、その型を、コンパイル時などそのプログラムの実行よりも前にあらかじめ決めるということをせず、実行時の実際の値による、という型システムの性質のことである。*1
らしい
たとえば、
//変数hogeに標準入力から整数を代入 int hoge; scanf("%d", &hoge);
みたいなことするときに、Pythonだと
#変数hogeに標準入力から”何か”を代入 hoge = raw_input()
になる
変数hogeの型はプログラムの実行中に決まるので、上ではraw_input関数からの戻り値によって変化する
つまり、raw_inputから値が来るまでは、hogeは文字列である可能性もあるし、数値である可能性もある
ということは、コーディング中に常に変数がどんな型をとっているのかを意識しないといけない気がする
そもそも変数の型が最初から決まってないのが非常にむず痒い、宣言がないだけでコンパイルできなさそうな気さえしてくる*2
しかし宣言文が無いことでコード自体は短くなるし、これに慣れればコーディングも短い時間でできるような気がしなくもない(憶測)