2016년 1월 3일 일요일

후버 듀얼 맥스 프로 알아보다가...



후버 듀얼 맥스 프로가 중고장터에 나왔길래 한번 살펴보는데

암만 찾아도 미국 후버 사이트에선 안파는거다...

우리나라껀 분명 후버 마크 달고 나오는데..

한국 후버에서 팔면 당연 미국 후버에서도 팔아야 하지 않는가???




찾아보니까 미국 ORECK 사의 공기청정기 인거 같다.

http://www.oreck.com/dualmax-air-purifier/537.html?cgid=Oreck-Truman-Cell-Air-Purifiers&start=1



ORECK 가 한국형으로 OEM 으로 후버에 납품한건지...(확실하지 않음..추정)

사용기가 하나도 없어서 결국 사진 않았다.

2015년 10월 19일 월요일

MSSQL (Microsoft SQL Server) 포트 확인법



SQL Server는 기본적으로 1433 (TCP) 포트 
 
기본 인스턴스(MSSQLSERVER) 말고 

'사용자가 임의로 설정한 인스턴스' (예를들어 JINSERVER 같은..)
로 SQL Server를 설치하였을 경우, 임의의 포트를 할당하게 됩니다.
 
이 때, 어떤 포트로 통신하는지 알아보기 위해서는 다음의 과정을 거칩니다.
  1. <시작>-<모든 프로그램>-<Microsoft SQL Server 2xxx>-<구성 도구>-<SQL Server 구성 관리자> 를 클릭
  2. 왼편의 창에서 <SQL Server 구성 관리자 (로컬)>-<SQL Server 2005 네트워크 구성>-<(인스턴스명)에 대한 프로토콜> 을 클릭합니다. (32비트 어쩌구 적혀있는거 아님.)
  3. 오른편의 창에서 <TCP/IP>를 더블클릭합니다.
  4. <TCP/IP 속성> 창이 표시됩니다. <IP 주소> 탭을 클릭합니다.
  5. 목록 최 하단의 'IPALL' 항목 하위의 'TCP 포트' 란에 기록된 숫자가 할당된 포트 번호입니다

2015년 10월 18일 일요일

AT&T Address Book 죽이기 (해외폰을 직구했는데 일어난 일)




지플렉스2 를 직구했습니다만...

주소록만 들어가면 자꾸 AT&T Address Book 이 떠서

(뒤로가기 누르면 주소록이 보이지만 불편한건 불편한거죠.)


죽이는 방법을 알아봤습니다..


1.  전화번호 다이얼로  *#*#2666#*#* 누르기

2. AT&T Address Book의 registration 항목 들어가기

3. completed 으로 바꾸기



이러니까 주소록, 전화 들어가도 안뜨더군요


굿잡.



2015년 9월 22일 화요일

node.js 에서 for문 사용하기 ( Callback 포함 )


출처 : http://www.richardrodger.com/2011/04/21/node-js-how-to-write-a-for-loop-with-callbacks/#.VgIAfdLtlBc




node.js 의 구조적 특성탓에 for문 일반적으로 쓰면 잘안됨.

재귀적인 function 으로 for문 효과를 줄 수 있음.



내 경우에는 다중 이미지 업로드 웹페이지를 만들고 있었음.

 <form method='post' action='/uploads' enctype='multipart/form-data'>  
 <input type='file' name='image' multiple/>  
 <input type='submit' value='전송'/></form>

HTML 은 이런식

그리고 express 를 통해 받았다.

path 에 있는 이미지를 read 해서

다시 내가 원하는 폴더로 파일명을 현재시간(nowsysdate)으로 변경해서

write 하도록 만들었다

결과적으로 잘된다. 굿

function readwrite(j)  
                               {  
                                    if( j < multiNum)  
                                    {  
                                         fs.readFile(req.files.image[j].path, function (err, data)   
                                         {  
                                              var newPath = __dirname + "/uploads/fullsize/" + nowSysDate + j + '.' + splitType;  
                                              console.log('my new Path --> ' + newPath);  
                                              fs.writeFile(newPath, data, function (err)  
                                              {  
                                                   if(err) { log(' fs.writeFile 에러 ---> ' + err ) }  
                                                   else { readwrite(j+1) };   
                                              });       
                                         });  
                                    }  
                               }  
                               readwrite(0);  






2015년 9월 14일 월요일

SharedPreferences 에서 commit 과 apply 의 차이



 안드로이드 스튜디오는 apply 를 쓰라고 해당 코드에 마킹을 해서

 뭔 차이가 있나 찾아봤다.


 일단 commit 는 (저장이) 성공하면 boolean타입인 true 값을 반환

 apply 는 반환값이 없다는게

 눈에 보이는 차이점이다.



 그러면 단순히 반환값이 있고/없고 인데... 왜 IDE 에서는 apply 를 추천할까.


 public abstract boolean commit ()   --  API 1

public abstract void apply ()  -- API 9


commit은 API 최초부터 있었던 것이고 apply는 9버젼(2.3)에서 부터 지원했다.

기존에 있던것을 뭔가 보안했기 때문에 새롭게 나온것이다.


눈에 보이지 않는 차이점은 동기/비동기 였던 것이다.

저장공간과 지속적인 동기를 통해 preference 를 작성하던 commit 과 달리

apply는 비동기적으로 반영이 된다는 것이다.
(이는 실패시 어떤 알림을 받을 수 없다는 문제점도 있긴하다)


commit의 동기는 여러분의 method 를 block 하고 write 하기때문에

apply 보다 필연적으로 느릴 수 밖에 없다.

(그렇기 때문에 IDE 는 apply 를 추천(고려)하나보다...)



commit 을 쓰던걸 apply 를 쓰면 저장 속도가 약 10 ~ 30배 까지 빨라진다고 하니

장단점이 있나보다.




2015년 9월 3일 목요일

(2015년 9월 API23 적용) 안드로이드 사이드바 (네비게이션 드로어) 적용 소스


1. AppCompatActivity 사용 ( 더 이상 ActionBarActivity 는 그만..대부분 deprecated 됨 )

2. toolbar 사용안함. 

3. 롤리팝 메터리얼 디자인 가이드 적용

4. 사이드바 드로우시 아이콘 애니메이션 적용 ( 三 에서  <-  로 변하는 애니메이션 )


Gradle 쪽 소스추가부분

build.gradle (Module: app)
(targetSdkVersion 은 23)



dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'    compile 'com.android.support:appcompat-v7:23.0.0'    compile 'com.android.support:support-v4:23.0.0'}




디자인 XML 쪽 소스
(DrawerLayout를 사용하면 첫번째는 FrameLayout 이 사용되어야 함 )

activity_main.xml


<android.support.v4.widget.DrawerLayout 
xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity">

    <FrameLayout        android:id="@+id/container"        android:layout_width="match_parent"        android:layout_height="match_parent" />

    <ListView        android:id="@+id/list_drawer"        android:layout_width="240dp"        android:layout_height="match_parent"        android:layout_gravity="start"        android:background="#f1f2f7"        android:choiceMode="singleChoice"        android:divider="@android:color/transparent" />

</android.support.v4.widget.DrawerLayout>



자바소스 부분

MainActiviy.java

import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MenuItem;

public class MainActivity extends AppCompatActivity
{

    DrawerLayout drawerLayout;
    ActionBarDrawerToggle toggle;

    @Override    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        //왼쪽상단 버튼 생성        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        getSupportActionBar().setHomeButtonEnabled(true);
        toggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.hi, R.string.bye) {};
        drawerLayout.setDrawerListener(toggle);
        toggle.syncState();

    }

    @Override    public boolean onOptionsItemSelected(MenuItem item)
    {
        //왼쪽상단 버튼 누르면 사이드메뉴 튀어나오도록        if (toggle.onOptionsItemSelected(item))
        {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}





안드로이드 스튜디오 (Android Studio) Alt Enter (auto import) 가 이상할 때 방법



개발중 support v7 쪽이 전혀 import 되지 않는 상황이 발생

File -> Settings -> Editor -> General -> Auto import 를 가봤더니

Exclude 되어있었다.


살포시 빼주자.