メイン

C アーカイブ

2005年05月02日

ハッピープログラミングのススメ

結局のところ、技術というよりは、コミュニケーション能力が問われるわけです。

仕事とは?

* 技術を習得し、その技術を利用して、お客様に便利なサービスを提供していく。
   これがわれわれの仕事です。
* 技術を追求していくことも勿論大切なのですが、技術だけで仕事ができるわけではありません。
* 何のための開発や制作であるかを忘れてはいけません。
* お客様は、人間であることを忘れてはいけません。
* お客様が困っていることは何でしょう。と自分に問いかけてみよう。
* お客様が怒っていることは何でしょう。と自分に問いかけてみよう。
* お客様が喜ぶことは何でしょう。と自分に問いかけてみよう。
* お客様の声に耳を傾け、じっくりと考えていきましょう。
* 自分がやれる、やれない。というレベルで考えるのではなく、
会社として、どのようにすればできるのか、まずは考えていきましょう。

iPLUSONEのハッピープログラミングのススメ

* プログラミングは知的でわくわくする楽しいことである。
* しかし、そこへたどり着くにはなかなか難しい時代である。
o コンピュータへの要求が多様化しているということが一番大きい。
o 特に初心者は、何からやっていいのか。
o そうはいっても、やれる人はどんどん進んで、やれない人は甘えているだけというのが大きい
o できる人、できない人という括りは、結局は、やる人、やらない人というだけのことだ。
o とはいっても、精神論だけでは解決策が見出せないので
o ソフトウエア開発を事業とするものとしては、なんらかの方針を示す必要がある
o 何でもかんでも、個人任せな会社にはしたくない。
* 初心者が、エンジニアになるために、どういったアプローチがよいか。
* その中で、何が問題になるのだろうか。

* 理論ばかり立派でアウトプットがでないのでは困る。
* 理論と実践のバランスが大切である。
* とにかく実践せよ。実践すると何らかの結果が出る。
* ネットでだれかやったことを鵜呑みにしてはいけない。実際に試して、どうなるか。確認すること。
* 「・・らしい」では、話が先に進まない。
* 「・・だった」。だから、次にどうする。という最終判断までもとう。

* 最初は誰もわからない
* 最初は、知らないことばかりだ。
* 何かを習得しようとすれば新しい言葉の嵐で、それらを調べていくうちに、何を覚えようとしていたのかがわからなくなる。こんな経験はないだろうか?
* 全部を一気に習得することは難しい
* 個々の小さく噛み砕いて、理解できる範囲を狭めていくことが重要
* とにかく、コツコツと蓄積していくしかない。
* 最初からあれこれ聞いていては、煙たがられるだろう。 などと、気を使うことはない。
* ビギナーの特権である。最初から聞きまくれ。
* ただし、すべてを聞くのではなく、聞くポイントを考えてみよう。
* 自分が試せば済むことは、自分でやること。
* 何を聞いたらいいのかわからない。と困っているなら、それを相談すればよい。

2007年12月30日

C言語でMySQLを操作する

MySQLを利用する場合、WEBのシステム構築となると
フロントエンドがPHPやrubyといったスクリプトで記述することが多いと思います。

今日は、C言語からMySQLを操作するAPIを利用してみたいと思います。
私の環境はFedora7で、すでにmysqlのC APIがインストール済みなので
ヘッダファイルとライブラリファイルが以下のようにそろっています。

[root@fedora7 c]# ls /usr/include/mysql/
chardefs.h   my_config_i386.h  my_semaphore.h   mysqld_error.h  sslopt-case.h
errmsg.h     my_dbug.h         my_sys.h         raid.h          sslopt-longopts.h
history.h    my_dir.h          my_xml.h         readline.h      sslopt-vars.h
keycache.h   my_getopt.h       mysql.h          rlmbutil.h      tilde.h
keymaps.h    my_global.h       mysql_com.h      rlprivate.h     typelib.h
m_ctype.h    my_list.h         mysql_embed.h    rlshell.h       xmalloc.h
m_string.h   my_net.h          mysql_time.h     rltypedefs.h
my_alloc.h   my_no_pthread.h   mysql_version.h  sql_common.h
my_config.h  my_pthread.h      mysqld_ername.h  sql_state.h
[root@fedora7 c]# ls /usr/lib/mysql/
libdbug.a         libmysqlclient.so         libmysqlclient_r.so.15      mysql_config
libheap.a         libmysqlclient.so.15      libmysqlclient_r.so.15.0.0  mysqlbug
libmyisam.a       libmysqlclient.so.15.0.0  libmystrings.a
libmyisammrg.a    libmysqlclient_r.a        libmysys.a
libmysqlclient.a  libmysqlclient_r.so       libvio.a

試しに、次の駅テーブルの中身を表示させてみます。

mysql> describe M_STATION;
+-------------------+--------------+------+-----+---------+-------+
| Field             | Type         | Null | Key | Default | Extra |
+-------------------+--------------+------+-----+---------+-------+
| CODE              | char(7)      | NO   |     |         |       |
| RAIL_NAME         | varchar(255) | NO   |     |         |       |
| STATION_NUMBER    | int(11)      | NO   |     |         |       |
| STATION_NAME      | varchar(255) | NO   |     |         |       |
| TODOFUKEN         | varchar(20)  | NO   |     |         |       |
| STATION_NAME_KANA | varchar(255) | NO   |     |         |       |
| LAT               | double       | YES  |     | 0       |       |
| LNG               | double       | YES  |     | 0       |       |
| LAT_DMS           | varchar(30)  | YES  |     |         |       |
| LNG_DMS           | varchar(30)  | YES  |     |         |       |
+-------------------+--------------+------+-----+---------+-------+
10 rows in set (0.00 sec)

[root@fedora7 c]# gcc mysql_test.c -lmysqlclient  -lnsl -lm -lz -L/usr/lib/mysql
[root@fedora7 c]# ./a.out
[JR]函館本線(函館~長万部) 函館                         41.773746 140.726399
[JR]函館本線(函館~長万部) 五稜郭                      41.803418 140.733884
[JR]函館本線(函館~長万部) 桔梗                         41.846735 140.723046
[JR]函館本線(函館~長万部) 大中山                      41.864738 140.713482
[JR]函館本線(函館~長万部) 七飯                         41.887012 140.68855
[JR]函館本線(函館~長万部) 渡島大野                   41.905045 140.647628
[JR]函館本線(函館~長万部) 仁山                         41.930014 140.63522
[JR]函館本線(函館~長万部) 大沼                         41.971954 140.669347
[JR]函館本線(函館~長万部) 大沼公園                   41.98103 140.669888
[JR]函館本線(函館~長万部) 赤井川                      42.003267 140.642678
[JR]函館本線(函館~長万部) 駒ヶ岳                      42.038781 140.610537
[JR]函館本線(函館~長万部) 東山                         42.061728 140.605261
[JR]函館本線(函館~長万部) 姫川                         42.081301 140.591677
[JR]函館本線(函館~長万部) 池田園                      41.990661 140.700333
[JR]函館本線(函館~長万部) 流山温泉                   42.003474 140.716494
[JR]函館本線(函館~長万部) 銚子口                      42.015518 140.720673
[JR]函館本線(函館~長万部) 鹿部                         42.06439 140.771393
[JR]函館本線(函館~長万部) 渡島沼尻                   42.107041 140.747609
[JR]函館本線(函館~長万部) 渡島砂原                   42.121645 140.68954
[JR]函館本線(函館~長万部) 掛澗                         42.119211 140.646094
[JR]函館本線(函館~長万部) 尾白内                      42.111221 140.613465
[JR]函館本線(函館~長万部) 東森                         42.106845 140.593564
[JR]函館本線(函館~長万部) 森                            42.108897 140.573985
[JR]函館本線(函館~長万部) 桂川                         42.11559 140.542794
[JR]函館本線(函館~長万部) 石谷                         42.13553 140.506553
[JR]函館本線(函館~長万部) 本石倉                      42.159668 140.471957
[JR]函館本線(函館~長万部) 石倉                         42.172839 140.458461
[JR]函館本線(函館~長万部) 落部                         42.187544 140.420886
[JR]函館本線(函館~長万部) 野田生                      42.217104 140.37586
[JR]函館本線(函館~長万部) 山越                         42.231172 140.326593
[root@fedora7 c]#

続きを読む "C言語でMySQLを操作する" »

2007年12月31日

ディレクトリの存在を確認する

路線ごとに、その路線上の駅の地図を表示するHTMLファイルを生成してみる。
路線単位にディレクトリを作成して、そこに駅番号.htmlという名前で出力する。

ディレクトリの存在確認を行うには、以下のようにlstatで確認する。


2008年02月09日

C

一番最初に覚えるプログラミング言語は、
何でもいいのだが、比較してみると

C言語がよいだろう と思う。

C++からはいると、Cの部分以外にオブジェクト指向とクラスライブラリで恐らくパンクするだろう。
まあ、最初からオブジェクト指向をすんなり理解してしまえばよいのだが
そこから手続き型へと逆行するよりは、


手続き型の言語で1つ覚えた後に
オブジェクト指向言語をおぼえることをすすめる。

その他にインタプリタの言語などは多数あるが、
必要に応じて使っていけばよいと思う。

まず、1つベースとなる言語があれば、
それを基準に話をすすめることができる。

ようするに、プログラミング言語は目的ではなく手段・道具であるから
目的にあわせて使い分けられるくらいになれればよいわけだ。

さて、C言語をつかうのであれば、
Windows上ではなく、UNIX,Linux上で覚えるのが良い。

UNIXの仕組みを内面から知ることで
ソフトウエア開発の基盤を理解できる。

ファイル入出力
ファイルとディレクトリ
標準入出力
プロセス
シグナル
ソケット通信

などなど。

UNIXとCを両方から攻めていってほしい。

2008年02月12日

UNIXを学んでいれば大抵次の項目について学ぶであろう。
そして、そられを通してC言語との関わりを知ることになる。

ログイン、シェル、ファイルとディレクトリ、標準入出力、
プログラムとプロセス、C言語、システムコールとライブラリ関数


Cで書いたプログラムはmain関数から処理がはじまる。
main関数は誰が起動しているのか?
それはスタートアップルーチンという
リンク時に結合される処理がmain関数をコールする。
その際に、プログラム起動時のパラメータと環境変数を引数で
渡すのである。

About C

ブログ「iPLUSONE Photo Blog」のカテゴリ「C」に投稿されたすべてのエントリーのアーカイブのページです。過去のものから新しいものへ順番に並んでいます。

次のカテゴリはDelphiです。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.34