1read 100read
2012年6月プログラム195: ◆◇◆dbMAGICってどうよ?◆◇◆ (804) TOP カテ一覧 スレ一覧 2ch元 削除依頼
【O3D】HTML5用 3D API WebGL 【Canvas:3D】 (375)
こんなプログラミング言語は嫌だ! (578)
Squeakでマターリ語りましょうや (812)
C言語の第一歩 (843)
【超高速】C/C++に代わる低級言語を開発したい 7 (969)
なぜ、 = が 代入 を 表す 記号 に なったか? (572)

◆◇◆dbMAGICってどうよ?◆◇◆


1 :03/04/27 〜 最終レス :12/06/05
賛否両論、よろしく。

2 :
2get!

3 :
またdbMAGICか
往生してDAT落ちしたんだからもういいだろ?

4 :
>>3
以前にスレがあったんですか?
知らずにスミマセン。
いろいろ意見を聞きたかったもので・・・

5 :
MAGICはDOS時代に終わりますた

6 :
dbMAGICってなんですか?

7 :
http://www.magicsoftware.co.jp/
詳細は↑

8 :
少なくとも、Accessよりは遥かに生産性が高いと思〜。
ループ処理の流れを掴むまでは訳わかんなくて大変だけど、
それでもOOの複雑なライブラリを理解するのに比べりゃ遥かに楽。
閉じた環境だから、他のアプリの環境の影響を受けにくいし安定してる。
小中規模の事務用アプリなら悪くない選択だと思うけど。
他に応用が効かないってのは大きなマイナスかな。
それに、地味。業務システム構築のツールとしては結構強力なんだけど、
どうしても色気が無いんだよね・・・

9 :
MAGICはツールであって、使い様。
「汎用とプログラム言語」として知られるJavaでさえ、なんでもJavaで作ると開発効率あがらないと言われてるのに
MAGICごときで何でもかんでもやろうとするクソ会社に遭遇した事あるよ(ププ

10 :
>4
なら、どんな事を聞きたいのかを書いたほうがヨイね。
勃てちゃった以上は面倒見るべき。

11 :
放置か・・・

12 :
ワコムの株価・・・

13 :
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

14 :
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

15 :


16 :
馬鹿でも使える開発ツール

17 :
ツールは使えても、使えるシステムを構築できるかなあ・・・。

18 :
dbMagicの実行版って10万円くらいしなかったっけ?
しかも端末ごとに。
一時期、dbMagicで開発するって話が持ち上がったけど
プログラムをただ動かすだけのライセンスに一端末あたり
そんな払ってたら、売れるもんも売れなくなるっつって
やめた経緯がある。
開発工数は確かに抑えられそうな気もするが・・・
ってかdbMAGICの仕様書ってどう書けばいいか分からん。
教えてくれ。

19 :

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

20 :
V9、激しく使いにくいんじゃー、ボケーっ!

21 :
dbMasicすら使えないバカが一人

22 :
>>21
多分オマエ以外の香具師は d b M a s i c なんて使ってない。

23 :
>18
V8のクライアント実行ライセンスで6万円ですな。
高いとみるか安いとみるかはビミョーな所だと思うが、少なくともVBなどに
比べて工数が1/3位になるから、十二分に元は取れると思う。
トータルで考えてどうなの、って話をする必要があると思われ。
仕様書は普通のシステム構築と同じでOKでないの?

24 :
仕様書は特に変わったモノを用意した覚えはないです。
ただ、埋込SQLが思ったほど使い物にならない・・・
同封のDBエンジンしか使わせないつもりか?と言いたくなる。

25 :
他の言語(マクロ、スクリプトでも)でプログラム組めるなら、Magicなんてやらない方がいい。
いらつくだけ。

26 :
dbMAGIC+Oracleで開発(PG)やってます。
なんつーか、癖があるから次の仕事で別の言語になったときが心配。
仕様書は他の言語と大差ないけど、
まるでMAGICをわかってない人が書くとちょっと困る。
リンクくらいは判ってくれてると助かるんだがなぁ

27 :
>>26さん
逆にMagicしか知らない人が他の言語の仕事するようになった時って
大変だと思う。>>8さんも言ってるけど、全然応用が利かないよ。
Oracleですか。くれぐれも埋込SQLは使わないで(涙)。
>リンクくらいは判ってくれてると助かるんだがなぁ
フツーのSQLの結合と違うからね。漏れもソコでつまづいた(涙)。

28 :
>>23
> 少なくともVBなどに比べて工数が1/3位になるから
VB すら使えない低脳を使って開発すると安く開発できるって意味ですか?

29 :
>>27
埋め込みSQL使わないと解決できない仕様が降りてくるので(^^;
Ver8と8iですけど、特に問題ないような気がしてます。
最初はパラメータの渡し方とかレコードの受け取り方で戸惑いましたが。
修正してても、結構たくさん出てくるんですよね>埋め込みSQL
重いバッチ処理とかは、PL/SQLに投げないと大変だし。
>>28
そんな香具師でも開発できちゃうのが売りなんだろうな。
面倒なところは全部ブラックボックスにして隠してるから、
バグが減って工数が減りますよ、というのが売りらしいし。
ま、正直明るい未来がある言語とは思えないな。
まったくの新規案件でdbMAGICを選択するところってあるのかね?
もしかしたら、俺の知らないところで大人気なのかもしれないけどさ。

30 :
>28
Magicの開発ではMagicをちゃんと使える事が重要であって、他の言語がどうとか言っても無意味でわ?
それとも、Magicを使う人が低脳だって言いたいのかい?
>29
某社の話だが・・・
競合社がJavaで提案してきたが、見積り額が1桁多かったそうだ。
積極的に選択する理由は無いかもしれないが、消去法でMagicになるケースは多々あると思う。
・・・もちろん、Magicしか使えない会社に未来は無いと思うけど。

31 :
>29
わかりますとも。SUM関数やら何やら使わんとやっとれんよーな仕様
もありますから。とはいえ、あの埋込SQLってば、書いたとおりに
実行してもらえない、てゆーか勝手に書き換えられたりするのよね。
そんで実行時にエラーになるし。そうでなくても、order by 〜 desc
なんか軽〜く無視しちゃってくれるし(涙)。
>30
うーん。確かに敷居は低いツール(言語ではないよアレは)だとは思います。
しかし、低脳じゃあツールは使いこなせません。
ある程度「おまかせ」にして簡単な帳票や画面を量産するくらいなら、
低脳でもナントカなるでしょうが、ブラックボックスの裏の裏を読んで、
ヤツのフルマイを論理的に解析しつつ、思い通りに使いこなすとなると
それ相応にアタマ使わなきゃダメでしょう。
でも大抵の開発者は経験則で使いこなしているように思います。
自分はニガテでしたが。

32 :
http://homepage.mac.com/hiroyuki44/

33 :
テーブルに項目追加したり型を変えたら
そのテーブルを使っているプログラムが
「定義内容が一致していません」となり、
開かなくなってしまいました。
どうしたらいいでしょう?
テーブル保存する時に「バックアップしますか?」「インデックスをスキャン
しますか?」と聞かれるのに何か関係ありますか?
34 :
あぼーん

35 :
>>33
うーん。テーブル定義を戻してみるとか・・・
あと、バックアップは不要ですが、インデックスのスキャンはやらないと
ダメです。プログラムにもかかわってきます。
テーブルなどの定義をいじると、たいてい関係箇所も自動で修正してくれる
のはマジックの利点だけど、中途半端に終わらせると収拾がつかなくなることも
確か。事前にソースとデータを退避させておくのが必須。

36 :
うむ。
特にMVCS使ってる場合にテーブルやタイプいじる時は必ず保存した方がヨイ。

37 :
>35,36
ありがとうございます。
良く分からないまま何故か直りました。
その後はバックアップは取らず、インデックスのスキャンは
するようにしてます。
今後の為に教えていただきたいのですが、テーブル定義は
どうやって戻したらいいのでしょうか?
こんな初心者がMAGICを扱うのは危険ですよね。
なんせVBしかやったことない私にいきなり
やれ、と投げ出されたもんで四苦八苦してます。

38 :
言語に関わらず、ソースとデータは取っておきませう。当たり前だけど。
でもねえ、マジックは特に・・・ブツブツ。
テーブル定義を直すときは手作業で前の状態にするしかないですね。
これがOracleなど他に参照手段のあるDBならば、Accessなどで
現状テーブルがどうなっているか確認しながら修正できるのですが。
PervasiveやBetreveの場合に外部ツールでどーやって確認すればよいのか
自分も知らぬです。
VBしかやったことないと、そりゃキツイでしょう。漏れはMagicのV8しか
知らぬが、イベントの捉え方が全く違うから。特にマウスイベントの場合
は厄介。イマドキのGUIでコレはないと思う。
暫くはVBで培った知識を全て捨て去って挑むしかないでしょうね。
V9だと少しは他言語と似たようなイベントの捉え方されてるんでしょうかねえ?

39 :
案1 テーブル定義を変更する前に必ずリポジトリのコピーを取っておく。
案2 MCF及び全てのデータファイルをコピーするバッチファイルを作っておき、
   テーブルの変更前に全てバックアップを取る。
どっちも無理やりだけど。

40 :
案2でしたね。いやマジで。
日付を付けたMCFがずら〜っと(笑)。
データファイルはまとめてLzhに。それも日付入り。
Oracleならエクスポートファイルを日々取っていた。

41 :
おお、こんなスレあったんだ!
俺、今年から入った新人プログラマなんだけど
一通りの研修が終わって、君にはこれをこれからやってほしいと
言われたのがdbMAGIC。ハッキリ言ってよくわからん。
唯一MAGICを使える先輩ももうすぐ辞めちゃうとかいうし・・・
何かいい教本でもあればいいんだけど。

42 :
>41
悪い事は言わないから、正規のトレーニングを受けたほうがいいよ。
理解している人が周囲にいるならともかく、その人が辞めちゃうんだったらなおさら。
それなりの費用はかかるけど、トータル的にそうしたほうが絶対安くあがると思う。

43 :
とりあえずその先輩に基本概要だけは教えてもらったほうがいい。
俺も最近やらされ始めたんだけど、自分でやるより教えてもらった方が全然理解度が違う。
やっぱ経験則がものをいうツールだと思うわ。
俺VBあがりなもんで偉そうなことは言えないけど。
SQL?なにそれ食えるの?って感じだし…。

44 :
教本は・・・ないですねえ。90年代の初め頃に数冊出たきりで。
出版しても採算が合わないのかな。
基礎だけはしっかり身につけて置いた方がいいよ。
その上で先輩の経験則から盗むといい。
ただ、他言語などの余計な知識はかえって邪魔です。
で? 漏れは今、他言語を必死で独学しているよ。Magic以外ツブシが
利かないというのも、不便だから。

45 :
送料が安い・商品豊富・スピード発送
新商品 ぞく・ぞく 入荷。    
激安DVDショップ!!
  http://www.get-dvd.com

46 :
>>41
漏れはワコムがやってたセミナーの教本を読んだYO!
その昔、先輩が逝ったらしいんだけどね。
基礎編と、オンライン編、バッチ編で3つあった。
もし無いなら大人しくセミナーに逝ったほうが良いかもね。
こんな漏れはMAGICから開放される予定・・・

47 :
41です。先輩はまだ会社は辞めていませんが来月(つまり明日)から
他の部署へ異動になり、もう教えてもらうのはほぼ不可能。
開発どころか客先がどこかも把握していないのにどうしろと・・・
愚痴る前に勉強しなくては。
基礎ってどんな事までなんでしょう?
簡単なフォーム作成やデータの更新の仕方くらいしかわかりません。
セミナーみたらかなり高いね・・・これの基礎編を受ければいいんですかね?

48 :
>41
まず、流れ。前処理・メイン・後処理がそれぞれ何やってるか。
表示は主にメイン。更新は後処理。循環入力かそうでないかでも流れは
変わってくる。
登録・更新・削除モードの動き。実際にどこでデータの内容が置き換わるか。
リンクも大事だ。複数テーブルの読み方に他ならないが。
あと、帳票出力ならば印刷バッファがキューに吐かれるタイミング。
上記の諸点、ピンときていないようなら、先輩をつかまえてでも聞くとよい。
不可能ならば、とにかく自分でサンプルを作ること。簡単な更新系の画面を
つくって、動きをいろいろ確かめよう。
余裕が出来たら、ちょっと日付の扱い方なんか調べておくと良い。
よく使うことになると思うが、日付型は厄介だ。見た目と中身が違ってたり
するから。
うーん。こんな処か。部署が変わってこの方、漏れは急速にMasicを忘れつつ
ある。というか、さっさと忘れたい。

49 :
37です。
お礼が遅くなりましたが、38-40さんありがとうございます。
バッチファイル作りました。
今の所はテーブル変更することもなさそうなので
少し安心です。
私の場合、教えてくれる人がいるにはいるんですが
社外の人間で、且ついつも連絡が取れない。
たま〜にやってきては指示を出す、という少し
複雑な環境です。
最初に何となく概要を教わり、既存プログラムの修正兼
流れを知るといった感じでした。
とりあえず48さんのおっしゃる基礎は何とか
クリアしてるっぽい。
ホントVBとは別物ですね。
割り切ってるつもりですが、VBみたいにブレークポイント
を設定できれば、処理の流れが掴み易いんだけどなぁと
思う今日この頃です。
MAGICに関してネットでの情報は皆無なんですよね。
このスレがあって良かった。
また困った時はアドバイス頂けると嬉しいです。

50 :
>49
MSJのニュースグループは見てる?
MAGICに関する情報はあそこが一番充実していると思ー。
無料だからとっとと登録しちゃってください。

51 :
>49
たま〜に先輩がやってきたら、デバッグツールの使い方を教わるべし。
ブレイクポイント、設定できますよ。

52 :
重ね重ねありがとうございます!
> 50
ユーザーフォーラムとっとと登録してみました。
こんなんがあるなんて知らなかったです。
> 51
おおっ、あるんですね。
調べてみたらフローモニターというのを
使用するんですね。
ブレークポイント設定できました。

53 :
おい、おまいら知ってるか?
設定→動作環境→環境設定ファイルから、CONSTファイルの中を
mgconstw.jpnからmgconstw.hi3に変えると作業ウィンドウが広がるんだぜ!

54 :
つか、mgconstwファイルの設定自体をを弄るツールがあるぞ。

55 :
>53
あ、漏れんとこも使ってた。hi3。
つーか、V7用だよね。V8でも問題なく使えるけど。
・・・正直ゆーと、デフォルトでそーして欲しかった気も(w)

56 :
(^^)

57 :
教えて下さい。
テキストファイルがあり、その中には区分によって
項目が少しずつ違うデータが入っています。
その区分により1〜5のテーブルに振り分けるには
どうしたらいいでしょうか?
ワークテーブルをつくり、一度取り込んでから
一件一件区分を見てそれぞれのテーブルに振り分けるのではなく、
テキストを読み込む段階で振り分けることは可能でしょうか?

58 :
>>57
あまりにも安易だが、テキストを読み込んで条件見て
各テーブルごとの子タスクを呼ぶのは駄目か?
もっと上手いやり方があったらキボンヌ
条件でリンクする・しないとか出来たっけ?

59 :
あーもー頭パンクするわー
こんなのやってられっかー

60 :
>59
がんがれ。
2種類のタスクループの流れをを押さえることができれば7割は掴んだ事になる。

61 :
フォーム作成画面で
前面移動とかあるじゃないすか。
あれっていつ使うんすか?
いつ見ても使えんのですが。

62 :
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

63 :
MAGICはDOS時代に終わりますた

64 :
「データベースロックの解除待ちです」

65 :
dbMAGICみたいに、データ件数が多くても耐えられて、
客から変更要請が来てもすぐ変更できるようなツール・言語ってある?
出来ればMAGICよりも安い奴で。
MAGIC実行版を高いって言われちゃったよ。

66 :
>>65
データ件数?それはむしろDBによるでしょ。
dbMagic付録のDB(ってかISAMだよね実態は)は逆に件数あると、
すぐ壊れちゃうじゃない。
逆にどーゆー言語だと「データ件数多いと耐えられない」というのか(笑)。
客からの変更要望にすぐ対応可能かどうかなんて、言語によらないと思うが。
設計から「やりなおし」なら、何つかっても一緒でしょ?
そーでなけりゃ、いまどきC++でもC#でもJAVAでも開発ツールなら無料で入手可能じゃん。

67 :
>>66
BtrieveじゃなくてPervasive SQLの方を使ってる。
10万件とか扱っても大丈夫っぽい。
客先に呼ばれて「ここはこうじゃなくてこういう感じに」と言われて、
その場でちょちょっと直してハイおしまい、みたいなのが多いので、
即時性のあるものじゃないとアカンのよ。

68 :
MAGICもォhルし このスレもオhル

69 :
>>67
PervasiveSQL って ISAM 系DBだと思ったけど…
単にSQL に対応したISAMって感じでは?

70 :
同志募集age

71 :
dbMAGICはかれこれ8年ほどやってるわけだが
仕事は適当にあるわけだが
転職の際に著しく不利だなや。

72 :
>65
MAGIC実行版を高いといわれたらもう何もいえないでしょうな・・・
>66
PervasiveSQL+MAGICはかなり堅牢なほうだと思うよ。
Btrieveはファイル共有型だったから脆いという話は聞いたことある。
>67
今時10万件如きを扱えないDBって無いでそ。
その程度ならAccessでも問題ナッシングと思われ。
気にするべきはデータサイズかと。

73 :
>71
8年でつか・・・ベテランでつね。
私はV8からしか知りませんでつ。
最近事情があってDOS版MAGIC使ったんだが、ほとんど混乱することなく
触ることが出来たのにはびっくりした。
最初の頃はクソみたいな操作性だと思っていたけど、昔から操作を大きく
変えることなく進化してきたっていうのは正直すごいと思いました。

74 :
magicでweb系の開発してる人います?
とくにUNIX + oracleでの人、しんな感じか教えてほしい。

75 :
シンナー?
WEB系は俺の上司も興味持ってるみたい。
そのうちやれって言われるかも…。

76 :
WEB系バリバリ使いこなしてるよ。V9のブラウザクライアントは
使い勝手が悪い!

77 :
使い勝手が悪いというのはどのようなことですか?

78 :
ブラウザでやること自体が間違っとるのだよ

79 :
っていうか、これそのものが糞。市ね

80 :
ふーん

81 :
V9 Plusというのがリリースされるらすぃが。
V9はハスプ付きなんでうちの社は敬遠したんだが、今度のはどうかね。

82 :
Plusからハスプがなくなるみたい

83 :
書いてレスあるかどうかわからんけど、おしえてエロイ人
48の基礎としての知識がわかったら次は何を理解すればいいん?
VBのスキルが必須だと書いてあったから就業したのに、業務で稼動してる6〜7割がMagicだとは。。。
しかも、俺はMagicってVBとかから呼ぶもんだとずっと思ってたのに・・・。
正直Magicって勉強してもこの先あまり意味ないよね?言語とは言えんシロモンだし。
でも勉強しないと仕事にならんし。

84 :
>83
意味があるかどうかは、「この先」が何を示しているかによる。
少なくとも、余命僅かなVB(.Net以前)をやるよりはマシでしょう。
というか、Magicも含めて他の言語・ツール全てに言える事だが、それ単体を使えるだけでは
もはやスキルとは呼べないし、仕事も無くなっていくでせう。
V9PlusでJavaとの連携もサポートされるみたいだし、そのへんを習得するのも手かと。

85 :
>84 忠告サンクスコ
余命短いかどうかは知らんがたしかにVBドトネト以前は少なくなってきている。
ただデータベースならSQLやらオラクルだとかのほうが良くない?そこんとこどうなのかは
知らんが、そのへん考えると、VB勉強する価値はまだあるのかとは思うが。。。
VBとVC++しか知らないのだが、V9PlusでJavaとの連携もサポートされるみたいだし、
ちゅうことで、Javaも視野に入れて勉強してみる。
ただこの会社長いことはいないだろぅな。。。

86 :
>85の会社のMagic使いの人にMagic*しか*使えない人が多いなら、先は苦しいかも。
ついでに言えば、MagicはDBMSとしてオラやSQL鯖も使えるよ。

87 :
へぇ〜SQL鯖なんか使えるんだねぇ。そういや手引書にもそんなこと書いてあったな。
VBよりは奥が深くないと言われたが、結構悩みながらやってる。
まだ入って間もないからわからないけど18人ほどいてほとんどがMagicやってるよ、
VBは2〜3人くらいかなぁ。VBのスキルは貴重だから忘れないでくれみたいなこといわれた。
とにかく、このスレ貴重だからdat落ちさせないようにちょくちょくこなければ。。。

88 :
ハスプってなんですか?

89 :
>88
↓こんなの。
ttp://www.aladdin.co.jp/hasp/
MAGIC用はUSBじゃなくてパラレルポートだけど。

90 :
V9.x開発ユーザに朗報!!V9PLUSの無償ダウンロード版が公開されました。

91 :
Webマージ機能ぐらいでしょうか。使えるのは。。。。
JCXエンジンと組み合わせれば開発は楽かも。。。

92 :
sage

93 :
年末もMAGIC使って仕事だゴルァ

94 :
年始からMAGIC使って仕事だゴルァ

95 :
ニュースグループが見れん・・・

96 :
ハスプうぜぇー。誰か外しても動くやり方教えてくれー。

97 :
会社のパソコンのHDDが飛んでしまいました。
交換してから、バックアップがあったので、復旧させたのですが、
帳票の印字で
   
  ”山田 太郎 様 ” などど表示されるべきところが
  ”`カDH1田 太郎 様 カDH4`”と表示されてしまいます。
 直せるのは実行用のバッチファイルだけなのですが・・・だれかわかる方いらっしゃいませんか?
           起動バッチファイルの内容です。 
SET $DATA=C:\MGPG43FL
WMANAGER /J=#7 /I=$61
WPVE /E='
BTRIEVE /M:32/B:16/P:2048/F:20/C/T:MAGIC.TRN
MGSWAP MGRNT.EXE /MACHINE=I /TERMINAL=1
MGSTOP
WMANAGER /R
 
なお、マジックはver4.3 です。m(__)m

98 :
>97
Ver4.3つーとDOS版でつか?
MAGICはVer8から入ったのでわかりません。
文字化けするということはデータが正しく読めてないということですが…

99 :
MS−DOS版です。
文字バケというか、改行時にバケ文字がでる様なんです。
1行毎に、左右に表示されるので・・・。プログラムの発注先が
廃業してるので、ネットでどこかにたのめないかと見ても、いまどき
4.3のプログラム見れるなどど書いてるとこがないので、請求書は手書きで
す(><)

100read 1read
1read 100read
TOP カテ一覧 スレ一覧 2ch元 削除依頼
プログラマー的"女の口説き方" (710)
いもうとデスクトップを実際に作ってみないか?3 (848)
IEコンポーネントを使い倒すスレ Ver.2 (701)
形態素解析と日本語処理 (468)
サウンドプログラミング5 (628)
UIデザインガイドライン 2007 (449)
--log9.info------------------
★X-JAPANの“音”について真面目に考えるスレ38★ (486)
【スペイン】SXスッドレ2【安ギター】 (596)
Fender OPB・テレベについて (567)
NETDUETTOでセッション part6 (238)
Telecaster Custom 2 (284)
[AC]パワーサプライ 5個目[DC] (282)
チューブアンプ総合 (544)
【アコギ】アコースティックギター総合スレ♪4 (531)
アコギでかっこいい曲弾くギタリスト (295)
国産工房ベース総合スレ (254)
Suhr 12 (307)
Headwayのアコギ (244)
【Fender】フェンダーアンプ 23発目【AMP】 (840)
BEHRINGER / ベリンガースレ part11 (553)
”タイム感”について研究するスレ2 (386)
ちっこいチューブアンプ 35台目 (578)
--log55.com------------------
【爽やか聡明】小野祐夢ちゃん応援スレ【ひろむー】
【昼食イラネ】貧乏ゴルフ32【その分引け】
やっぱりマッスルバック! その10
PING ピン その35
【可憐】 森美穂 応援スレ 10 【美人】
ゴルフあるある早く言いたい Part.4
【感覚派】リシャフト総合27本目【理論派】
キャロウェイ総合スレ Ver.1.4