블로그 이미지
Every unexpected event is a path to learning for you.

카테고리

분류 전체보기 (2741)
Unity3D (30)
Programming (475)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (228)
협업 (58)
3DS Max (3)
Game (12)
Utility (136)
Etc (96)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (54)
Android (15)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday
05-21 00:43

[무료 다운로드] https://www.ganttproject.biz/download/free

 

[자바 런타임(AdoptOpenJDK)] https://adoptopenjdk.net/

※ Important: when installing AdoptOpenJDK Java Runtime, make sure to select option "JavaSoft (Oracle) registry keys".

 

프로젝트 일정 관리 프로그램 입니다.

요즘 구글 드라이버와 연동해서 실행되는 일정관리 앱들이 많이 있는데, 이 프로그램은 윈도우용 프로그램입니다.

물론 리눅스나, 맥용도 있습니다.

 

특징

이 프로그램 만의 특징이라면 우선 오프라인에서 실행되므로 빠릿빠릿합니다.

그리고 무료라는 점.

유명한 Smart Sheet나 Gantter의 경우 기능적으로 훌륭하지만, 유료이기 때문에 개인이 사용하기에는 부담스러운 부분이 있습니다.

무료로 간트차트로 프로젝트 일정 관리를 원하신다면, Gantt Project를 써보시기 바랍니다.

https://www.ganttproject.biz/

GanttProject

Free desktop project scheduling and management app with Gantt chart for Windows, Linux and macOS

www.ganttproject.biz

다운로드

https://www.ganttproject.biz/download

GanttProject

Free desktop project scheduling and management app with Gantt chart for Windows, Linux and macOS

www.ganttproject.biz

무료이긴 한데, 5$를 지불하고 사시면 좀 더 빨리 새로운 기능을 업데이트 할 수 있는 혜택이 있습니다.

다운로드시 옵션1은 유료, 옵션2는 무료 이니 참고하세요.

 

 

[출처] GanttProject - 무료 간트차트 프로그램|작성자 펭순이

 

펭순이 : 네이버 블로그

캐주얼 게임 '펭귄날다' 를 서비스 중입니다. 많은 이용 바랍니다. https://play.google.com/store/apps/details?id=com.Byung.PengSooFly.Google

blog.naver.com

 

반응형
Posted by blueasa
, |

[링크] https://www.comparitech.com/privacy-security-tools/blockedinchina/

 

Test if Any Site is Blocked in China and Learn How to Access it

Test any site to see if it has been blocked by the Great Firewall. See how to unblock and access sites in China by using a VPN.

www.comparitech.com

 

[출처] 게임코디-드럼군님

반응형
Posted by blueasa
, |

티스토리는 현재 마크다운을 공식지원 하고 있지만 코드 하이라이팅은 기본으로 적용되지 않습니다. 코드 하이라이트가 적용 된 스킨을 사용하고 계시는 분들도 있고 개인의 취향에 따라 자율적으로 스타일을 적용할 수 있게 하려는 의도라고 합니다. 따라서 하이라이트가 적용되지 않은 스킨을 사용하신다면 별도로 설정을 해주셔야 합니다.

코드블럭에 하이라이트 적용하는 2가지 방법을 알아보겠습니다.

1. 플러그인 적용

- 블로그 관리페이지 > 플러그인 메뉴로 이동합니다.

- Syntax Highlight 를 찾아서 선택합니다

 

 

- 하단 테마에서 원하시는 테마를 선택합니다. (저는 Github을 선택했습니다)

- 그 다음 적용을 누르시면 끝입니다.

 

2. highlight.js 적용

간단한 방법으로 cdn을 이용해서 html 태그에 삽입 하겠습니다.

 

highlight.js demo 에 접속해서 원하는 스타일을 찾습니다. 저는 Github 스타일을 선택했습니다.

 

highlight.js demo

 

highlightjs.org

  • 스타일명은 github.min.css 이 됩니다. (꼭 .min.css 의 형태가 되어야 합니다.)
  • 스타일 목록은 여기서도 확인하실 수 있습니다.

 

스타일명을 포함한 아래의 코드를 복사합니다.

<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.9/styles/github.min.css">
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.15.9/highlight.min.js"></script>
<script>hljs.initHighlightingOnLoad();</script>

 

블로그관리 > 스킨편집 > Html 에 진입합니다.

 

위에서 복사한 코드를 아래와 같이 붙여넣고 오른쪽 위의 적용을 누르면 끝입니다.

적용 후 결과

Github 테마가 적용된 코드블럭

class Person { private int age; private String name; public Person(int age, String name) { this.age = age; this.name = name; } public String getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }

참고

코드블럭으로 소스코드 작성하기

새 에디터 FAQ



출처: https://simsi6.tistory.com/43 [곰돌푸우❤️]

 

티스토리 마크다운 코드블럭에 하이라이트 적용하기

티스토리는 현재 마크다운을 공식지원 하고 있지만 코드 하이라이팅은 기본으로 적용되지 않습니다. 코드 하이라이트가 적용 된 스킨을 사용하고 계시는 분들도 있고 개인의 취향에 따라 자율�

simsi6.tistory.com

 

반응형
Posted by blueasa
, |

[참조] https://mentum.tistory.com/150

 

유니티 퍼미션 체크 적용기. (Unity Permission Check) 2019.11.14 재작성.

2019.11.14 재작성. 유니티 안드로이드에서 스크린샷을 저장하기 위해 권한 부분을 다시 작성해야해서 하는 김에 이 글도 재작성 하였다. 2019/11/14 - [Unity/프로그래밍] - 유니티 안드로이드 스크린샷

mentum.tistory.com

 

 

참조 사이트에 포스팅 된 내용을 참고해서 나한테 맞게 만듬.

(Unity2018 / 저장공간(선택) 권한만 필요)

 

using System;
using UnityEngine;
using System.Collections;
using UnityEngine.SceneManagement;
using UnityEngine.Assertions;
using UnityEngine.Android;

public class UICheckPermissionManagerSGT : MonoBehaviour
{
    public GameObject m_panelCheckPermission = null;
    public GameObject m_panelDeniedConfirm = null;

    private bool m_bOnCheckPermission = false;


    void Start()
    {
        Debug.Log("[Scene] CheckPermission");

        InitCheckPermission();
        CheckCountryCode_KR();
    }

    void InitCheckPermission()
    {
        m_bOnCheckPermission = false;

        ActivateCheckPermission(false);
        ActivateDeniedConfirm(false);

    }

    void CheckCountryCode_KR()
    {
        // GetIP가 한국인지 체크하는 외부 함수
        SGT.Global.CheckCountryCode_KR(ConfirmCountryCode_KR);
    }

    void ConfirmCountryCode_KR(bool _bIsCountryCode_KR)
    {
        if (true == _bIsCountryCode_KR)
        {
            // 한국 : Permission 확인
            DoCheckPermission();

            //CallPermission();
        }
        else
        {
            // No 한국 : Next Scene으로 이동
            GoToNextScene();
        }
    }

    void DoCheckPermission()
    {
        // 저장공간(Write) 권한 체크(선택 권한)
        if (Permission.HasUserAuthorizedPermission(Permission.ExternalStorageWrite) == false)
        {
            // 지정된 권한이 없으면 CheckPermission UI 활성화
            ActivateCheckPermission(true);
        }
        else
        {
            GoToNextScene();
        }
    }

    IEnumerator CheckPermissionCoroutine()
    {
        m_bOnCheckPermission = true;

        yield return new WaitForEndOfFrame();

        // 저장공간(Write) 권한 체크(선택 권한)
        if (Permission.HasUserAuthorizedPermission(Permission.ExternalStorageWrite) == false)
        {
            // 권한 요청
            Permission.RequestUserPermission(Permission.ExternalStorageWrite);

            yield return new WaitForSeconds(0.2f); // 0.2초의 딜레이 후 focus를 체크하자.
            yield return new WaitUntil(() => Application.isFocused == true);

            if (Permission.HasUserAuthorizedPermission(Permission.ExternalStorageWrite) == false)
            {
                // 권한 거절하면 안내 팝업
                OnEventDenied();
                yield break;
            }
        }

        // 권한이 있으면 다음 Scene으로 이동
        GoToNextScene();

        m_bOnCheckPermission = false;
    }


    // 해당 앱의 설정창을 호출한다.(권한 설정할 수 있도록 유도)
    // https://forum.unity.com/threads/redirect-to-app-settings.461140/
    private void OpenAppSetting()
    {
        try
        {
#if UNITY_ANDROID
            using (var unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
            using (AndroidJavaObject currentActivityObject = unityClass.GetStatic<AndroidJavaObject>("currentActivity"))
            {
                string packageName = currentActivityObject.Call<string>("getPackageName");

                using (var uriClass = new AndroidJavaClass("android.net.Uri"))
                using (AndroidJavaObject uriObject = uriClass.CallStatic<AndroidJavaObject>("fromParts", "package", packageName, null))
                using (var intentObject = new AndroidJavaObject("android.content.Intent", "android.settings.APPLICATION_DETAILS_SETTINGS", uriObject))
                {
                    intentObject.Call<AndroidJavaObject>("addCategory", "android.intent.category.DEFAULT");
                    intentObject.Call<AndroidJavaObject>("setFlags", 0x10000000);
                    currentActivityObject.Call("startActivity", intentObject);
                }
            }
#endif
        }
        catch (Exception ex)
        {
            Debug.LogException(ex);
        }
    }

    void ActivateDeniedConfirm(bool _bActive)
    {
        GgUtil.Activate(m_panelDeniedConfirm, _bActive);
    }

    void ActivateCheckPermission(bool _bActive)
    {
        GgUtil.Activate(m_panelCheckPermission, _bActive);
    }

    void GoToNextScene()
    {
        // 패치씬으로 이동
        SGT.Scene.RunCheckPermissionToPatch();
    }

    //////////////////////////////////////////////////////////////////////////
    // Event
    //////////////////////////////////////////////////////////////////////////

    void OnEventCheckPermission()
    {
        if (true == m_bOnCheckPermission)
            return;

        StopCoroutine("CheckPermissionCoroutine");
        StartCoroutine("CheckPermissionCoroutine");
    }

    void OnEventDenied()
    {
        ActivateDeniedConfirm(true);
    }

    void OnEventDeniedConfirm()
    {
        // 저장공간은 선택권한이라 권한요청 거절해도 게임 진행
        GoToNextScene();
    }

    //////////////////////////////////////////////////////////////////////////
    // UI Event
    //////////////////////////////////////////////////////////////////////////

    // 권한 동의 버튼
    public void OnUIEventCheckPermission()
    {
        if (SGT.Global.bPreventDoubleClick)
            return;

        SGT.Global.PreventDoubleClick();

        OnEventCheckPermission();
    }

    // 거절 확인
    public void OnUIEventDeniedConfirm()
    {
        OnEventDeniedConfirm();
    }

    // 권한 설정 열기
    public void OnUIEventOpenAppSetting()
    {
        OpenAppSetting();
    }
}

 

반응형
Posted by blueasa
, |

일부 인터넷에서 "개나 소나"를 찾아보면 아래의 해설이 있습니다.
(대체로 비슷함)
소라는동물은 우릭민족에게 있어서는 귀한동물의 상징이었습니다 농사를 짓고 고기를 얻고 그래서 재산목록에도 들어가는 귀한 가축이었지요 그러나 개는 천하게 여기든동물로 흔히 천한것을 상징하지요 그래서 욕속에 개가 들어가는경우가 먾습니다 즉 소같이 귀중한짐승이가는곳에 개같이 하찮한짐승도 끼어든다는듯으로 주제도 모르고 함부로 끼어들어 어울리려할대 개나소나끼어든다 혹은 개나소나 다가는곳이라든지 개나소다하는것등으로 표현을 합니다

즉 귀한사람이나 천한사람누구나 라는뜻입니다

그런데 언젠가 국어 공부를 하면서 "개나 소나"라는 뜻은 동물의 개나 소와는 아무런 상관이 없는 말이었던 것으로
기억합니다. 그 뜻이 와전된 것이라고 알고 있습니다. 정확한 뜻을 풀이해 놓은 곳을 찾을 수가 없네요 !
원뜻과 현재 위와 같은 뜻으로 사용하는 것이 바른 것인 지, 아닌 지에 대하여 알고 싶습니다.

비밀번호   삭제

 

 

[출처] https://www.korean.go.kr/front/onlineQna/onlineQnaView.do?mn_id=&qna_seq=19619&pageIndex=12532

 

국립국어원

축소 확대 온라인가나다 상세보기 "개나 소나"에 대하여... 작성자 김종렬 등록일 2009. 11. 18. 조회수 336 일부 인터넷에서 "개나 소나"를 찾아보면 아래의 해설이 있습니다. (대체로 비슷함) 소라는

www.korean.go.kr

 

반응형
Posted by blueasa
, |

유료라서 우선 Keep

 

[Link] https://www.xlcompare.com/

 

xlCompare - Compare and Merge Microsoft Excel Workbooks and VBA Projects

This powerful feature allows to perform any action in the command line mode, that could be programmed. It is suitable for complex cases, for example: when you need to compare several files at one run. Only a small set of the possible actions is described b

www.xlcompare.com

 

반응형
Posted by blueasa
, |

 

Target API 29로 올렸을 때 Error 스크린샷

 

 

Android Target API Level을 28에서 29로 올리니 에러가 떠서 무슨 문제인지 확인해보니 Play Services Resolver 버전 이슈가 있는 것 같다.

 

현재 v1.2.135를 쓰고 있는데 v1.2.138에서 버그 수정 됐다는 아래와 같은 답변이 있다.

버전업을 해야 될 것 같다.

 

 

[답변]

 

[답변 출처] https://github.com/googlesamples/unity-jar-resolver/issues/344

 

A null reference exception occurs when setting the target api level to API 29 in Unity. · Issue #344 · googlesamples/unity-jar

Settings Unity editor version: Unity 2019.2.13 through Unity 2019.3.7 are the ones I tested External Dependency Manager version: v0.10.07 Features in External Dependency Manager in use (Android Res...

github.com

 

반응형
Posted by blueasa
, |