忍者ブログ
RoboCup Junior Japan Rescue Kanto OB

             2005~2013
[1]  [2]  [3]  [4]  [5]  [6
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

最近この辺の言語がPC内で喧嘩してます。(主にメモリの奪い合いで)

一応実験でJava、Pythonは一度触れたことがあるように、

高専時代に全く触ったことのないプログラミング言語は少ない自分ですが、知ってる限りではR言語ぐらい?


実際にアプリケーションを作ったりだの、真面目に触ったことのある言語は高専の頃はCとPHPだけでした。BASICなんてものはない


それで5年間経っている訳なのですが、その時はそれで不便は感じなかったのですが


大学に入って早一か月。

Java、Haskell、prologの3言語が授業で出てくるの覚えることに。

サークルの方でC++を覚えることに。

そして何故かPython、Lisp、更には今週Rubyに手を出してしまい、


なにがなんだかもうわからなくなってます。

どの言語がどの記述なのかごっちゃになっていて、

今日もC++で変数の宣言せずに使っていて「なんだこのエラーは!バンバン」ってやってました。

変数宣言しない系の言語使ってると急にC系に戻った時に混乱するね(´・ω・`)



あまり同時期に複数の言語を勉強しないほうがいいよ。

今日はそういう話でした。なんだこれ。
さっきからQtをメインPCにインストールしようとしてるんだけどセットアップでいつも固まる・・・

(^・ω・)ノ RadiumProduction at curonet
話は今日の昼に遡ります。

今日は実験がありまして、htmlタグの情報抽出を行うという内容でした。

内容が内容で非常に面倒で、C言語でやるのが非常につらい、そういう内容でした。

この内容じゃ時間かかるなぁ・・・そう思っていたときふと思いつきました。


そういえば環境インストールしてマスターした気になっていたRubyって言語があったぞ・・・?

もちろん、どんな言語かなんて知りませんし、触ったこともなかったのですが、


せっかくなのでRubyでプログラムを書くことにしました。


どうやらRubyはオブジェクト指向言語らしく、知らん概念だったので非常に大変でした。

やっぱりたったの数時間で覚えようとする言語じゃないね。しかも文字列処理のシステムなんて・・・


文法もC言語に近いものでしたが、若干異なっているようで

「if文がコンパイル通らないぞ!?なに?ifの後にthen!?Haskellか?」

なんて愚痴りながらプログラムを書いてました。※Rubyはインタプリタなので、コンパイラはありません。

なーにがエレガントで自然な読み書きができるプログラミング言語じゃwww

なんて言いながら愚直なプログラムを書くだけの一日でしたね。※ただ単に文法を知らないだけ


ただ、書いていて洗脳言語といわれる所以はなんとなくわかった気がします。

若干ですが、なんでこれ使えないの?と思う場面がありました。あと標準メソッド多すぎ


まぁあまりRubyの悪口を言うと産技にまで足を運んでいただいたまつもとゆきひろ氏にも悪いので

ここまでとさせて頂きます。産技での公演は非常に参考になりましたありがとうございます。


因みにこの課題、ほとんどの学生はCで頑張って書いていたようですが、

編入組はC、Java、C++,QtC++、Python、Perl、そしてRubyと様々な言語で記述しだして

あぁ、一貫性というか、統率というか・・・取れてないなぁと実感しました。10人で7言語って・・・

8つ目に、Haskellという案も出ましたが、担当教員が読めないということで没になりました。

因みにRubyの2人とPerlの人は今日初めて触る言語に挑戦した組です。

Javaで何百行も書いていたプログラムをたったの20行でかけるRubyは素晴らしいと思いました。


それでも実験は殆どの人が最初の課題が解けず、必修課題を終わらせた人が0という悲惨な状態でした。

それでは今日はこの辺で。


尚簿記の課題は終わってない模様


(^・ω・)ノ RadiumProduction at curonet
今日は大学入って初めての工学実験がありました。

内容はプログラム、乱数というテーマで行われました。


具体的な流れとしては

1.C言語における乱数にはrand()という関数があるけど、あれは擬似乱数を生成してるだけで

 しかも精度がお察しだから使っちゃいけないよね!


2.だったらもっといい乱数生成アルゴリズムはないの?


3.そうだ!日本人が考えたメルセンヌ・ツイスターがあるじゃないか!!!



という訳でメルセンヌ・ツイスター、所謂MTと呼ばれる乱数生成アルゴリズムの解説・・・

は飛ばしまして、実際にこれを伝ったプログラムの生成を行いました。

内容は解かせる気のない選択課題は置いておいて、

それ以外の必修課題は割りとポンポンと解けるものばかりであっさりと必修は終わらせました。

僕は特別プログラムが得意な方ではないし、タイピング速度もお察しなので、

僕が終わったということはほぼ全員が時間内に終わらせたことでしょう。


それで本題は選択課題なのですが、ある選択課題でこういった内容のものが出てきました。

「前課題のプログラムを出来る限り高速で実行できるものにせよ。」

MTのプログラムの改変はなしという条件がありましたが、まさかこんな課題が来るとは・・・


実行時間が高速になった場合は評価をプラスするとのことで、

50~150秒、30秒~50秒、教員の限界~30秒、~教員の限界

の4段階で追加得点が課されるとのことでした。
この実行時間が実時間なのか、システム上の計測時間なのかは不明ですが・・・


開発環境が統一されていなので(PCは統一されていますが)

正直あまり評定として意味があるとは思えないようにも思えた内容でした。


それで、僕なのですが、まず、高速化前の前課題のプログラムを実行してみます。

・・・42秒。


僕のプログラムは何が間違っているんでしょうか?

何もしてないはずなのに42秒出してしまいました。

結果に間違いはないし、何度見なおしてもおかしいところはありません。

周りに実行時間を確認したところ、「5分はかかるよバーカ」と一掃されました。


と、いうわけで。30秒切ってみることにしました。



ところが、まぁ色々と自分の知識とかあれやれこれやらぶち込んで見た結果


・・・41秒。

うん。これ無理!


という訳で42秒で諦めました。30秒切る人間はバケモノってことで。



そんな話をしていたら帰り道に編入仲間から

「最適化-01使った?」と聞かれました。



忘れてました、痴呆誕生の瞬間です。

最適化というものを根幹からすっかり抜けていました。そういえば指定してませんね。


ここでいう最適化というのは、普通にCをコンパイルすると、

実行時間とか使用メモリとかをあえて多めに取るように設計がされているのですが、

コンパイラに最適化設定をしてあげるとそこの部分を極限まで削ってくれるというものです。

勿論するとしないでは実行時間に大きな差が出てくるわけです。

・・・。

開いてる時間に学校のPCでもう一度試してきます。



というのが今日のネタです。それでは今日はこの辺で~。

(^・ω・)ノ RadiumProduction in RoboCup Junior

4/22追記:-O2でコンパイル掛けたら28.011sになりました。
-O3で試すともっと早くなる気もするけど面倒なのでもうういいです。
以前に某大学の推薦受験の話を記事にしたことがありましたが、

どうやら予想外に反響が大きかったようで全国の高専の受験生(予定)の皆様から詳細を・・・

という連絡が寄せられています。


この件につきましては、そのうち順順に返事返していこうと思いますのでよろしくお願いします。


そして今日は全く別の話ですね。

最近は本当に課題が多くて何が何だか。前回ちらっと書いた例の課題14コンボは絶賛継続中です。

それどころか、追加効果発動で14どころか20コンボ近くになっているような気がします。


んで、その中にFPGAのシミュレーションの課題があって、仮想で簡易的な計算機を作っています。

本来ならこの課題はこのシミューレーターを作った後で適当に機械語のdatファイルを置き、

それを読み込ませて動作テストをするのですが、

任意の追加課題として、ASM命令を機械語に落とすアセンブラを作るというものがありました。


今回はちょっと時間もないし、追加の方はスルーする予定だったのですが、

よく考えて見れば結構簡単に書けることが判明したのでちょっと書いてみることにしました。
べっ、別に本家の課題がうまくいかないから追加課題だけやって誤魔化そうとしてる訳じゃないんだからねっ!


という訳で昨日の夜にささっと書いてしまいました。

プログラムの内容としては、

・コマンドラインからファイル名を受け取って中身のデータを読み取る
・機械語に変換する
・imem.datファイルに書く


内容としてはこれだけです。

コンパイラのようにASMの記述ミスに対するエラー文を追加したので

その部分の表示にちょっと手間取りましたが、上手く動いているようです。


という訳で追加課題が終わったのですが・・・。

肝心のFPGAのシミュミュレーターは動作しないまま・・。・できないというよりまだ手を付けてないだけですけど。


さて、このアセンブラ。一体どこで使うんでしょうね()。

終わらない課題の日々は続きます。

(^・ω・)ノ RadiumProduction at curonet
東東京ノード以降、単位との戦いが繰り広げられています。

あれから3週間が経ちましたが、勝敗の行方は未だにわからず、卒業できるかも謎のままです。



単位を落としかけたり拾ったり、落としかけては別の単位を拾ったり、ここ暫くはそういうことの繰り返しです。


それで、今落単筆頭の科目にデータベースという科目があるのですが、

今日はちょっとその科目について少し書いていこうと思います。

データベース。

まぁ所謂リレーショナルデータベースを学ぶことになる、情報科ではよくありがちな、

かつ産技高専情報科では珍しく情報科らしい授業です。


基本的にはSQL及びテーブル正規化などについて学ぶことになる授業なのですが、

我らが産技情報がそんな覚えゲーで生まれる単位など作るはずもありません。

この授業の根幹はぶっちゃけデータベースなどではなく、アプリケーション開発になります。


会社のプロジェクトを模した形で班でひとつアプリケーションを作成するいうものなのですが・・・。


プログラムはあまり得意な方ではないので、データベースならまぁ事故ることもないだろうと思っていたら

まさかまさかのプログラム地獄、しかも何をトチ狂ったのかチームリーダーにさせられてしまい、

もうそっからは大変な事に。

作るアプリケーションは教師側から既に与えられていて、

うちの班はBluetoothを用いた出欠確認アプリケーションとなっています。


Android端末を用いて、教室内にあるクライアントにBluetoothで出欠データを送信して

データベースで管理しWEBで出欠情報を閲覧できるようにする。というのが概要です。

やること自体は難しくありません。というか上記したこと以外にやることがないですね。

期間は5ヶ月。これだけあれば恐らくこのブログの常連さんならあっさり書けてしまうのでは無いでしょうか。



ところがどっこい。

訳あってうちの班は来週発表のこのアプリケーションをなんと先々週まで全く手付かずにきてしまったのです。

理由は簡単。時間ない。


受験が終わっていない人もいる上、基本的に多忙な面子が集まってしまい、

そもそもリーダーの僕が高専祭だのロボカップ運営だの留年の危機だのなんだのとやっていたら

気がついたらもう12月。


その結果が今です。12月入ってからの徹夜回数がもうおかしいです。6~7回かな?

1日で 全てのプログラム 完成、1日でデバッグ、仕様変更でまた1日で全てのプログラム作成、1日でデバッグ・・・

という意味不明な時期もあってかようやく昨日、プログラムが全て終了しました。

今日テストをやって、なんとか動いていることが確認出来で一安心。

ここからはプレゼンのレジェメとパワポとアプリケーションの仕様書を書かないといけません。

さて、ここで問題です。私は今月後何回徹夜をするでしょうか?



正解は年明けの後で!



スイマセンほんともう何考えてるのかよくわかりません・・・orz

(^・ω・)ノ RadiumProduction at curonet


という訳で今日はそんな記事です。

産技高専では様々な授業や実習でプログラミングを学びます。

なので高専にいればまぁ何種類かのプログラミング言語は書けるようになるのですが・・・。

どうにも齟齬が発生してしまったようです。


というのも、我らが産技高専で学ぶことの多い2つの言語といえば

1.C
2.Java


ですね。ぶっちゃけこれ以外は殆どやりません。昔はC++やってたらしいですけどね。


ところが、僕が一番使うプログラミング言語といえば

1. PHP
2. BASIC

という有り様です。

はっきり言ってCは苦手ですし、Javaに至っては「書けるけど意味不明」レベルです。

そもそも組み込みやってるはずの人間がPHPメインで書いているというのもどういうことなんだという話なのですが


実際そうなんです。

よく考えるとロボットとかよりPHPとかのWeb関連のほうが手を出してる歴も長いし内容も多いですね。


これで卒研組み込みやってるんだから驚きですね。さて一体僕はどこに向かっているのでしょうか。

 (^・ω・)ノ RadiumProduction at curonet 

端的に言ってやること大すぎ。完全に参っちゃってます。

実験のプレゼンや各種レポートなどが終わっても忙し時期が続きます。


現在やらなきゃいけない項目としては・・・


・BlueToothを使用したWebアプリケーションの開発

・Androidアプリの開発×2

・強化学習によるロボットシミュレーションプログラム

・なつやすみのじゆうこうさく


工学関連の内容で言えば大きくはこの5点でしょうか。

正直どれもこれも夏休み丸々使っても終わるか怪しい内容のはずなのにそれがこんなに。


今年のは夏は完全にオーバーフローしちゃってます。こんなに沢山プログラム書いてたら死んじゃうぞ・・・。


強化学習のプログラムに関して言えば、学習のプログラムは昨日一日で書けたので、

後はLineSimulatorのプログラムを流用すれば完成。

これはまぁなんとなかったのですが、後はもうどうしようもない感じです。


睡眠時間を削る以外に有効な対策は無さそうな感じですかね。という訳で今日はこの辺で。

(^・ω・)ノ RadiumProduction in RoboCup Junior
さくら荘の2クールは予想の斜め上だった・・・。

今日は何の日?TOEICの日!SAN技品川にとって12月25日は毎年恒例のTOEICの試験日です。

1、2年はGTEC3年はぶりっぢ。そして4年はTOEICです。

単位掛かってるのでまじめに勉強する予定だったのですが、何すりゃいいかわからなかったので結局ノータッチです。


とにかく今回の目標は2単位の習得ラインである390点を超えること。

只でさえ低い高専平均より更に低いSAN技高専の平均は200点あるかないか。噂によると2桁が出たこともあるそうです。

そんな我々から390点なんてまぁ出たら奇跡にほど近いものなのでしょうけどね。


そんな高みを目指すために今回はある作戦を立てました。

それは、試験中寝ないこと。

色々と突っ込みどころがあるかと思いますが、TOEICは約2時間の長丁場。過去の経験上確実に堕ちます(笑)

その為にも集合より2時間も早い11時に学校に登校し(13時集合)、

電気通信部の写真撮影に参加し、部員半分以上いなかったけど!

眠気を完全に断った状態で臨みました。


勿論結果はわかりませんが、わかんなくてテキトーに書いた所はひとつもなかったので

産技平均よりは高いことを期待しています。今まで半分寝て半分テキトーで産技平均取れてたからなぁ・・・。


と、前書きはここまでにして。

Androidプログラムですが、紆余曲折あっていよいよ真面目に書き始めました。

このブログでは触れてないですが、環境設定(特にエミュレーター!)の設定に大分時間がかかり、

挙句容量不足だの環境変数変わってるだの事故が多発して

最終的にPCが一度お亡くなりになったので家のメインPCで設定しなおして・・・。なんてことをしているうちに年末に。


ようやくEclipseもいうことを聞いてくれるようになったのでなんとかプログラムをかけています。
今思えば単にあのびすたんがいけなかっただけのような気もするのですが・・・。

ところがここで問題発生。

只でさえJavaは得意ではないのですが、Androidアプリ作成にはもうひとつ必要な物が。

それがXML。まさか全体構成はXMLでやってるだなんて・・・。HTMLならわかるんだけどなぁ。

なんとここで僕がXMLはからきしダメだという事実があるせいでいくらJavaで書いても先に進めなくなりました。

あぁ。ここでまた自然言語以外の習得言語が増えるのか・・・。一体いいくつやればいいんでしょうかねぇ。


前途多難。とりあえず今日はこの辺で。

また、DropBoxを始めてみたいという方は此方のリンクから行っていただくと、500MBサービスされるらしいです。

(^・ω・)ノ RadiumProduction in RoboCup Junior
いよいよ時間がない。今日は終止滅茶苦茶なことをやっていたように思えます。

昨日の動作不良の原因であるメモリ不足の対策やら何やらでずっとプログラムです。


もうあんなことは二度としたくない・・・と思えるような作業の末に

メモリ領域を実質2倍に拡張することに成功、難を逃れました。


でも、プログラム自体は進んでいません。未だに缶は掴めそうにありません。

去年のLα+もライントレース制御はキチガイと言われるものでしたが、

ここ暫くのプログラムは、その去年からしても考えられないくらいぶっ飛んでいます。


行数的の表記しますと、去年のらぷが約2000行なのに対し同等の動きをする・・・

というか、コピペしたはずのプログラムが動作そのまま、行数半分になっています。

一体どうしてこんなことになってしまったのか。嵐のようなプログラムの作成作業は続きます。


また、DropBoxを始めてみたいという方は此方のリンクから行っていただくと、500MBサービスされるらしいです。

(^・ω・)ノ RadiumProduction in RoboCup Junior
やばい。


何故かロボットが動かなくなりました。どういうことなのでしょう。


とりあえずなんとかプログラムの方に原因があるのは分かったのですが。容疑者の発見には至っていません。

そもそもさっきまで動いてたんだからそんな前の変更ではないはず・・・まさか容量か?


なんてことを考えている今日この頃。今日中にはなんとかします。延滞。ダメ、絶対


追記:原因判明、なんと只のメモリ不足

また、DropBoxを始めてみたいという方は此方のリンクから行っていただくと、500MBサービスされるらしいです。

(^・ω・)ノ RadiumProduction in RoboCup Junior
予想していた流れではあるのですが、今度の研究室ではJDKでAndloidアプリを作ることになりました。

いつぞやの動物将棋を比べると格段にレベルが下がっているような気もするのですが、その辺りは気にしない。


要するに、JAVAでどうたらこうたらやれということです。あぁ。面倒くさい・・・(苦笑)

題目については今回は自由。4人中の3人がやることになって、3人ともバラバラに別個のアプリを作ることになりました。


つまり、何を作るかから決めないといけないということです。

でもこれが異常に難しい・・・。簡単なものはまず不可。でもゲームなどを出すと研究室的に体裁が悪い・・・。

そこそこに難易度が高く、尚且つ研究の発表としてドヤ顔ができるようなアプリ・・・。


それを考えてはや2週間。正直殆ど何もやっていません。

目的だの製作背景だの、制作方法だの、と色々なお題目をでっちあげないといけないのですが・・・間に合うかな。


とりあえずノードが終わってからでいいや。という結論に至った今日この頃でした。


また、DropBoxを始めてみたいという方は此方のリンクから行っていただくと、500MBサービスされるらしいです。

(^・ω・)ノ RadiumProduction in RoboCup Junior
カレンダー
03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
最新CM
[05/09 ONE RoboCuper]
[05/07 HDD ほしいよー]
[04/21 ブラック3辛]
[12/26 bols-blue]
[06/08 ONE RoboCuper]
かうんた
カウンター カウンター
らじぷろ目次
らじぷろ検索機
プロフィール
HN:
Luz
性別:
男性

PR

忍者ブログ 2007-2021,Powered by Radium-Luz-Lα+-Rescatar in RadiumProduction [PR]


Related Posts Plugin for WordPress, Blogger...