Archive

Archive for May, 2011

Objective-C Basic knowledge

May 30, 2011 Leave a comment

This is small thing that i learned today while riding the train to buy some instant noodle in other town ^^.

From the Object Oriented Programming perspective, There is some difference between Objective-C and and other languages such as that derived from Simula, like C++, Java and C#. For non object operations, Objective-C are identical with C.

In objective-C, we don’t invoke a method, but instead send a message. Invoking a method implies that you know something about that method, while Sending message leaves it up to the message to figure out what to do with it.

This make Objective-C loosely coupled, that  make it much more dynamic at runtime than simula derived languages. In simula derived language you must know the type of an object before you can call the method. While in Objective-C, you simply send object with a message, then the receiving object try to interpret that message. In this case there is no guaranty of response, if Object doesn’t understand the message, it will return “nil”.

The other difference is in the way memory is managed. in Java there is Garbage Collection to handle memory management. Garbage collection frees the developer from manually managing the memory, but it routine consume additional computing resource.  Objective-C using “Reference counting”. This is a form of garbage collection, which count the number of reference to an object and frees the associate memory when the number of reference reach zero. The main advantages of reference counting over classic garbage collection is that memory is freed as soon as it no longer in use.

Almost Objective-C applications (Iphone Apps), uses Model-View-Controller (MVC) pattern. Rather than encouraging us to create subclass, MVC make use of delegate classes. MVC divide application into 3 functional pieces:

  • Model : Manage the application state and associate data. it’s entirely decoupled from the UI or presentation of application state to the user
  • View : is what user sees, and it displays the model for the user. It allow user to manipulate it and respond, and generate events
  • Controller : coordinates update of the view and the model when user interaction make changes to the model, and vice versa

Basic Objective-C Syntax :

Variable declaration look much same as other languages, method call are surrounded by square bracket.  For Example:

[anObject someMethod];  // The someMethod message is send to the anObject object.

[anObject someMethod : anotherObject]; // The someMethode message is sent to the anObject object and passes anotherObject as an argument

Categories: Iphone, Programming

L-プロット v1.0

May 29, 2011 Leave a comment

第一幕 発端

11歳の時に、事故で家族を失った男子高校生、沢村ヒカルは、一緒に住んでいる叔父の仕事の都合で、東京に転校した。叔父・木村は、大阪にあるノートパソコンの会社の本社部長だったが、東京の支社で問題が起こったため、解決のため転勤することになった。ヒカルは家族の死後、あまりの悲しみの深さに、誰とも話さなくなった。叔父は、ヒカルにノートパソコンを買い与え、パソコンに関する様々なことを教えた。ヒカルはパソコンのことを勉強するようになり、今では様々な知識をもっている。

新しい高校で、ヒカルは春日野サクラに出会った。サクラは、クラスのリーダー的存在で、空手サークルのメンバーだ。サクラは、ヒカルを連れて、学校を案内した。空手サークルを案内したとき、足立正生というサークルで力が一番強い学生に会った。サクラは正生のことが好きなので、話すときにドキドキして、メチャクチャな話をしてしまった。

 

第二幕 展開

ある日、2年生が3年生たちにいじめられていた。サクラはその3年生と対決して、2年生を助けた。ヒカルはそれを見て、サクラに対する印象が変わった。空手にも興味があったため、空手のサークルに入って、先生やサクラに空手のことを学んだ。サクラは、パソコンのことが分からなかったので、よくヒカルに聞いた。そのころから、ヒカルとサクラはよく話して、親しい友達になった。

あるとき、サクラはヒカルに正生のことを話した。彼女は、正生のことが好きだと言った。しかし、どうやって正生に伝えればいいかが分からなくて、悩んでいた。ヒカルはサクラのことが好きになっていたので、その話を聞いて、びっくりした。しかし、彼女の幸せのために自分の気持ちを伝えないで、友達として、アドバイスをした。ヒカルのアドバイス通りに、サクラはあるチャンスに正生に自分の気持ちを伝えた。しかし、残念なことに、正生は勉強と空手のことにしか興味がなかった。サクラはがっかりした。ヒカルは悲しむサクラを慰めた。

また別のある日、2年生をいじめた3年生たちが、サクラとけんかした。人数が前回よりもっと多かったので、サクラは負けた。ヒカルはサクラを助けようとけんかに加勢したが、腕力が足りず、大怪我をしてしまった。そのとき、サクラはヒカルのことをだんだん好きになっていることに気付いた。

高校卒業後、二人は同じ大学に進学した。あるとき、ヒカルは自分の気持ちを伝えた。サクラもヒカルのことを好きになっていたので、ヒカルの気持ちを受け入れて、恋人になった。サクラは、ヒカルを家に誘って、家族に紹介した。サクラの父は、ヒカルの家族が事故で死んでしまった話を聞いた。彼は、数年前の事故を思い出していた。会社から家に帰る途中、眠くて、体も疲れていて、交差点の赤信号が見えなかったため、他の車にぶつかって、その人たちを死なせてしまった。しかし、その人たちがヒカルに関係があるかどうか分からなかったので、その時は、ヒカルになにも言わなかった。

後で、そのの事故について調べて、死んでしまった人たちがヒカルの家族だったということが分かった。父は、そのことをサクラに話した。彼女はびっくりした。そして、ヒカルにそのことを話すべきかどうか悩んだ。サクラは恋愛関係を築くために、正直さは大事なことだと思っていたので、ついに、ヒカルに事実を話した。ヒカルはその話を聞いて、非常にショックを受けた。サクラと顔を合わせるのがつらくなって、付き合いは終わった。

偶然、大学の先生からヒカルに連絡があった。アメリカに2年間留学する奨学金があり、なかなかいいチャンスだとのことだった。ヒカルはその奨学金の試験を受けて、合格したので、アメリカに行った。アメリカで留学生活を送るうちに、だんだん心の痛みが薄れた。そして、サクラのことをまだ愛している自分に気づき、日本に戻ってサクラに会おうと決心した。日本でサクラに会ったが、彼女はもう正生と結婚していた。

ヒカルは、悲しみのあまり絶望し、自殺しようかと考えていた時に、叔父に会った。叔父は、ヒカルに父親の遺言(ゆいごん)を伝えた。それは「私達がいなくなっても、人生が大変でも、生きて、幸せになってください」というものだった。その言葉を聞いて、ヒカルは自殺を思いとどまった。

 

第三幕 結末

サクラと彼女の父は、ヒカルのところに行く。サクラは、悲しむヒカルを慰め、父はヒカルに謝った。皆がヒカルを助けようとしてくれるので、ヒカルは嬉しく思った。ヒカルは、父親の遺言を実現するために頑張った。まず、叔父が勤めている会社で働いた。職場でサクラのような女性を見つけて、結婚した。部長まで昇進したが、まだ満足できず、独立(どくりつ)して自分の会社を興した。その後、ヒカルの会社は、世界でも有名なソフトウェアを作る会社になった。

 

Unity 3D and RakNet 4

May 29, 2011 12 comments

Several days ago I tried to Connect Unity 3 (Client)  and RakNet 3.731  (Server) for my research project. When I read the server log, there is some message ID that was send by Client,  that was not recognized by Server.  ID “131”, I couldn’t find it in the RakNet Library Code. Maybe something has change in the Unity’s RakNet (that’s what I thought). then I tried to find a way how to make the server and the client can use the same RakNet Library. There is away to do that, but I need Unity Pro in order to load RakNet Library that is coded in C++.

I didn’t satisfy with that way, so i tried to find other solution. yeah with unity regular I still can load C# dll. With “Swig”, I can generate C# dll from c++ project. that’s amazing ^^. So this is the way :

For Client Side (Windows):

  1. Download Unity 3, RakNet 4, Swig
  2. Generate the Swig files
    1. Open the windows terminal
    2. Go to RakNet Swig directory
      cd C:\RakNetDirectory\DependentExtensions\Swig
    3. execute swig command (I followed this turorial)
      C:\Swig\swig.exe -c++ -csharp -namespace RakNet -I”PATH_TO_RAKNETSOURCE” -I”SwigInterfaceFiles” -outdir SwigOutput\SwigCSharpOutput -o SwigOutput\CplusDLLIncludes\RakNet_wrap.cxx SwigInterfaceFiles\RakNet.i

      • “PATH_TO_RAKNETSOURCE” is the source code directory of raknet (c++ code)
      • That command will generate c# code and RakNet_wrap.cxx that will be needed in the next step
  3. Create the C# DLL. I used Microsoft Visual Studio 2008 Express Edition with Service Pack 1, CodeBlock user maybe will have little problem with “integer data type”.
    1. Create CLR empty project
    2. Import RakNet source files with “Add Existing Items”
    3. Import RakNet_wrap.cxx with “Add Existing Items”
    4. Setting the Project Properties
      • Common Properties
        Target Framework : .NET Framework 2.0
      • Configuration Properties
        • General
          Configuration Type : Dynamic Library (.dll)
          Character Set : Not Set
        • C/C++
          • General
            Additional Directory : C:\PathToRakNetSource
          • Preprocessor
            Preprocessor Definitions : WIN32;_DEBUG;_RAKNET_DLL
          • Code Generation : Multi-threaded Debug DLL (/MDd)
        • Linker
          • ws2_32.lib $(NOINHERIT)
    5. Build C# DLL
  4. Create Unity Project
  5. Copy DLL and C# files to Unity Project directory
  6. Maybe RakNetListRakNetSmartPtrRakNetSocket.cs need to be remove from project
  7. Load DLL with Unity C# Script
    This is Example how to perform connection :
    using UnityEngine;
    using System;
    using System.Collections;
    using RakNet;
    public class ConnectGUI : MonoBehaviour {
    public static string remoteIP = “127.0.0.1”;
    RakPeerInterface myClient;
    SocketDescriptor scktDist;

    void Awake() {
    myClient = RakPeerInterface.GetInstance();
    scktDist = new SocketDescriptor();
    myClient.Startup(1,scktDist,1);
    }
    void OnGUI(){

    // if not yet connected
    myClient.Connect(remoteIP, 25000, “”,0);

    }
    }
Categories: Game and CG, Research

~に反して、~一方だ

May 22, 2011 2 comments

Level : Intermediate (中級)

~に反して

<Aに反してB>は、主として「予想·期待·意·意向·願い·希望」などの名詞と結び付いて、「Aに反してB」という意味を表す。
<Aに反してB> is mainly appended to noun like expectation, hope, conjecture, guess, intention, request, or hope, and has the meaning, “B in opposition to A”.

Ex:
専門家の予想に反して、景気は回復し始めた。(=予想とは反対に)
Contrary to the specialist’s prediction, the business climate has began to recover.

我々の期待に反して、新商品はあまり売れなかった。(=期待とは反対)
今回の市長選挙は、大方の予想に反して、新人の鈴木氏が勝利した。

~一方だ

<~いっぽうだ>は、変化を表す動詞の辞書形に接続し、「その変化が一方の方向に向かって、ますます進行している」という意味を表す。話し手が、その進度が速いとか際限がないとか感じているというニュアンスを含む。
<~いっぽうだ> appends to the dictionary form of a verb expecting change, with the meaning “that change is progressing more and more, headed in one direction”. implies that the speaker feels this progress to be fast, limitless.

Ex:
大気中のCO2濃度の上昇とともに、地球の温暖化は進む一方だ。(=どんどん進む)
With the increase in the consentration of CO2 in the atmosphere, global waring will continue to advance.

天候のせいで、野菜の値段は上がる一方だ。(=どんどん上がる)
The price of vegetables goes up and up due to the bad weather.

参考書:
日本語総まとめN2
日本語表現文型辞書

~あげく(に)、~すえ(に)

May 20, 2011 Leave a comment

Level: Intermediate (中級)

~あげく(に)=~した結果、最後に

*Means “After a whole string of events, in the end an undesirable situation, unfortunate result or negative choice was arrived at”
*Often implies the fact that a final finishing or deciding factor came into play after a spiritually or mentally difficult situation carried on for some time.
*Often used together with 「いろいろ、さんざん」

Ex:
何度も手術したあげく、治らないと言われた。(=手術して大変だったのに最後は)
Nandomo syujutsu shita ageku, naoranai to iwareta.
I have surgery many times, but in the end I was told I couldn’t be cured.

妹はさんざん迷ったあげく、大学院には行かないことにした。
交渉のあげく、結局、話はまとまらなかった。

~すえ(に)=~した結果、最終的に

*Refer to a situation where the speaker has tried various things, finally deciding on ~. This expression also implies that there were various difficulties and a process of trial and error that preceded the result
*Reflects the emotional state and impression that the speaker has of the situation, an so is often used with the adverb 「結局・ついに・やっと」 in the second clause.

Ex:
悩んだ末、進学ではなく就職することにした。(なやんだ結果)
Nayanda sue, shingaku dewa naku syuusyoku suru koto ni shita.
After really thinking it over about it, he decided to get a job instead of continuing his study.

どれにしようか迷った末、A社のテレビを買いました。
家族で話し合った末、その土地は売ることにした。

参考書:
日本語総まとめN2
日本語表現文型辞書

論文のまとめ方

May 19, 2011 Leave a comment

論文の中で中心になるのは自分が言いたいことを述べる本論であるから、本論が充実していなければ読む人に自分の意見に賛成してもらうことができない。特に、相手を納得させるには、本論の中で結論を説明する論拠としてどんなデータや意見を挙げるか重要になってくる。そこで、結論と論拠の組み合わせについてもう少しい詳しく見てみることにします。

A. テーマについて言いたいこと(結論)が決まっていて、それを説明するためのデータを集める方法

B. テーマに関連するデータを集めて、そこから論文を考える方法

の二つがあると言われる。しかし、実現には二つの方法を同時に使うことが多いです。たとえば、結論が決まっていても、データを集める間に結論を修正する必要がある。またデータを集めているうちに結論が見えてくれば、そこから先は結論に合ったデータが集まる方法を考える。データが先か結論が先か正直なところ決められないのである。AとBの手順の組あわせによって、より充実した論文になるとも言える。

参考書:

大学生と留学生のための論文ワークブック

Categories: Research, Support

〜どころか、〜どころではない

May 14, 2011 Leave a comment

Level : Intermediate (中級)

〜どころか:〜というようなものではない。むしろ/〜なんて、とんでもない。むしろ

*予想や期待、イメージと事実が全く異なるときに、そのギャップを強調し「そいうことはなくて、むしろ。。。。」という意味を表す。後件では、イメージと反対の内容が述べられる

*This expression means “far from being~, it’s actually … “, and is used to emphasize that the reality of something is very different from expectation or its image. it is followed by a phrase indicating a quality that differs from the image.

Ex:
貯金どころか、借金ばかりの生活です。
Chokin dokoro ka, syakkin bakari no seikatsu desu.
It’s far from saving money, just living by borrowing money.

*期待や予想が否定的な内容の場合にも使われる。

Ex:
A:ホテルの部屋どうだった?何か問題なかった?
B:問題ないどころか、大満足だった。

〜どころではない

*期待や想定がされている事柄について、「とてもそのようなことをする余裕がない」「そのようなことできる状態ではない」ことを表す。切迫した状況、大変な状況にあることを強調する。
*This expression is used to indicate that some anticipated situation was completely unrealizable due to certain circumstances. It emphasize that the speaker was in dire situation

Ex:
工場で火事があり、仕事どころではなかった。
Koujou de kaji ga ari, shigoto dokoro dewa nakatta.
Because of the fire at the factory, I had to put my work aside.

試験の前日だったけど、歯が痛くて勉強どころじゃなかった。
旅行中もずっと熱が下がらなくて、観光どころではなかった

*会話ではこのように、前の言葉を受けて、それを打ち消す形で使われることが多い。
*In conversation, this expression is often used to negate the preceding statement.
Ex:
週末は温泉に行くつもりだったけど、急な仕事が入って、それどころじゃなくなった。

参考書:
日本語総まとめN2
日本語表現文型辞書