'분류 전체보기'에 해당되는 글 223건

  1. 2018.11.26 Windows 10 RS5 SMB 속도가 매우 느려졌을때 1
  2. 2018.10.12 jQuery 로 탭 만들어 보기
  3. 2018.09.17 멜론앱 "재생요청중 입니다" 면서 재생이 안될때 확인해 볼것 4
  4. 2018.06.28 Minidlna 옮긴 파일이 인식이 안될때... 3
  5. 2018.06.26 Javascript 로 초성검색하기

Windows 10 RS5 SMB 속도가 매우 느려졌을때


Windows 10 RS5를 설치하고 NAS 에 SMB 로 연결 후 파일을 복사해서 넣을려고 하니까 전송 속도가 매우 느려진 것을 경험하였다.


원래 내부망은 100MB/s 정도로 속도가 나왔었는데 100kb 정도 밖에 나오지 않았다 -.-


검색하다 마이크로소프트에서 몇가지 방법이 나와서 따라해 봤는데 별로 개선되는게 없었다.


검색하다 문득 Advanced SystemCare Ultimate 11 이라는 프로그램 돌려보라 그래서 따라 했더니 희안하게도 잘 고쳐졌다. 



공식 홈페이지에서 프로그램 다운로드 후 설치해서


상단 도구상자 > 레지스트리 청소기 > 검사 > 수정 시작 후 재부팅 하면 싹 고쳐진다.





jQuery 로 탭 만들어 보기

예제 소스 다운로드

tab.zip


on, off 이미지로 탭 만들기 (요즘은 거의 이렇게 안 쓰지만 불가피하게 쓸 경우가 있는것 같아서..)

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>탭</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="/js/jquery-3.3.1.min.js"></script>

    <style>
        .tabs a {cursor: pointer;}
    </style>
</head>
<body>
    <!-- 탭1 -->
    <div>
        <div class="tabs">
            <a><img src="/img/tab_service01_off.gif"></a>
            <a><img src="/img/tab_service02_off.gif"></a>
        </div>

        <div class="panel">탭1 첫번째 패널<br/><br/><br/><br/><br/><br/><br/><br/><br/>끝</div>
        <div class="panel">탭1 두번째 패널<br/><br/><br/><br/>끝</div>
    </div>

    <!-- 탭2 -->
    <div>
        <div class="tabs">
            <a><img src="/img/tab_service01_off.gif"></a>
            <a><img src="/img/tab_service02_off.gif"></a>
            <a><img src="/img/tab_service02_off.gif"></a>
        </div>

        <div class="panel">탭2 첫번째 패널<br/><br/><br/><br/><br/><br/><br/><br/><br/>끝</div>
        <div class="panel">탭2 두번째 패널<br/><br/><br/><br/>끝</div>
        <div class="panel">탭2 세번째 패널<br/><br/><br/><br/>끝</div>
    </div>

    <script>
        $(".tabs").each(function(){
            var tabs = $(this).find("a");               // 탭버튼
            var panels = $(this).nextAll(".panel");     // 탭패널
    
            tabs.on("click", function(){
                var clk = $(this);
                var idx = tabs.index(clk);  // 클릭한 index
                
                // 모든 패널을 안보이게 한다음 클릭한 idx 에 해당하는 패널만 보이게
                panels.hide();
                panels.eq(idx).show();
    
                // 모든 탭 이미지를 off 이미지로 바꿈
                tabs.find("img").each(function(){
                    var img = $(this);
                    var new_src = img.attr("src").replace("_on", "_off");
                    img.attr("src", new_src);
                });
    
                // 클릭한 idx 해당하는 이미지만 on 이미지로 바꿈
                var img = tabs.eq(idx).find("img");
                var new_src = img.attr("src").replace("_off", "_on");
                img.attr("src", new_src);
            });
    
            // 첫번째 탭 클릭처리
            tabs.eq(0).click();
        });
    </script>
</body>
</html>



이미지 대신 class 로 간단하게 on/off 탭메뉴 만들기

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>탭</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script src="/js/jquery-3.3.1.min.js"></script>

    <style>
        .tabs a { background:#666; color:#fff; font-weight:bold; padding:10px; 
                  border:solid 2px #fff;  display:inline-block; width:200px; 
                  text-align: center; cursor: pointer;  }
        .tabs a:hover { background:#c00; }
        .tabs a.on { background:#c00; }
    </style>
</head>
<body>
    <div>
        <!-- 탭1 -->
        <div class="tabs">
            <a>첫번째메뉴</a>
            <a>두번째메뉴</a>
        </div>

        <div class="panel">첫번째 패널<br/><br/><br/><br/><br/><br/><br/><br/><br/>끝</div>
        <div class="panel">두번째 패널<br/><br/><br/><br/>끝</div>
    </div>

    <div>
        <!-- 탭2 -->
        <div class="tabs">
            <a>첫번째메뉴</a>
            <a>두번째메뉴</a>
            <a>세번째메뉴</a>
        </div>

        <div class="panel">첫번째 패널<br/><br/><br/><br/><br/><br/><br/><br/><br/>끝</div>
        <div class="panel">두번째 패널<br/><br/><br/><br/>끝</div>
        <div class="panel">세번째 패널<br/><br/><br/><br/>끝</div>
    </div>

    <script>
        $(".tabs").each(function(){
            var tabs = $(this).find("a");
            var panels = $(this).nextAll(".panel");
    
            tabs.on("click", function(){
                var clk = $(this);
                var idx = tabs.index(clk);
                
                // 아래쪽 탭 패널을 싹 안보이게 한다음 클릭한 순서에 해당하는 탭패널만 보여지게
                panels.hide();
                panels.eq(idx).show();
    
                // on 클래스를 싹 빼고 클릭한 a 에 on 클래스 추가
                tabs.removeClass("on");
                tabs.eq(idx).addClass("on");
            });
    
            tabs.eq(0).click();
        });
    </script>
</body>
</html>


멜론앱 "재생요청중 입니다" 면서 재생이 안될때 확인해 볼것


멜론앱에서 재생 요청중 입니다 라면서 스트리밍 음악이 재생이 안될때 한번 확인해 봐야될것 중에 하나는


애드가드(AdGuard) 같은 광고 제거 앱이 실행되고 있는지 체크해 보아야 한다.


스트리밍을 정상적으로 하기 위해서 애드가드 같은 경우 설정 > 앱관리 > 목록에서 멜론 선택 > 필터링 사용 체크해제 후


음악을 재생해 보면 잘된다.~


근데 이상하게 집안 와이파이에서는 스트리밍이 잘 됐었는데 그건 또 왜 그랬던 것일까 -_-?


아무튼 애드가드가 요상한걸 막아버려서 찾는데 고생쫌 했다.


     



Minidlna 옮긴 파일이 인식이 안될때...


Minidlna 와 bubleupnp 를 사용해서 나의 우분투 홈서버에 있는 동영상을 잘 즐기고 있었는데


언제부터인가 토렌트로 다운로드 받은 파일을 분류에 맞는 디렉토리로 이동하면 인식이 안되는 현상이 발생하기 시작했다.


minidlna 를 다시 설치해도 안되고, 


싹 지우고 docker 로 minidlna 를 설치해봐도 안되고,


max_user_watches 이거 값 바꾸면 된다고 해서 바꿔봤더니 증상이 똑같고...


한동한 포기하고 살다가 문득 생각나는게 있어서 해보니까 바로 인식이 되기 시작했다.


문제는 파일을 옮길때 FTP 로 접속해서 옮겼기 때문에 안됐던 것이였다 -_-;


나는 토렌트로 다운로드 받은 파일을 옮기고 관리하는걸 휴대폰 Solid Explore 를 사용해서 하는데 기존에는 Webdav 나 smb 로 접속해서 했었는데 접속방법을 sftp 로 바꾼이후로 옮겨진 파일이 인식이 안됐던 것이였다.


아마 ftp 로 파일을 옮기면 inotify 인가? 아무튼 파일이 변경돼었다는 이벤트가 발생하지 않나보다 -_-


결론 : ftp 대신 webdav 나 smb 로 접속해서 파일을 옮기자!!

Javascript 로 초성검색하기


어떤 훌륭한 분이 한글을 분리해주는 라이브러리를 맨들어줘서 그분의 라이브러리를 활용한 초성 검색 예제를 만들어 보았다.


라이브러리 : https://github.com/e-/Hangul.js/


검색어 : ex) ㅎㄱ or 한국


    코드

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <script type="text/javascript" src="./hangul.min.js"></script>
    </head>
    <body>
        검색어 : <input type="text" id="txt" />
        <ul id="find"></ul>
    
        <script>
            // 검색할 배열
            var arr = [
                { name: "홍길동" },
                { name: "한국" },
                { name: "호가든" },
                { name: "프로그램목록" },
                { name: "프로세스" },
                { name: "공통" },
                { name: "아키텍쳐" },
                { name: "앙칼지다" },
                { name: "학사행정" },
                { name: "일반부속" },
                { name: "학습 및 취업" },
                { name: "테이블정의서" },
                { name: "테이저건" },
                { name: "정의서" },
                { name: "현행화" },
                { name: "졸업" },
                { name: "바인더" },
                { name: "대학본부" },
                { name: "에디터" },
                { name: "Visual Studio Code" },
                { name: "Edit Plus" },
                { name: "소나무" },
                { name: "민들레" },
                { name: "나뭇가지" },
                { name: "갑천" },
                { name: "한강" },
                { name: "금강" },
                { name: "도안동" },
                { name: "월평동" },
                { name: "대전광역시" },
                { name: "서울" },
                { name: "경기도" },
                { name: "성남시" },
                { name: "모니터" },
                { name: "이클립스" },
                { name: "탐색기" },
                { name: "엑셀" },
                { name: "크롬" },
                { name: "파이어폭스" },
                { name: "텔레그램" },
                { name: "팟플레이어" },
                { name: "마이크로소프트" },
                { name: "애플" },
                { name: "LG" },
                { name: "삼성" },
                { name: "오라클" },
                { name: "MySQL" },
                { name: "치약" },
                { name: "프린터" },
                { name: "레이저 프린터" },
                { name: "아반떼" },
                { name: "베라크루즈" },
                { name: "자동차공학과" },
                { name: "기아자동차" },
                { name: "현대자동차" },
                { name: "에어컨" }
            ];
    
            // object 에 초성필드 추가 {name:"홍길동", diassembled:"ㅎㄱㄷ"}
            arr.forEach(function (item) {
                var dis = Hangul.disassemble(item.name, true);
                var cho = dis.reduce(function (prev, elem) {
                    elem = elem[0] ? elem[0] : elem;
                    return prev + elem;
                }, "");
                item.diassembled = cho;
            });
    
            console.log(arr);
    
    
            var ul = document.getElementById('find');
            document.getElementById('txt').addEventListener('keyup', function () {
                while (ul.firstChild) {
                    ul.removeChild(ul.firstChild);
                }
    
                var search = this.value;
                var search1 = Hangul.disassemble(search).join("");  // ㄺ=>ㄹㄱ
    
    
                arr
                // 문자열 검색 || 초성검색
                .filter(function (item) {
                    return item.name.includes(search) || item.diassembled.includes(search1);
                })
                // 검색결과 ul 아래에 li 로 추가
                .forEach(function (item) {
                    var li = document.createElement('li');
                    li.innerHTML = item.name;
    
                    ul.appendChild(li);
                });
            });
        </script>
    </body>
    </html>
    


    prev 1 2 3 4 ··· 45 next