PyCharm 진짜 대박인듯합니다. ㄷㄷ 이 좋은걸 왜 안 썼을까요? 유료니꽈 ㅋㅋ

 
Seungho Kim

PyCharm 진짜 대박인듯합니다. ㄷㄷ 이 좋은걸 왜 안 썼을까요? 유료니꽈 ㅋㅋ

  • 김승호

    회사에서 사준다지만 아직 안 쓰고 있는… ;;

    Seungho Kim

    @김승호 저도 이제 깔고 이것 저것 보고 있는데 django랑 python 개발하기에는 최고인거 같습니다.

    김승호

    바로 옆자리 동료도 제게 PyCharm을 열심히 권합니다. 제가 봐도 좋은 점이 있고요. 그치만 손에 조금 익었다고 Sublime을 벗어나기가 쉽지 않네요. ㅎㅎ

    Seungho Kim

    @김승호 저도 지금까지 sublime을 썼었는데 django 개발에 쓰기엔 2% 부족한거 같아서 한번 써봤는데 쥑이네요 ㅋㅋㅋ

    Moon Soo Kim

    회사가 소규모 스타트업이라 영문 사업자 등록증 제출해서 커머셜 라이센스를 반값 할인으로 저희 팀원들에게 뿌렸습니다….ㅋ 근데 정작 저는 vim 에서 코딩하는 ㅡㅡ;;

    https://www.jetbrains.com/estore/startup/

    Juyoung Lee

    파이참 저는 학생라이센스 쓰고있죠 ㅋㅋㅋ

    Juyoung Lee

    진짜 세심한 배려가 돋보이는 툴이죠 ㅋㅋ 필요한 기능이 딱딱있음 ㅎㅎ

    Yongdae Hwang

    개인 라이센스를 사서 회사에서 쓰셔도 됩니다. 개인이 사야 합니다

    Jeong YunWon

    다들 유료라고 말씀하시는 것 같은데, 몇 달 전부터 커뮤니티 에디션 무료로 풀렸습니다. 일부 기능 제외하고 무료로 이용하실수 있습니다 🙂

    Juyoung Lee

    장고기능없는거 빼면 무료버전도 쏠쏠해요ㅎㅎ

    Juyoung Lee

    참고로 인텔리제이도 커뮤니티에디션나왔어요 ㅎㅎ 이클립스아웃!

고수분들 질문드립니다.. Django orm을 이용해 row를 만들려고 하는데 foreig

 
Juram Park

고수분들 질문드립니다..
Django orm을 이용해 row를 만들려고 하는데 foreign key 의 field를 이용하는 방법이 있을까요 ?
예를들어
class Friend(modesl.Model):
name
class My(models.Model):
friend = models.ForeignKey( Friend )

my = My( friend_name = ‘pjr’ )
my.save()

이런식으로 가능한가요..? foreign key의 object자체를 넘기거나 id를 넘겨서는 가능한데 id가 아닌 field name으로 가능한 방법이 있나 궁금합니다..

두서없이 질문드려서 죄송합니다.. 고수분들의 답변 부탁드립니다.

  • Chinseok Lee

    어차피 기본키 id 를 찾는 과정이 필요하니깐, object 를 넘기는 방법 밖에 없겠네요.

    my = My(friend=Friend.objects.get(name=’ptr’))

    Jacob Seongwoon Lee

    My.objects.filter(friend__name = ‘pjr’)

    Juram Park

    감사합니다!!!

Deep into Python – 파이썬 코딩을 하면서 명확하지 않다고 생각한 부분들 정리

 
이상욱

Deep into Python – 파이썬 코딩을 하면서 명확하지 않다고 생각한 부분들 정리

  • Shin Ilsuk

    오.. 좋은 정보 감사합니다.

장고 버그픽스 릴리즈가 나왔습니다. 장고 1.4.12 장고 1.5.7 장고 1.6.4 장

 
남홍김

장고 버그픽스 릴리즈가 나왔습니다.

장고 1.4.12
장고 1.5.7
장고 1.6.4
장고 1.7 beta3
으로 업그레이드 하시면 되겠습니다.

* 저번 주에 보안 이슈 관련 릴리즈가 있었는데요. 릴리즈 하면서 regression 관련 문제가 보고 되었고 그것을 해결한 릴리즈입니다.

셀러리 subtask를 이용하여 task 안에 task를 만들어 처리해보려고 합니다. 원래

 
Jacob Seongwoon Lee

셀러리 subtask를 이용하여 task 안에 task를 만들어 처리해보려고 합니다.
원래 하나의 task로 짜서 정상동작 하는 것을 루프로 처리하는 부분에서 다시 한 번 subtask로 수행시키려 하는데요. 간단하게 슈도코드로 작성하면..

@task
def analysis(self):
batches = […]
users = […]
chord(get_feed.s(self, batch, user) for batch, user in zip(batches, users))
get_feed task에서 만든 변수를 활용
return task_id

@task
def get_feed(self, batch, batch_id):
API 요청을 통한 대량의 feed 수집 진행
리턴해야되는 데이터는 없음, 전부 parent 변수에 저장됨.

이런 식인데요. task를 수행시키면 그냥 쑤욱 통과해서 task_id를 뱉어버리고 마네요.

[2014-04-28 16:26:57,790: INFO/MainProcess] Received task: tasks.analysis[64423ce1-cc63-4e30-962a-b022301fc5ad]
[2014-04-28 16:26:57,808: INFO/MainProcess] Task tasks.analysis[64423ce1-cc63-4e30-962a-b022301fc5ad] succeeded in 0.0147866129992s: u’64423ce1-cc63-4e30-962a-b022301fc5ad’

제가 원하는 것은 subtask를 전부 수행하고, subtask들이 완료가 될 때, 그 다음 명령을 수행하는 것인데 말이죠.

어떻게 생각하시나요?

 
이상욱

어떻게 생각하시나요?

  • Woojing Seok

    절대적인건 없다고 생각합니다. 필요한 부분만 잘 추려서 쓰면 되지 않을까 싶음.
    근데 TDD를 까는 글이다 보니 unit test도 덩달아 까는데 좀 가려서 읽을 필요가 있지않을까 싶네요. 😛

    Jung Kyoung Up

    커뮤니티에서 TDD가 절대적인 것처럼 종교화 되어서 문제가 되는거 같네요.

    Yongdae Hwang

    문제는 언제나 교조주의죠

    Kwon-Han Bae

    그런데 이런글이 나오면 기존에 TDD 빨던분들이 이제는 TDD 않해도됨 이렇게 나옵니다.

    박영록

    글쎄요. 전 이거 그냥 허수아비 공격이라고 봅니다. DHH 쯤 되는 사람에게 누가 TDD 하라고 강요할 수 있겠습니까. 그냥 자신의 테스트 방식에 대한 비판을 받으니까 그거 듣기 싫어서 저러는 것 뿐이죠. 비판 받을 때 제일 쉬운 반격은 “나한테 강요하지마”니까요.

    우리나라에서도 그냥 배우기 싫으면 쉽게 가져다 대는 핑계가 그런 거 아니던가요? 애자일 선언문 한 번 읽어본 적 없는 사람들이 자기는 애자일 한다고 말하면서 워터폴을 하죠. 그러면서 비판당하면 종교라고 반격하죠.

    황희정승 놀이 하느니 저는 그냥 종교인 하겠습니다. TDD 없는 테스트는 앙꼬 없는 찐빵입니다. 앙꼬가 없어도 배는 채우겠지만 찐빵이 주는 효용은 줄 수 없습니다.

    Kwon-Han Bae

    오픈소스 않하는 분이 오픈소스를 대표해서 협의하는 세상이죠 ㅋㅋ

로컬환경에서 테스트를 끝내고 실서버에 Celery 환경을 구성하고 있습니다. App 서버에

 
Jacob Seongwoon Lee

로컬환경에서 테스트를 끝내고 실서버에 Celery 환경을 구성하고 있습니다.
App 서버에 redis를 돌려서 broker와 result backend로 이용하고,
Worker 서버를 하나 같은 환경으로 만들어 celery를 실행하였습니다.
근데 실행 단계에서 오류가 하나 발생하였는데, Traceback만 보아서는 무슨 오류인지 모르겠습니다.

실행 명령

$ python manage.py celery worker –loglevel INFO –settings=hello_cherry_picker.settings.prod

Traceback

[2014-04-24 21:34:15,497: ERROR/MainProcess] Unrecoverable error: TypeError(‘argument must be an int, or have a fileno() method.’,)
Traceback (most recent call last):
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/celery/worker/__init__.py”, line 206, in start
self.blueprint.start(self)
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/celery/bootsteps.py”, line 123, in start
step.start(parent)
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/celery/bootsteps.py”, line 373, in start
return self.obj.start()
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/celery/worker/consumer.py”, line 278, in start
blueprint.start(self)
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/celery/bootsteps.py”, line 123, in start
step.start(parent)
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/celery/worker/consumer.py”, line 478, in start
c.connection = c.connect()
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/celery/worker/consumer.py”, line 375, in connect
callback=maybe_shutdown,
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/kombu/connection.py”, line 373, in ensure_connection
interval_start, interval_step, interval_max, callback)
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/kombu/utils/__init__.py”, line 243, in retry_over_time
return fun(*args, **kwargs)
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/kombu/connection.py”, line 241, in connect
return self.connection
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/kombu/connection.py”, line 758, in connection
self._connection = self._establish_connection()
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/kombu/connection.py”, line 713, in _establish_connection
conn = self.transport.establish_connection()
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/kombu/transport/virtual/__init__.py”, line 809, in establish_connection
self._avail_channels.append(self.create_channel(self))
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/kombu/transport/virtual/__init__.py”, line 791, in create_channel
channel = self.Channel(connection)
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/kombu/transport/redis.py”, line 445, in __init__
self._pool.disconnect()
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/redis/connection.py”, line 478, in disconnect
connection.disconnect()
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/kombu/transport/redis.py”, line 800, in disconnect
channel._on_connection_disconnect(self)
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/kombu/transport/redis.py”, line 461, in _on_connection_disconnect
self.connection.cycle._on_connection_disconnect(connection)
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/kombu/transport/redis.py”, line 259, in _on_connection_disconnect
self.poller.unregister(connection._sock)
File “/home/nalebe/Development/VirtualEnvs/hcp/local/lib/python2.7/site-packages/kombu/utils/eventio.py”, line 85, in unregister
self._epoll.unregister(fd)
TypeError: argument must be an int, or have a fileno() method.

  • Jacob Seongwoon Lee

    [2014-04-24 21:31:43,255: DEBUG/MainProcess] | Consumer: Starting Connection 이후 에러가 발생합니다.

    Seo Min Kyu

    브로커가 켜져있지 않은가봐요~

    Jacob Seongwoon Lee

    Seo Min Kyu 고맙습니다. 확인해보겠습니다!

    Jacob Seongwoon Lee

    Seo Min Kyu 그 문제가 맞는거 같군요. redis를 백그라운드로 돌려뒀는데.. 뭔가 문제가 있었나보네요.

    Jacob Seongwoon Lee

    Seo Min Kyu 답변 감사드립니다.