2011年10月1期プログラマーアンドゥ、リドゥを実装できたら見習い卒業 TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
ベンチャー企業に就職した皆さんへ
【違法】ブラックリストの存在について【派遣】
救世主として偽装派遣されました。
◆◆仕様書に「食え」と書いてあったら◆◆


アンドゥ、リドゥを実装できたら見習い卒業


1 :11/09/08 〜 最終レス :11/12/18
お絵かきソフトでも、エディタでも、データ加工でもいい。
アンドゥ、リドゥを実装できたら、見習い卒業だ。
いっぱしのプログラマとして認めてやる。
但し、Mementoパターンは使わずにスタックを使うこと。

2 :
で?

3 :
ヒントはなし。自分の力だけでやってみろ!

4 :
で?

5 :
できない奴はまだ見習いということだ。

6 :
で?

7 :
あとは、自分の頭で考えてみろ。

8 :
void undo() {
  printf("Hello World!\n");
}
void redo() {
  printf("Goodbye World!\n");
}
これでいいのか。

9 :
スタックなんていらない。
入力時、必ず fork しておけば良い。

10 :
メモリの消費量と処理に伴うオーバーヘッド、実装のしやすさを鑑みて、ここではスタックを利用した実装しか認めない。
力技でごり押しの実装など、見習い期間中ならばまだ大目にみるが、いっぱしのプログラマとしては認められないのだ。

11 :
>>8
お前はまずアンドゥ、リドゥとは何かを調べろ。あと1年は見習い決定。

12 :
ずいぶんと視野が狭いね。
もしかして COBOLER?

13 :
たった1年で見習い卒業とは
くくく、今年も活きの良い新人が入ってきたようだぜ。俺たちもうかうかしてられないな。

14 :
1年きっかりとは言っていない。
文章読解能力の無い奴も見習い卒業はお預けだ。

15 :
アンドゥ/リドゥの実装など、経験を積んだプログラマならそれこそ何十回となく実装しているだうろが、
見習いの卒業判定としては手ごろな問題だろう。
とはいえ学生時代に理論については学んでいるだろうし、もしかしたら実習で経験済みかもしれない
ので、難度としてはそれほど難しくもないだろう。

16 :
昔はメモリが貴重だったから工夫したけど、今はまるごと保存しとけばいいんで楽だな。

17 :
いちいちもっさりとした動きになるから、今の時代であろうともメモリやオーバーヘッドに
気を使ったプログラミングが重要なことは言うまでもない。
またケータイやスマホのアプリの場合は、もちろんそんな富豪的なプログラミングなど
許されない。 今もメモリを始めとする寡少なリソースの中でギリギリの戦いを強いられ
ている現場は少なくないのだ。
スタック操作はプログラミングはもとより、コンピュータ工学の基本であり、他の処理で
あっても頻繁に適用される有用性の高いノウハウであるといえる。ブラグラマなら当然
押さえておくべきスキルだ。あえてスタックを用いた実装に限定したのはそういうわけが
ある。

18 :
この板には見習いレベルの奴しかおらんのか

19 :
何をアンドゥリドゥするかによるでしょ

20 :
そんなもん人生に決まっとる!
人生のアンドゥこそ、マが求めし究極の黒魔術ぢゃ。
だがしかし、マの創世より半世紀、今だかつてこの奥義を
極めしマはおらんと聞く。

21 :
ITギョーカイとは、一歩足を踏み入れたが最後、戻ることなど叶わぬ一方通行の血塗られし
地獄の荒野なのぢゃ。恐るべきブラック軍団が張り巡らせし蜘蛛の巣地獄ぢゃ。
誰もがその苦難から逃れようと必死でもがき苦しんでおる。
それゆえマは叶わぬと知りながら、日夜人生のアンドゥを夢見ておるのぢゃよ。
今日もどこかでうわごとのようにアンドゥ、アンドゥ、とつぶやくマの姿が…
哀れよのぉ…

22 :
安藤さーん

23 :
真面目に教えて欲しいんだけだ
「forkしておく」ってどう言う事?
会社でもそう言う言葉聞いたけど意味が分からなかったから(まったく別プロジェクトでまったく関わりのない人だったからその人には聞かなかった)教えてください

24 :
フォークってどんな道具よ

25 :
スパゲッティなソースを絡める時に使います。

26 :
自分の人生をアンドゥ・リドゥ。

27 :
undo/redoって編集記録を全部差分で保存しておくんだよね?

28 :
全部記録してたらバッファがいくらあっても足りないだろ。
普通は記録回数の制限を設定できるようにする。
編集内容を保存するのはMementoパターンのやり方だな。

29 :
Undo必要なものは、全部記録してもたいした事ないのがふつう。
ゲームでUndoしたくなるけど。

30 :
画像編集ソフトのアンドゥーってどうやってるのかね。
差分ををとるにしても、けっこうデータでかいと思うけど。

31 :
>>30
画像を記録するのではなく、作業内容を記録すればいい。

32 :
画像編集の操作はほとんどコマンドで置き換えられるからね。

33 :
可逆な操作だけなら作業内容記録するだけで済むけどね。

34 :
ま、プログラマたるもの、アンドゥ/リドゥの実装は基本中の基本だな。
いまどき、アンドゥ/リドゥできない編集ソフトは糞だ。

35 :
>>33
時折画像も記録すりゃいい。mpegのIフレームみたいな感じで。

36 :
時折?

37 :
折にふれ

38 :
いみじくも

39 :
>>33
可逆じゃない作業なんて、外部入出力が関わる部分しか無いだろ。
画像の変更だって線とかペンの描写メインなら
Pixel old_pixel( Point<2>( x , y ), Color<32>( 0xFF00FF ) );
modify.push_back( &old_pixel );
感じで記録しておきゃいい訳だし。
変更の範囲が広いなら、スナップショットを撮っとけばいい。
ターゲットにするものによって、変更の記録方法は変わるけど、
オブジェクトを使って、コマンド制御の仕組みを作っときゃ、
全体は割と単純になるよね。
struct Command
{
        virtual void Do(void) = 0;
        virtual void UnDo(void) = 0;
};
Command *command = new XXXXX( event_arg1, event_arg2 );
executer.Do( command );
executer.UnDo( 5 );
exccuter.ReDo( 2 ):

40 :
C++ならiteratorの都合上insert_iteratorと同じ形のほうが
いいかもしれん。
*executer = command;
executer -= 5;
exccuter += 2;

41 :
>>39
いや?殆どは可逆じゃないよ?
単純なモザイク処理でも、モザイクかけた画像と「モザイクかけました」という操作情報から
元の画像に戻すのは至難の業だ。

42 :
>>23
プロセスをまるごと複製しとく事。
OSの機能なんで、ホントにプロセス全体を複製する事はなく、
複製側は、複製元を参照し、複製元と異なる部分だけメモリに保持する。
そのため、消費メモリを低く抑えられる。また、差分管理はOSが
勝手にやるんで、早いしコードが簡単。

43 :
>>41
モザイク前の情報持ってれば復元可能でしょ。
複製前の情報無しで復元可能な可逆ってのは普通ないと思う。
2 + 8 = 10 で求めた 10 から 8 + 2 を求めるには少なくとも、
8 か 2 のどちらかの値が必要なわけだし、これがダメだと言うと
可逆なもんなんて何もない。

44 :
だから、作業内容だけじゃなくてデータが多くなっても画像も保存しないといけないねという話。

45 :
どうでもいいが、モザイク消去ますぃーんを買った黒歴史のあるヤツいる?
ああいう販売業者って結局どうなったのかな。ブタ箱入らずのうのうと暮らしてんのかな。

46 :
どうでもいい

47 :
>>30 だけど、書き込んだの忘れてて今みてみたら、>>31 みたいな
よく分かってないのに知ったかで分かったような口利いて、ツッコミ入
れられて暴れてるって2chらしい展開になってて安心した。

48 :
>>42
で、態々プロセス間の同期を取るわけ? ばかなの?

49 :
>>48
なんで止まってる子プロセスに同期が必用なのバカなの?

50 :
血ぃ出したり、しょんべん出したり、ラヴジュース出したり、女って器用な生き物ね。

51 :
同じ穴から用途の違うモン出し分ける男の方が器用じゃねえの?

52 :
みんな、まだちゃんと糞と屁をきちんと出し分けられているか?

53 :
そっちはまだ大丈夫だ。

54 :

 Undo/Redoの実装はマの常識だよな

55 :
javascriptスタックないお(´・ω・`)

56 :11/12/18
Arrayがあるからなんとかなっだろ
TOP カテ一覧 スレ一覧 削除依頼
・ 次のスレ
ベンチャー企業に就職した皆さんへ
【違法】ブラックリストの存在について【派遣】
救世主として偽装派遣されました。
◆◆仕様書に「食え」と書いてあったら◆◆