ページ

2014年10月14日火曜日

Xubuntu - ネットに繋がらない!

昨日突然起きた出来事です。
「アップデートが56件あります」
今までアップデートの度に何かあったので躊躇していましたが、ここまでたまると逆に悪いと思い、慎重に見極めて必要と思われる18件のアップデートをインストールしました。

再起動後も順調に動いて、これは正解だったなと思っていました。
しかし、スタンバイからの復帰が出来ず(この地点でなにか怪しい)電源を強制的に落としたあと事態は急変。

「ネットワークは無効です」

ドライバを入れなおしてもダメ。これはどうしたことかと思って翌日調べてみるとあっさり解決出来ました。
その方法。
ネットワークのアイコンを右クリックして「ネットワークを有効にする」にチェックを入れる。

まだまだ Linux は素人ですね。

2014年9月19日金曜日

フラン!

グラフィグってありますよね。自分は小鳥遊六花のグラフィグで知りました。
あの独特なスタイル、ノリを使わない作り方はすごい。是非とも自分で作ってみたい(!?)。

ではでは、張り切ってフランドール・スカーレットを作ってみましょう!
グラフィグはノリを使わないらしいですが、今回はノリを使うペーパークラフトの体でグラフィグ風のものを作ります。

1.下書き
ささっと
 これを元に設計図を書きます。

2.CADで設計図を描く
これが一番時間がかかりました。CADは AR_CAD Light edition です。
羽とかは後で設計

3.出力してバランスを見る
胴がデカイかな。腕も少し調整したほうがよさそう。
一緒に帽子も作ってみました。

4.調整
5.色塗り
GIMPで清書したものを、ペイント(!?)で塗っていきます。

6.完成(図)
 組み立てるとこんな感じになります。

7.組み立ててみた
できたー!

作った後に気づいたのですが、グラフィグのテンプレートがありました。(しかも原作者のNC帝國様から) (知ってる方も多いと思います...)

ペーパークラフトの形式ですが、一応「グラフィグ状の物体」ということで出展を明記しておきます。

この作品はNC帝國さまのグラフィグを基に作られたぺーパークラフトです。
NC帝國:http://www.ncempire.net/
グラフィグ(コスパ):http://graphig.net/

このペーパークラフトは以下のリンクからダウンロードできます
 https://drive.google.com/file/d/0B_GhPqYrMlk9T0RqbWRYYnVwQ3M/edit?usp=sharing
このペーパークラフトの転載を禁止します。 私的利用のみ。

作り方は後日公開する予定です。

2014年9月18日木曜日

お絵かき - 水彩色鉛筆を試してみた

なんと、100均で水彩色鉛筆が売っていました。
では早速試した報告を、

1.原画を用意
パソコンで塗るために画像を修正しています。

2.色鉛筆で塗る
塗りは微妙...

最後にこれを濡れた筆でささっとなぞってあげます。

3.完成!
んー、紙はしわくちゃになるし、水彩になったのかはちょっと分かりづらいです。

やっぱりしっかりした物でも買おうかなぁ

報告終了!

2014年6月6日金曜日

ActiveBasic: Win32API の AddFontResourceEx 等を使えるようにする

ActiveBasicでゲームを作っているとき(with DXライブラリDLL)無料のフォントを組み込みたくなりました、そこでいろいろ調べてみるとここでそのやり方が載っていました。
ところが自分は ActiveBasic を使っているので、AddFontResource 関数が見当たりませんでした。(Ver 4.24.00のリファレンスを検索) どうやら FreeBasic では使えるようなので、そのリファレンスに載っている定義とマイクロソフトの Developer Network のページを参考に ActiveBasic 用に AddFontResource 関数を定義してみました。(表現が変?)

2014年4月27日日曜日

そーなのかー

ちびたみどっとねっと・わーくす の東方project 創作Flash 「そーなのか♪」
これの音源が公開されているわけですが、それを見てふと思いました。
「好き勝手にソロ演奏できるソフトが作れるかもしれない」
 ActiveBasicでぽちぽちと作ってみました。

このソフトの説明としては「適当に演奏して遊べる音のおもちゃ」でしょうか。
詳しくは、ホームページのほうに書いてあります。

説明とダウンロードのページ:

2014年4月5日土曜日

ActiveBasic to C++: メモリ管理

ActiveBasic でも C++ でも(というかもちろん)ヒープ領域のメモリを扱って動的に変数を確保することができます。

今回は要素を2つもつLong型(C++ではint型)の配列を動的に確保して 10 + 20 の計算をします。
ActiveBasic:
#console
Dim p As *Long
p = calloc( SizeOf( Long ) * 2 )
p[0] = 10
p[1] = 20
print p[0] + p[1]
free( p )
End

C++:
#include <iostream>

int* p;

int main(){
 p = new int[2];
 p[0] = 10;
 p[1] = 20 ;
 std::cout << p[0] + p[1] << std::endl;
 delete[] p;
 return 0;
}

実は C++ でも calloc() は使えますが普通使わないそうです。( C++ の各種講座参照 )
そういえば ActiveBasic でも new 演算子がありましたが、あれはクラス専用です。
でも C++ では new で int 型を確保できました。これはなぜかというと、 C++ では基本型(intとか) もクラスのようなオブジェクトとしてて定義されているからなんです。だからこんなこともできます。

#include <iostream>
int* p;
int main(){
 p = new int( 10 + 20 );
 std::cout << p << std::endl;
 delete p;
 return 0;
}

これは int のコンストラクタに 10 + 20 の結果を初期化で代入するように指示したもので、ちゃんと 30 と表示されます。
ここの delete には [] がありませんが、これは配列を確保した時につけるものです。逆に配列を確保したときに [] を忘れると配列を開放できずシステムが不安定になりますのでご注意。

今日はここまで。

2014年3月26日水曜日

ActiveBasic to C++:ActiveBasicのクラスについて考える

ActiveBasicでもクラスを使うことが出来ますが、自分はそれはC++を学ぶ上で邪魔になると思い、わざとパスしてC++の世界に飛びこんだわけですが Visual C++ をインストールした場所が外付けハードディスクで、しかも共用なのであっち行ったりこっち行ったりとなかなか使えず、Linux でやるにも Windows アプリケーションを作るのが非常に困難で(主にDXライブラリを使ったゲーム)、そして何と言っても少し疲れたので、ActiveBasicのクラスでもやってみようかなということでこの記事です。

C++:
//あいさつを登録して、あいさつと、あいさつした回数を表示する
#include <string>
#include <iostream>
using namespace std ;

class greeter {
string greetingword ;
int count ;
public:
greeter( string in ) {
count = 0 ;
greetingword = in ;
}

void greet() {
count ++ ;
cout << string << endl ;
cout << "これは" << count << "回目のあいさつです。" << endl ;
}
};

int main() {
string a ;
greeter* p ;
p = new greeter( "Hello!!" ) ;
while (1) {
cout << "何か入力してEnterを押してください [q]で終わる" << endl ;
cin >> a ;
if (a=="q") break ;
p -> greet() ;
}
delete p ;
return 0 ;
}

ActiveBasic:
#console

class greeter
    private
    greetingword As String
    count As Integer
   
    public
        sub greeter()
            count = 0
            greetingword = ""
        end sub
       
        function addgreeting( in As String )
            greetingword = in
        end function

        sub greet()
            count ++
            print greetingword
            print "これは" & Str$(count) & "回目のあいさつです。"
        end sub
end class

function main() As Integer
    dim a As String
    dim p As *greeter
    p = new greeter()
    p -> addgreeting( "hello!" )
   
    do
        print "何か入力してEnterを押してください。[q]で終了"
        input a
        if a="q" then exit do
       
        p -> greet()
    loop
   
    delete p
    main = 0
end function

dim result As Integer

result = main()

end

なぜかActiveBasicのほうがコーディングに時間がかかった。コンストラクタの中であいさつの文を代入すると結果がおかしくなったので別の関数に移して解決しました。
感想:
もともとの仕様としてクラスが備わっているC++には勝てないね

今回はここまで 

追記) ActiveBasic の方のサンプルプログラムで、クラス定義のときに "private" と書くところを"private:" と書いていましたので修正しました。

2014年3月25日火曜日

ActiveBasic to C++:配列が・・・

ActiveBasic:
#console
'配列を10個宣言する
Dim array[9] As Integer
'アクセスする
Print array[0]
Print array[1]
Print array[2]
Print array[3]
Print array[4]
....
Print array[9]

2014年3月22日土曜日

ActiveBasic to C++: ActiveBasicで使っていた関数を再現する

投稿がかなり遅れましたがこの間にかなりたくさんのことを学んでしまって全部記事にすると大変なので、ここを新しいスタートラインにして投稿を続けます。

それはともかく、C++を学んでいく中で分かったことがあります。それは
文字列がとんでもなく扱いにくい。
覚悟はしていましたが、ここまで面倒とは・・・
と思っていたんですが、こんなページを見つけました。(このページを見つけるよりも見つけやすいけれども・・・)

http://handasse.blogspot.com/2007/06/c_22.html

<sstream>をインクルードすれば文字列と数値の変換が簡単にできるのか。
でもいちいち stringstream なんて打ったり、初期化したりするのは面倒くさい。そこでActiveBasicで使っていた Val() 関数や Str$() 関数みたいなのを作ってみました。

2014年3月18日火曜日

ActiveBasic to C++: 条件式とか繰り返しとか

条件式:
ActiveBasic:
Dim a=1 As Integer
Dim b=1 As Integer
If a=b then
 a++
 b--
Elseif a=b+1 then
 a--
Else
 a--
 b++
End If

ActiveBasic to C++: 変数

宣言
ActiveBasic:
 Dim Temp=0 As Integer

C++:
 Int Temp=0;

C++での代入は型名を書いて変数を書くので、Dim命令語を書かない分ActiveBasicよりも楽。

代入
ActiveBasic:
 (Let) Temp=12

C++:
 Temp=12;

C++では代入演算子として'='が定義されているのでLet命令語を入力する必要がない。(Basicでも省略できるけどね)


2014年3月11日火曜日

Xubuntu 10.04 電源が上手く切れない!

なぜかウェブブラウザを使った後のシャットダウンが上手くいかない。
同じような症状に悩んでいる人もいるようです。

Ubuntu日本語フォーラム / 10.04でインターネット接続後にシャットダウンしても電源が落ちない:
https://forums.ubuntulinux.jp/viewtopic.php?id=8447

ですが、ここの記事を参考に調整しても上手くいかない。
この変更はそのままにして、ブラウザを起動したときとしていないときのプロセスの差を見てみることにしましたが、特に違いはありませんでした。

ログアウトした後だとちゃんと終了出来るので、面倒くさいだけで特に直す必要はなさそうですが、一応こちらのサイトの変更も加えてみることにしました。

ubuntu10.10でシャットダウンしても電源が切れないときの対処法:
http://nick.hateblo.jp/entry/20110115/1295089333
この記事書いているときに気付いたけど、 10.10の記事だね。

やはり上手くいかない。
そういえばこのOS入れたとき "Gnome サービスを起動する" が設定マネージャーで最初からチェックが入っていた事に驚きました。
なぜなら、以前入れていた 11.10 には チェックが入っていなかったからです。

チェックを外してみると・・・
シャットダウンできた。

Ubuntuフォーラムの変更を元に戻してみても上手くシャットダウン出来るので、どうやらGnomeサービスあたりが自分の場合、原因のようでした。

2014年2月16日日曜日

Blender Game Engine 自動ドアを作る

Blender Game Engine を使ってゲームを作るにあたって、YouTubeに投稿されていた英語のチュートリアルを参考に
今回はキューブが近づくとドアが上に持ち上がって離れると閉まるモノを作りたいと思います。

Blender Game Engine 空を作る(Sky Dome)

今回は屋外が舞台のゲームには欠かせない空を作りたいと思います。
Blenderでは Blender Render に空をレンダリングする機能がありますが、Game Engineにはありません。厳密に言えばあるんですが、それは空ではなく、背景色の変更をする機能です。ですので、雲や太陽などを作りたいときには空を作る必要があります。空の作り方にはさまざまな方法がありますが、今回は比較的簡単でメンテナンスも簡単なSky Domeに挑戦します。

Basic 素数計算プログラム

JIS BASICが使えるソフトなどに貼り付けてご使用ください。私は十進BASICを使いました。
十万までの素数が出力されます。
仕 組みについては、まずFor構文で数字を1ずつ代入します。代入された値よりも前にある値をひとつずつ割ってあげて、余りを調べます。余りが0、つまり割 り切れるものがあればそれは素数ではないのではじきます。これを繰り返していってどれで割っても余りが出る数を素数として出力します。処理ははじめのうち は早いですが、割る数が増えるにつれてどんどん遅くなっていきます。

素数計算機.bas

LET A=2
PRINT A
FOR A=3 TO 100000
   FOR B=2 TO A-1
      IF MOD(A,B)=0 THEN
         GOTO 100
      END IF
   NEXT B
   PRINT A
100 
    NEXT A
     
END

Basic 多角形の対角線の本数を計算する

さて、上記の通りのことをやります。計算アルゴリズムは非常に面倒な形式をとっています。というのも、多角形の対角線の本 数を求める関数が見つけられず、四角形の対角線は+2、五角形はそれに+3、六角形はそれに+4、という要領で繰り返しの作業をやってもらうプログラムで す。理屈を言ってもしょうがないのでプログラムをさっさと載せます。以下の通りです。十進Basicなどに貼り付けてご利用下さい。好きに改変してもらって結構です。

多角形の対角線の本数を算出する計算機.bas

!三角形は0本
! n角形 (3以外は) ex. 4角形 0+2=2本,五角形 2+3=5,六角形 5+4=9...

INPUT n
IF n<4 THEN
   pause "4角形以上を指定してください"
   stop
END IF

LET plus=2 !最初は2から対角線を足していくので
LET ans=0 !答えを収める

FOR A=4 TO n !三角形(つまり対角線0本)からはじめるがforの仕様でA=4(四角形から)にする
   LET ans=ans+plus
   LET plus=plus+1
NEXT A

pause STR$(ans) & "本です"

END

Basic イースターの日付を計算する

参考資料:イースターの日の決め方 http://www.geocities.co.jp/HeartLand/1987/easterdate.html

復活祭 イースターは毎年日付が変わるそうです。今年初めて知りました。
ということで、今回は十進Basicでイースターの日付を計算するプログラムを作ってみました。
ちなみに、私はクリスチャンではありません。
計算アルゴリズムは上記のサイトを参考にさせてもらいました。

イースター計算機.bas

INPUT year !求めたい年を入力
LET D=MOD(year,19) !ここから下は上記リンクの計算方法をそのまま写しました
LET D=255-D*11
DO
   IF D<51 THEN EXIT DO
   LET D=D-30
LOOP
IF D>48 THEN LET D=D-1
LET E=MOD(year+INT(year/4)+D+1,7)
LET Q=D+7-E
IF Q<=31 THEN 
   PRINT "3月"&STR$(Q) !表示(3月の場合)
ELSE
   PRINT "4月"&STR$(Q-31) !表示(4月の場合)
END IF

END

Minecraft Mob Talkerが気になる

タイトルそのまんまです。

シナリオとかもっと簡単に組めたら楽しそうだなと思ったのでシナリオエディタでもつくろうかなと思っている今このごろです。

ちなみにMob Talkerというのは
敵Mob(エンダーマン、ゾンビ、クリーパー、クモ、洞窟グモ、スケルトン、スライム、ガスト、ブレイズなど)とおしゃべりできるModのことで、比較的簡単なスクリプトでシナリオを組むことが出来ます。

ですが、スクリプトを書くことに違いはなく、自分としてはそっちに気をとられてシナリオ作成に集中できないので、ツールでも作ろうかなということです。
初めての実用ツールプログラミング頑張ってみる。(自己満足のクソツールになるので、期待しないでください)

参考リンク
Mob Talker Wiki:
http://mobtalker.wikia.com/wiki/Mob_Talker_Wiki

Xubuntu 10.04 Buffalo WLI-UC-GNM で無線LAN!

参考サイト:
Debian wheezyでBuffaloのWLI-UC-GNMを使う
http://dogwood.skr.jp/blog/2013/06/46/#comment-40

タイトルそのまんまです。

さて Xubuntu 11.10 を使っていた自分としては ndiswrapper を使って Windows 用ドライバをロードさせれば使えるだろうとまず思ったわけですが、結論を言うとダメでした。
そこで ndiswrapper を諦めて Linux 用ドライバを使ってみることにしました。
上のサイトを参考に自分がやった手順を書いておきます。

Xubuntu 10.04 make: /build がなくて make 出来ない

参考サイト:
ask ubuntu
http://askubuntu.com/questions/260176/lib-modules-2-6-38-8-generic-build-no-such-file-or-directory

そのまんまです。
自分はこれで何度つまづいたことか。
makeコマンドでmakeしようとすると

make:*** /2.6.32-55-generic/build そのようなファイルやディレクトリはありません

と出てmakeできない。さてどうする?
そのディレクトリに行ってみると確かに /build というディレクトリは無いみたい。
試しに $mkdir /lib/modules/$(uname -r)/build でディレクトリを作ってみると

make:*** ターゲット`modules' をmakeするルールがありません

ルールって何だよ。

色々調べてみるとこれはこうすることで解決するらしい
1.linux-headers をインストールする

$sudo apt-get install linux-headers-$(uname -r)

2.ここへのリンクを作る

$sudo ln -s /usr/src/linux-headers-$(uname -r)/ /lib/modules/$(uname -r)/build


これでいけるはずです。あとはmakeのエラーをよく見て、環境を整えていきましょう。




以上 make : /build がなくで make できない でした。

Xubuntu 10.04 アップデートマネージャーの不調

アップデートマネージャーの常駐アイコンがいつもと違うので見てみるとパッケージの依存関係が満たせていないのだとか。

じゃあアップデートしてやろうとアイコンをクリック。パッケージマネージャーが起動して、ロードが終わるかというそのとき

「アップデート情報を取得できません」


解決法はいたって簡単だった。
以前動画変換ソフトを入れるためにパッケージリポジトリのサーバーを手動で追加したことがあった。そのソフトはバージョンが対応していなかったので諦めたが、追加したものは消さなかった。

アップデートマネージャーはここからデータを取得し、バージョンに対応していない様々なプログラムを入れようとしたわけだ。

ということでそれを消す。

$sudo vim  /etc/apt/sources.list

追加したサーバーを消す。保存して再起動。

直った。

ただし別の問題が・・・

つづく

DEN NOGUCHI>> の記事を移していきます

Google sitesでホームページを作っている関係上、ブログ形式で記事を投稿するとこのままでは
容量不足になるので、Thangan Blog!に記事を移して、ホームページでは主にプログラムの配布や
その他展示用に使用していきます。

そのため、DEN NOGUCHIに投稿してある記事は移行が済み次第削除していきますのでよろしくお願いします。

2014年2月15日土曜日

Xubuntu 10.04 デスクトップの壁紙やアイコンが全部消えてしまった

アップデートマネージャーの調子がおかしかったので、コマンドラインから色々いじった後の話。

アップデート とかの問題が一応解決されたっぽいのでファイルマネージャーでファイルの整理を使用と思ったらファイルマネージャーが起動しない。おかしいと思い再起動してみると、ログインまでは正常なのだが、ロード終了後のデスクトップがひどい状態だった。というのも
・壁紙がグレー一色
・デスクトップのアイコンが無い
・Xfceメニューがタスクバーに無い

焦りましたよ。本当に。10.04のライブCDからディスクを修復出来るかと思ったがダメだったので、
ライブCDのプロセスを覗いてみることにした。


Thangan Blog! 開設!

ご訪問ありがとうございます。

 基本的に更新は不定期です。

Linuxやプログラミング、PORTAL2、Minecraftなど幅広いジャンルで書いていきます。

ブログ以外にホームページもやっています。
DEN NOGUCHI>>
https://sites.google.com/site/dennoguti