「지혜가 있는 놈은 지혜를 내라. 힘이 있는 놈은 힘을 내라.
돈이 있는 놈은 돈을 내라. 아무 것도 없는 놈은 힘내라」
하고 라디오에서 말했다지.
요근래 본 개그 중 최고…
오랜만에 본 재밌는 개그가 있어서 이곳에 소개 직링크는 이곳. http://newkoman.mireene.com/tt/3792 어느 아내가 프로그래머 남편에게 「쇼핑하러 갈 때, 우유 하나 사와. 아, 계란 있으면 6개 사와」 ..
프로그래머 남편의 신부름글을 보면서, 프로그래머가 대화에서 굉장히 부족한 존재처럼 비춰져서 씁쓸하다. 대화란 전후 사정과 현재 상황을 종합해서 하는 것인데, 실제 저랬다면 “난 너의..
기획자 교육 준비 : 개발자 이해하기, 디자이너에게 배려하기.
저는 이걸 이제야 봤어요. ㅋㅋㅋ 메모 남기고 싶네요. 남편이 우유 6개를 사온 이유
남편이 우유 6개 사온이유 대박이네.. ㅋㅋㅋ
우유 6개 사온 개발자 ㅋㅋㅋ
void buy(ObjectType type, int count);
남편이 인식한 프로그램 :
buy(TYPE_MILK, is_egg_exist() ? 6 : 1)
부인이 의도한 프로그램 :
buy(TYPE_MILK, 1);
if (is_egg_exist()) buy(TYPE_EGG, 6);
int 계란개수 = 0;
int 우유개수 = 0;
우유개수 = 1;
if(true == 계란)
{
우유개수 = 6;
}
MOV milk, 1
CMP egg, 1
JGE eggexists
JMP buy
eggexists:
MOV milk, 6
buy:
~~~
응?
여자의 의도:
People *husband = Husband->getInstance();
Product *milk = new Milk(1);
Product *egg = new Egg(6);
husband->moveTo(village->supermarket);
husband->buy(milk);
if ( husband->check(egg) ) { husband->buy(egg); }
husband->moveTo(village->home);
남자의 구현:
class Husband : public People
{
...
int buy(Product *prdt)
{
...
if ( this->mentalStatus == this->IRRITATION )
{
this->buyRandomProduct();
}
...
}
...
}
public class 심부름 {
private bool isExistEggs(int numEggOfMart) {
if (numEggOfMart >= 1) {
return true;
}
else
return false;
}
public void buyMilks() {
if (isExistEggs(Mart.getNumEgg()) == true) {
buy(Goods.MILK, 6);
}
else {
buy(Goods.MILK, 1);
}
}
...
}
여러분.
절대로 프로그래머는 저 남편처럼 코딩하면 안됩니다.
그러니까 프로그래머(혹은 코더)가 욕먹는 겁니다.
요건 정의가 모호하다고 해서 그걸 곧이 곧대로 구현하는 프로그래머땜에
프로젝트 PM 은 아주아주 당황스러워 오늘도 담배를 연달아 피게됩니다.
인공지능까지는 안바래도 적어도 논리적 체계는 세워서 프로그래밍 해야죠.
아내는 무죄.
좋은 설계는 한 명의 천재보다 세 명의 범재를 요구한다.
나쁜 설계는 백명의 범재보다 한 명의 천재를 요구한다.
http://newkoman.mireene.com/tt/1456
정말좋은설계는 천재가 필요합니다만,
좋은설계는 그냥 부지런하고 꼼꼼하면되죠.
공부를 안해서 그런거지 어지간한 설계는 이미 누군가 하셨습니다.
아내는 월요일마다 우유로 목욕을한다.
마트에 월요일만 계란이 들어온다.
-> 마트에 계란이 있으면 우유를 6개사와라.
이딴걸 설계라고 하는게 문젭니다.
마트에 계란이 안팔려서 남아있으면 화요일에도 우유를 사오게 되있습니다.
설계&관리는 이런거 검토하라고 둔겁니다.
그냥 대축 찍찍쓰고 프로그래머가 알아서 고칠것같으면 왜 설계를 따뤄둬야합니까.
와이프의 주문 :
Dim BuyList As New BuyItemListCollection()
BuyList.Add(New Milk())
If Market.FoodCorner.Eggs.Count >= 6 Then
For intCnt As Integer = 0 To 5
BuyList.Add(New Egg())
Next
End If
Dim Buy As New BuyItem()
Buy.Purchase(BuyList)
남편의 장보기 :
If Market.FoodCorner.Eggs.Count >= 6 Then
For intCnt As Integer = 0 To 5
BuyList.Add(New Milk())
Next
End If
Dim Buy As New BuyItem()
Buy.Purchase(BuyList)
Console.WriteLine("Mission Successful"
컴파일 후 :
처리되지 않은 예외: System.Wife.DontUnderStandMyIntentionException:
와이프 말을 제대로 알아듣지 못한 상태에서 장을 보려 했습니다.
아이폰어플식으로만들어봤어요
클래스를나눠야하는게구찮아서메소드로넣었어요
DoEarn *buyMilk
@property (nonatomy, retain) *buyMilk;
@synthsize buyMilk;
- (BOOL)applicationUIApplication *)application didFinishLaunchWithOptionsNSDirectory *)launchOptions {
DoEarn *buyMilk = [[DoEarn alloc]init];
[buyMilk addTarget:self action:@selector(checkEggnBuy) forControlEvernts:ThinkWhatyourWifetold];
[window addSubview:buyMilk];
[window makeKeyAndVisible];
return YES;
}
-(void)checkEggnBuyid)sender{
if(계란>=1)
{
for(i=0; i<5; i++)
buy(우유);
}
else
buy(우유*1);
}
-(void)dealloc {
[buyMilk release];
[window release];
[super dealloc];
}
@end
아이폰어플식으로만들어봤어요
클래스를나눠야하는게구찮아서메소드로넣었어요
DoEarn *buyMilk
@property (nonatomy, retain) *buyMilk;
@synthsize buyMilk;
- (BOOL)applicationUIApplication *)application didFinishLaunchWithOptionsNSDirectory *)launchOptions {
DoEarn *buyMilk = [[DoEarn alloc]init];
[buyMilk addTarget:self action:@selector(checkEggnBuy) forControlEvernts:ThinkWhatyourWifetold];
[window addSubview:buyMilk];
[window makeKeyAndVisible];
return YES;
}
-(void)checkEggnBuyid)sender{
if(계란>=1)
{
for(i=0; i<5; i++)
buy(우유);
}
else
buy(우유*1);
}
-(void)dealloc {
[buyMilk release];
[window release];
[super dealloc];
}
@end
오라클 쿼리는 없길래.. 적어봐용.. ^^
-- 아내의 의도
SELECT DECODE('SHOPPING', 'SHOPPING', 'MILK ONE'||(DECODE('EGG', 'EGG', ' AND EGG SIX', '')), 'NONE') AS RESULT FROM DUAL;
-- 남편의 이해
SELECT DECODE('SHOPPING', 'SHOPPING', DECODE('EGG', 'EGG', 'MILK SIX', 'MILK ONE'), 'NONE') AS RESULT FROM DUAL;
//와이프 추상클래스
public abstract class Wife {
protected int milk = 1;
protected int egg = 6;
public abstract void doErrand();
}
//와이프를 구현한 남편
public class Husband extends Wife {
private static Errand errand;
public Husband(Errand errand){
this.errand = errand;
}
public void doErrand(){
errand.doErrand(super.milk, super.egg);
}
}
//심부름 인터페이스
public interface Errand {
public abstract void doErrand(int milk , int egg);
}
//틀린 심부름
public class FalseErrand implements Errand {
boolean MarketEgg = true;
public void doErrand(int milk , int egg) {
if(MarketEgg){
System.out.println("우유:"+egg);
}
}
}
//맞는 심부름
public class TrueErrand implements Errand {
boolean MarketEgg = true;
public void doErrand(int milk , int egg) {
System.out.print("우유:" +milk);
if(MarketEgg){
System.out.println("계란:" + egg);
}
}
}
//테스트 코드
public class TestErrand {
@Before
public void init(){}
@Test
public void test(){
Errand errand = new FalseErrand();
Wife god = new Husband(errand);
god.doErrand();
}
}
나도....미쳤다....
# 부인
if egg.isexist():
egg.buy(6)
milk.buy(1)
# 남편
if egg.isexist():
milk.buy(6)
else:
milk.buy(1)
10년차 숙련 프로그래머 한명 쓰는 것보다 비주얼베이직 어제 뗀 초짜 프로그래머를 더 선호하는 "승리의 IT 강국"이기 때문에 그렇습니다
외국 어디 일본이라던가 암튼 뭐 이상한 이름 쓰는 나라에서는 50대 프로그래머가 최신기술은 잘 못쓰지만 프로그램 버그는 귀신같이 찾아낸다는 말도 있습니다만...
그럴 리 없습니다. 그럴 수 없습니다. 없어야 합니다.
"승리의 IT강국"에서도 40대 프로그래머 찾기가 하늘의 별따기인데 다른 나라에 50대 프로그래머가 있을 리 없지 않습니까.
역시 "승리의 IT 강국 코리아"답습니다.
와, 다들 어처구니 없으시네요...
저 정도의 오덕^2 수준의 Super Nerd가 과연 누군가의 "남편"이 될 수 있다고 생각하시는건지...?! LoL
남편분이 요구분석이 좀 약하시네요.
분명히 마침표가 있음에도 하나로 인식하다니...
1. 쇼핑하러 갈 때, 우유 하나 사와.
2. 아, 계란 있으면 6개 사와
1번은 쇼핑을 하러 가게되면 우유를 하나 사는 겁닏나.
2번은 계란이 있으면 6개를 사는겁니다.
if 쇼핑을가게되면 then 우유구매;
if 계란존재 then 6개구매;
쇼핑을 가면 우유구매를 하게 되고, 안가면 안하는 건데
많은 프로그래머들이 쇼핑따위는 가지 않으므로 우유는 안사게 될 거 같네요.
2번의 경우는 매우 많이 오픈되있네요.
어디에 계란이 있는지 무엇을 사는지가 빠져있는 요구사항입니다.
여기까지 분석하고 나면 요구사항에 대한 문제점을 피드백을 해주고 놀았어야 할 거 같네요.
음 방법론 접근 없이 무작정 코딩으로만 풀어버릴라고 덤비는 바보 프로그래머를 남편으로 둔 박복한 마누라의 한탄이 엿보이는 문학 작품이 군요. 클라이언트의 요구사항을 분석하고 그 사용하고자하는 유즈 케이스 까지만 분석을 했어도 저런 짓은 안했을 건데.. 방법론을 단순히 보여주기 위한 단순 노가다 문서 따위로 생각하는 자기 일에 대해서 체계적이고 효율적인 방법으로 일을하지 않고 자기 기준으로 일처리하는 골때린 시대에 뒤처지는 남편상이군요
유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다 유게서 성지순례왔습니다
<?php
function Buy($name,$num){ // 물건 구입 함수
$table = "Item";
$mysql = mysql_connect('127.0.0.1', 'mart', 'martadmin');
$data = mysql_query("SELECT * FROM `{$table}` WHERE `item` like `{$name}`"
if ($data) $data2 = mysql_fetch_array($data);
if ($data2['num'] <= 0) return false; else {
mysql_query("UPDATE `{$table}` SET `num`='{$data2['num']}' WHERE `item` like `{$name}`;"
mysql_close($mysql);
return true; }
}
function Check($name){ // 물건 확인 함수
$table = "Item";
$mysql = mysql_connect('127.0.0.1', 'mart', 'martadmin');
$data = mysql_query("SELECT * FROM `{$table}` WHERE `item` like `{$name}`"
if ($data) $data2 = mysql_fetch_array($data);
return $data2['num'];
mysql_close($mysql);
}
function egg_exists(){ // 계란의 존재 확인
if (Check("Egg") return true;
}
if (egg_exists()) Buy("Milk", 6); else Buy("Milk", 1);
?>
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
댓글을 달아 주세요
힘이 있는 놈이랑 아무 것도 없는 놈이랑 낼 게 똑같네요?
위에 힘을 내라는 힘'을' 달라 는 거고
힘내라는 cheer up 하라는 거죠
力を出せ와 がんばれ의 차이일듯....
힘내라니....
知恵がある奴は知恵を出そう.力がある奴は力をだそう.金がある奴は金を出そう.『自分は何にも出せないよ・・』っていう奴は元気出せ。」
아래의 '힘내라'는 '기운내라' 정도로 바꾸면 안 겹치지 않을까요
힘을 내다와 힘내다는 다른 말이니까 말을 억지로 바꾸면 더 이상할 거 같네요.
말을 바꾸는건 이 글을 지우라는 소린데
덧글 중 제일 개념있는 덧글
지혜가 있는 녀석들은 지혜를 보태라. 힘있는 놈은 힘을 보태고.
돈이 있는 녀석들은 돈을 보태라.
난 할수 있는게 아무것도 없어... 이런 녀석들은 기운내라.
본격 리라짱 번역에 딴지 거는 스레
"내라" 라는 어미(?)가 있어서 이렇게 번역하는 게 자연스럽다고 생각함
키즈님 의역이 더 와닿네요
힘을 내라, 랑 힘내라가 구별이 안가나요?;;
번역 괜찮다고 생각했는데..
그렇게 구분지어 버리면 이렇게 말장난 하는 의미가 없지 않나요? 리라쨩이 한 그대로가 제일 나아보이는데~
저는 주먹을 내겠.. 아 이게 아닌데
그럼 저는 보를 내겠... 아 이게 아닌데
그럼 저는 가위를 내겠... 아 이게 아닌데
그럼 저는 울버린을 내겠...아 내 재충전시간 ㄱ=
아무 것도 없는 사람 화이팅 으로 번역했으면 괜찮았을까
「아무 것도 없는 놈은... 힘내라w」
리라님 번역 언어유희같아서 재밌는데..
마츠야마 치하루가, 이번 지진 사태 관련해서 한 소리라는 걸로 봐서, 개그나 언어 유희성 발언은 아닙니당...
저도 리라님의 번역이 더 재밌습니다.
번역의 문제가 아니고, 처음부터
똑같이 '힘'이란 것을 내라고 하니, 말이 겹치는데서
(물론 그 뜻이 다른 것은 한국인과 일본인만 알아들을 수 있지만)
오는 말장난 개그 아닌가요? 틀림없이 그런 줄 알았는데
원글을 리라님이 옮기면서 의도적으로 저렇게 바꾸신거
같은데, 그 때문에 개그 글이 되긴 했지만..
원래 글은 개그와는 상관없는 글이죠. 일본인들은
저 번역을 보고 한국인들이 웃는것에 대해서 설명해주기
전에는 웃는 이유를 이해 못합니다.
앞의 힘을 내라는 말 그대로 힘을 보태라는 의미고.
뒤에건 기운 내라는 의미니까요.
저도 맨첨에 번역만 봤을땐 웃었음 ㅋ
이걸 이해 못한다는 거 자체가 웃기다 -_-.. 국어는 배운건지 의문.