Programming2017. 1. 7. 08:14


------------------


------------------

http://sdtimes.com/sd-times-top-github-projects-2016/

'Programming' 카테고리의 다른 글

github에서 배우는 machine learning, deep learning  (0) 2017.01.07
github - awesomo  (0) 2017.01.07
github - 공짜책, Free Programming Books  (0) 2017.01.07
Python IDE - PyCharm  (0) 2016.07.07
Visual Studio로 Linux app개발한다  (0) 2016.07.07
Posted by 쁘레드
Programming2017. 1. 7. 07:59

오 Free Programming Books에 아주 좋은 책들이 많이 리스트되어 있습니다. 영어는 더욱 많고요. 한글도 좀 있네요.

---------------------

Top 5 projects trending on GitHub this week (it’s back!)
#1. 
GrumpyToday’s SD Times GitHub project of the week (and also covered here)!

#2. FreeCodeCampIt’s still here. Forever a go-to for open-source data and curriculum.

#3. HeroSupercharged transition engine for iOS.

#4. Free Programming BooksFreely available programming books.

#5. Google Interview University: Previously featured on SD Times; a complete plan for studying to become a Googler.

- See more at: http://sdtimes.com/sd-times-github-project-week-zazu/#sthash.7itTVeZa.dpuf

---------------------


'Programming' 카테고리의 다른 글

github - awesomo  (0) 2017.01.07
GitHub projects of 2016 - to be updated  (0) 2017.01.07
Python IDE - PyCharm  (0) 2016.07.07
Visual Studio로 Linux app개발한다  (0) 2016.07.07
개발자가 생각하는 빠른 시스템 속도의 지표  (0) 2016.03.18
Posted by 쁘레드
Programming2016. 7. 7. 05:19

Python이 오래됐고 아주 유명해서 많은 개발툴이 있지만, 아주 좋은 공짜 IDE가 있습니다. PyCharm. 한번 써보세요.

MS가 개발툴의 명가라면, JetBrains는 IDE은 신생 샛별정도 될것 같습니다. 아주 좋은 툴이 많이 있는데, 다 공짜는 아니네요.(헉~ 다른 것은 비싸네요) PyCharm은 community버전이 free.

Eclipse는 open source IDE의 강자쯤 퇼까요? (with PyDev Plugin)

---------------------------

https://www.jetbrains.com/pycharm/specials/pycharm/pycharm.html

----------------

설치후 추가 library install

File->Default Setting->Project Interpreter

서치해서 바로 install할수 있음. 설치해야할 library

BeautifulSoup (4)

NumPy, pandas, MatPlotLib, SciPy

IPython

----------------

IDE for Python

https://wiki.python.org/moin/IntegratedDevelopmentEnvironments

Posted by 쁘레드
Programming2016. 7. 7. 05:13

ㅋㅋㅋ, 요즘 MS의 정체성이 아주 흔들리고 있습니다. 개발자에게는 아주 좋은 현상이라고 생각되고요, 주식도 발머가 내려가고 계속 오르고 있는것 보면 실적도 계속 좋아지고 투자자들도 맘에 들어하는 것 같습니다.

Visual Studio는 제가 대학다닐때만 해도 개발자라면 누구나 시작하는 개발도구였는데, 윈도우에서만 돌아가고 윈도우용 프로그램만 만들수 있다보니 멀티 플랫폼 추세에서는 반은 버리게 되는 도구였지요. 저도 다른 개발툴로 돌아서면서 노트북에 설치는 되어있었지만 열어보지도 않았던 세월이 있었네요.

Visual Studio는 새로운 CEO아래 윈도우를 때어 버리고 '개발툴'로 컨셉을 잡았나 봅니다. 이름도 Microsoft Visual Studio에서 그냥 Visual Studio로 바꾸고 멀티 플랫폼 개발을 다 지원하고 있습니다. 아주 흐뭇합니다.

Visual Studio Code는 이미 Linux용으로도 나와있지만, Visual Studio내에 있는 엄청난 기능들을 같이 이용하면서 Linux용 app을 개발할수 있다는 것은 또 다른 재미일것 같습니다. Linux용 개발툴도 이미 어려개 있어서 Visual Studio가 최고는 아닐수 있어도 여러 가능성을 열어두는 것은 저는 환영합니다.

--------------------

https://visualstudiogallery.msdn.microsoft.com/725025cf-7067-45c2-8d01-1e0fd359ae6e


Posted by 쁘레드
Programming2016. 3. 18. 01:57

(계속 update중)


CPU benchmark는 요즘 아주 잘되어 있지만, CPU가 빠르면 system이 빠르긴 하지만 자기가 많이 쓰는 기능들이 빨라자지 무작정 빠른 시스템을 사 놓고 웹브라우저나 돌리면 너무 아까우니까.


한동안 꿈의 CPU였던 Intel I7-4790K benchmark

https://www.cpubenchmark.net/cpu.php?cpu=Intel+Core+i7-4790K+%40+4.00GHz



i7-6790k가 나와서 기록을 갱신하겠지만, i7-6700k의 성능에 user들은 분노를 느낍니다. AMD가 더 잘 해줬어야 Intel이 외계인들을 계속 고문했을거라고.


개발자들이 생각하는 속도를 어떻게 측정할수 있을까 생각하다가 이래와 같은 항목을 생각해 냈습니다. 어떻게 하나하나 measure할지 생각해 보고 program을 만들어 측정해볼 생각입니다.

--------------------

컴파일 타임

Ubuntu 14.04.03

linux kernel v3.19.8 source code compile time on x86 기준

time make -j8


Machine

 CPU + RAM

 Time

HP Z400

Xeon w3550 QUAD core 3.06GHz

14GB DDR3

real 28m48.841s

HP Desktop

I7-4790K QUAD core 4.00 GHz

32GB DDR3

real 13m23.313s

DELL Latitude E5440

i5-4200U QUAD core 1.60GHz

4GB DDR3

500GB SSD

real 49m14.846s

 

 

 


--------------------

부팅시간

--------------------

Tree search, Sorting

--------------------

Hash query

--------------------

Pattern matching

--------------------

File I/O, Memory I/O

--------------------

Image Processing

  • JPEG decoding
  • DCT
  • Image Effect Filter

--------------------

Floating point

--------------------

그런데 Linux용 Open Source Benchmark program들이 많이 있네. (너무나 당연하게도)

http://www.howtogeek.com/111617/how-to-benchmark-your-linux-system-3-open-source-benchmarking-tools/

https://sourceforge.net/projects/hardinfo.berlios/ ; source code


hardinfo가 내가 생각했던 지표와 많이 비슷한듯. 노트북은 low power때문에 성능을 함참 죽였지만 user들에게 빠른것 처럼 보이기 위해 graphic card 성능을 계속 높이고 있다고 봐야겠네요. 사용되는 분야는 다르다고 봐야하지만 Raspberry PI는 성능이 딱 가격만큼만 나온다고 생각하면 될것 같음.

Intel i7-4790K는 완전 괴물임. 이거 나오자 마자 산 사람들은 다른 사람보다 훨씬 많은 일을 할수 있겠겠네요.(그랬겠지요?)


 Benchmark

 HP Z400

Dell i5-4200U

HP i7-4790k 

Raspberry Pi 

 CPU Blowfish

 2.550

 4.911

 1.28

 61.85

 CPU CrytoHash

 480.454

 329.142

 1235.56

 15.43

 CPU Fibonacci

 2.245

 1.575

 0.93

 16.10

 CPU N-Queens

 5.558

 4.947

 0.34

 51.41

 FPU FFT

 1.155

 0.978

 0.57

 75.03

 FPU Raytracing

 4.644

 4.446

 2.34

 88.61


WIndows porting?

소스코드가 있어서 윈도우에서도 돌려보려 compile해보려고 했지만, GTK/GLib dependency가 있어서 포팅이 쉽지 않음. 헐~

-------------------


https://wiki.archlinux.org/index.php/benchmarking


Phoronix Test Suite

http://www.phoronix-test-suite.com/

http://openbenchmarking.org/



'Programming' 카테고리의 다른 글

Python IDE - PyCharm  (0) 2016.07.07
Visual Studio로 Linux app개발한다  (0) 2016.07.07
프로그래머의 친구 HEX Editor  (0) 2016.03.18
MPI Parallel Computing + Hadoop  (0) 2016.03.17
Terminal multiplexing with Screen  (0) 2016.03.17
Posted by 쁘레드
Programming2016. 3. 18. 01:48

요즘 젊은 개발자들도 그러는지 모르겠는데 프로그래머라면 사람이 볼수없는 Binary data를 열어보곤 하지요. 저는 인생이 항상 그래서 HEX viewer/editor가 없으면 살수가 없는데요, 요즘은 WEB에서도 아주 좋은 툴들이 많이 있네요.


-------------------

Javascript으로 개발했다고 개발자가 소개하고 있습니다. client script이라 상당히 빠르고요 예쁘고 여러 기능들도 잘 갖추어져 있어서 다른 프로그램 설치없이도 잘 쓸수 있습니다. (개발자 page = http://www.duttke.de/)

최근에 big endian plaform에서 일을 하느라 처음으로 big endian data를 reading해 봤는데(이론적으로는 많이 공부했지만) 정말 좋은 경험 많이 했습니다.

https://hexed.it/?hl=en

-------------------

HEXPlorer는 전통의 강자인데 개발이 중단되었고, 글씨가 작게나오는 문제가 있어서 많은 사람들이 버렸지요. Setting에서 FONT만 System Fixed Font로 바꿔주면 됩니다. Open Source에다가 아주 괜찮은 툴이에요.

-------------------

그밖에 Beyond Compare에서 HEX comparison도 좋고요

Visual Studio에서도 Binary data를 잘 보여주고요.

Slick Editor도 좋았던 경험은 있습니다.

Posted by 쁘레드
Programming2016. 3. 17. 04:29

MPI – Message Passing Interface

------------------

http://mpich.org/

https://www.open-mpi.org/

http://www.mpi-forum.org/docs/docs.html

------------------

https://computing.llnl.gov/tutorials/mpi/ ; 국가연구소, 자세한 설명

http://mpitutorial.com

------------------

*API list and guide

http://www.mcs.anl.gov/research/projects/mpi/www/www3/

------------------

*mpi4py python API

https://groups.google.com/forum/#!forum/mpi4py

https://mpi4py.scipy.org/docs/usrman/install.html


pip install mpi4py

------------------

A brief introduction to Apache Hadoop

The technology known as Apache Hadoop is an open-source framework for developing distributed applications hosted by the Apache Software Foundation. The framework contains a number of subprojects. The one we are interested in is the Hadoop Core, also known as Hadoop Common.The Hadoop Common project is located within the overall Hadoop framework. It allows the development of cloud computing environments via off-the-shelf hardware such as the Raspberry Pi. The developer interacts with it by using its Java based API.Within Hadoop Common there are several significant areas that help us achieve our goal of developing parallel computing applications. Two of the most important areas are as follows:
  • Hadoop MapReduce environment
  • Hadoop Distributed File System (HDFS)
------------------
MapReduce = Map + Reduce
------------------
MPI, Hadoop, and parallel computing
Further resources on MPI are as follows:
  • Java examples—Cardiff University
    • http://users.cs.cf.ac.uk/David.W.Walker/CM0323/code.html
  • MPI tutorials—Lawrence Livermore National Laboratory
    • https://computing.llnl.gov/tutorials/mpi/
  • Hadoop MapReduce tutorial—Apache Foundation
    • http://hadoop.apache.org/docs/stable/mapred_tutorial.html
  • Raspberry Pi Cloud blog
    • http://raspberrypicloud.wordpress.com/2013/04/25/getting-hadoop-to-run-on-the-raspberry-pi/
  • Beowulf clusters—Duke University
    • http://www.phy.duke.edu/~rgb/brahma/Resources/beowulf/papers/ICPP95/icpp95.html
  • Parallel Computing—Intel
    • http://www.intel.com/pressroom/kits/upcrc/ParallelComputing_backgrounder.pdf
  • Parallel Programming—Gribble Lab
    • http://gribblelab.org/CBootcamp/A2_Parallel_Programming_in_C.html
  • Virtualization—Red Hat
    • http://www.redhat.com/products/cloud-computing/virtualization/
  • Virtual Machines—Virtual Box
    • https://www.virtualbox.org/


Posted by 쁘레드
Programming2016. 3. 17. 03:53


--------------

sudo apt-get install screen

touch .screenrc

--------------

vbell off

vbell_msg ""

hardstatus on

hardstatus alwayslastline

#Use: info screen "String Escapes" to style your screen

hardstatus string "%{B}%-Lw%{r}%50>%n%f*%t%{-}%+Lw%<"

def monitor on

term screen-256color

shelltitle Window

screen bash


--------------


screen

CTRL a + c ; create

CTRL a + <num> ; switch to terminal

CTRL d ; detach

screen -r ; retach

screen -r PID

Posted by 쁘레드
Programming2016. 3. 17. 03:49

대체로 집에 윈도우,리눅스,맥,안드로이드 등 다체로운 운영체제들이 복수로 있지요. 10년전만해도 이런 상황을 상상하기 어려웠는데 세상이 빠르게 변하면서 다른 OS 기기들에 대한 장벽을 다 무너트리고 있습니다. 저는 windows를 main으로 사용하고 linux를 build서버로 쓰는 편인데요.


Windows에 XMing XServer를 깔고

Putty에 X11 forwarding을 enable한다음에

SSH로 Linux에 접속합니다. XWindows가 PC위에서 탁탁 뜨는데... 크롬브라우져(정확히 Chromium)만 안뜹니다. 이건 뭔하가하고 찾아보니 이미 Brower가 다른 display에 떠있을경우 그 process에 attach한다는 군요. 쉽게는 떠있는거 닫고 뛰우던지,

user-data path를 지정해주면 된다고 합니다.


$ google-chrome --user-data-dir=~/.config/putty-chrome &
$ google-chrome --temp-profile

------------------

:/usr/bin$ Created new window in existing browser session.


[1]+  Done                    chromium-browser orunson.tistory.com


fred@fred-Z400:/usr/bin$

:/usr/bin$ chromium-browser orunson.tistory.com &

[1] 8676

[8676:8676:0316/110602:ERROR:logging.h(808)] Failed to call method: org.freedesktop.DBus.ObjectManager.GetManagedObjects: object_path= /: org.freedesktop.DBus.Error.UnknownMethod: Method "GetManagedObjects" with signature "" on interface "org.freedesktop.DBus.ObjectManager" doesn't exist


[8676:8676:0316/110602:ERROR:logging.h(808)] Failed to call method: org.freedesktop.DBus.ObjectManager.GetManagedObjects: object_path= /: org.freedesktop.DBus.Error.UnknownMethod: Method "GetManagedObjects" with signature "" on interface "org.freedesktop.DBus.ObjectManager" doesn't exist


[8676:8759:0316/110602:ERROR:cert_verify_proc_nss.cc(924)] CERT_PKIXVerifyCert for ssl.gstatic.com failed err=-8179

[8676:8730:0316/110602:ERROR:cert_verify_proc_nss.cc(924)] CERT_PKIXVerifyCert for www.gstatic.com failed err=-8179

[8722:8722:0316/110602:ERROR:gl_surface_glx.cc(347)] GLX 1.3 or later is required.

[8722:8722:0316/110602:ERROR:gl_surface_x11.cc(56)] GLSurfaceGLX::InitializeOneOff failed.

[8722:8722:0316/110602:ERROR:sandbox_linux.cc(338)] InitializeSandbox() called with multiple threads in process gpu-process

[8722:8722:0316/110602:ERROR:gpu_child_thread.cc(257)] Exiting GPU process due to errors during initialization

[8676:8706:0316/110602:ERROR:browser_gpu_channel_host_factory.cc(132)] Failed to launch GPU process.

[8676:8699:0316/110607:ERROR:cert_verify_proc_nss.cc(924)] CERT_PKIXVerifyCert for track.tiara.daum.net failed err=-8179

[8676:8728:0316/110612:ERROR:cert_verify_proc_nss.cc(924)] CERT_PKIXVerifyCert for ssl.gstatic.com failed err=-8179


------------------

http://unix.stackexchange.com/questions/80478/putty-x11-forwarding-cant-forward-google-chrome

Posted by 쁘레드
Programming2016. 3. 16. 01:18

요즘 개발자들은 안쓰는 것으로 아는데(계속 쓸지도...) Visual Studio Editor가 계속 발전한 덕에 이제 다른 extension은 쓸필요가 없어졌는데, 예전에도 VS는 좋았지만 날개를 달아줄 툴이 Visual Assist였는데.


개발자들의 목마름을 체워졌던 부분은

  • 자동완성(code generation, coding assistance)
  • 더 진보된 syntax highlight
  • Code Snippets(자주 쓰는 구문, 함수, template 자동으로 입력)
  • VA Outline
  • Header/Source file switch
  • 소스코드 분석 도움
  • 많은 기능을 제공하면서 느려지지 않고

등이었는데. 새롭게 깔아보니 예전 생각이 많이 나네.


Whole Tomato Software, 다른거 뭐 만드나 했더니 이거 하나 만드나 보네. 헐.

요즘은 다른 언어도 지원하고 하나보지만, MS가 너무 잘만들어서 이걸 살 필요있나 몰겠네. 예전에는 이거 없이는 못살때가 있었는데.

-----------------






-----------------


-----------------


-----------------

'Programming' 카테고리의 다른 글

Terminal multiplexing with Screen  (0) 2016.03.17
X11 forwarding - 리눅스 크롬 브라우저 문제  (0) 2016.03.17
Raspberry Pi Supercomputer  (0) 2016.03.14
Windows Phone 7 Development Internals  (0) 2016.03.13
Github와 git  (0) 2016.03.08
Posted by 쁘레드