AllSeen Alliance에서의 open-source framework인 AllJoyn을 컴파일 하는 방법에 대해서 간단히 정리하도록 하겠습니다.


먼저 AllJoyn 이란?

AllJoyn™ is a collaborative open-source software framework that makes it easy for devices and apps to discover and communicate with each other. It supports many language bindings and can be easily integrated into platforms small and large. The AllJoyn framework defines a common way for devices and apps to communicate with one another ushering a new wave of interoperable devices to make the Internet of Things a reality.


아래는 리눅스 피시에서 구동을 목표로 한다.


1. 컴파일을 하기 위하여 먼저 소스를 다운로드 받도록 한다.

     AllJoyn은 git 로 관리가 되고 있다.


$> mkdir alljoyn
 $> cd alljoyn

 $> repo init -u https://git.allseenalliance.org/gerrit/devtools/manifest
 $> repo sync


* repo: https://code.google.com/p/git-repo/

이미 git가 설치되어 있다면, 위의 사이트를 참고하여 repo를 적절한 설치 위치에 다운로드 하여 실행권한을 주면 된다.

* 왠지 한번에 다운로드가 되지 않아서 "ctrl + c" 후 몇번이나 repo sync를 하고 나서 정상적으로 모두 다운로드 할 수 있었다.



2. 다운로드가 모두 끝나면 다음과 같다


[sound79@sound79-FX603:test]$ ls
compliance  core  data  devtools  gateway  lighting  multimedia  services



3. 환경 변수를 설정한다.


export AJ_ROOT=`pwd`
export TARGET_CPU=x86_64
export LD_LIBRARY_PATH=$AJ_ROOT/core/alljoyn/build/linux/$TARGET_CPU/debug/dist/cpp/lib:$LD_LIBRARY_PATH 



4. 컴파일을 한다.


cd core/alljoyn/

scons BINDINGS=cpp WS=off BT=off ICE=off

* scon: http://www.scons.org/

SCons는 Python기반의 빌드툴이며, 나름 Makefile의 대안으로 떠오르고 있는 오픈 툴킷이라고 합니다.


5. 이제 샘플 프로그램을 실행해 보면 된다.



저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by sound79 사운드친구

댓글을 달아 주세요



AllSeen Alliance: https://allseenalliance.org/


Our Mission

To enable widespread adoption and help accelerate the development and evolution of an interoperable peer connectivity and communications framework based on AllJoyn for devices and applications in the Internet of Everything.


AllJoyn이라는 프레임워크를 기반으로 IoT를 개발해가는 단체이다.

메이저 업체로는 LG, Microsoft, Qualcomm, SHARP, SONY, Haier 등이 있으며 수많은 업체들이 멤버로 참여하고 있다.



9. The AllSeen Alliance manages the AllJoyn open source project with software code using open standards to enable all the ‘things’ in the Internet of Things to work together. The code is available for download today. 


앞서 언급했듯이 중요한 프레임워크 이름이 AllJoyn 이다

https://allseenalliance.org/developers/learn


간단히 Architecture 중 Network Architecture 부분만 일단 살펴보자



그림과 같이 크게 App과 Router가 보일것이다.

크게 3가지로 형태로 설명할 수 있다.


1. Bundled Router라고 불리어지는 라우터로써 현재 많이 사용되는 모바일 OS기반의 App : Router 매칭을 이룬다.

2. Standalone Router라고 불리어지는 라우터로써 백그라운드 데몬으로 동작되는 형태를 가지면서, 여러 App이 하나의 Router와 연결되는 형태이다

3. 충분한 CPU가 확보되지 않는 임베디드 디바이스를 위해서 Router가 없는 Thin variant of the AllJoyn framework를 사용하여 다른 디바이스의 Router와 연결이 된다.


  1. An App uses its own Router. In this case, the Router is called a "Bundled Router" as it is bundled with the App. AllJoyn Apps on mobile OSes like Android and iOS and desktop OSes like Mac OS X and Windows generally fall in this group.

  2. Multiple Apps on the same device use one Router. In this case, the Router is called a "Standalone Router" and it typically runs in a background/service process. This is common on Linux systems where the AllJoyn Router runs as a daemon process and other AllJoyn apps connect to the Standalone Router. By having multiple apps on the same device use the common AllJoyn Router, the device consumes less overall resources.

  3. An App uses a Router on a different device. Embedded devices (which use the Thin variant of the AllJoyn framework, more on this later) typically fall in this camp as the embedded device typically does not have enough CPU and memory to run the AllJoyn router.


다음편에 계속 ...


저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by sound79 사운드친구

댓글을 달아 주세요


본 글은 전적으로 Ubuntu에서 매주 발행하고 있는 뉴스 소식지를 개인적으로 관심 있는 부분만 추려내어서

정리하는 글입니다.


좀더 자세한 내용은 본문을 참조하는 것이 가장 좋습니다.

https://wiki.ubuntu.com/UbuntuWeeklyNewsletter/Issue407




이번 이슈에서 다루어지는 내용은 다음과 같습니다.


In This Issue

  • Ubuntu at the Mobile World Congress
  • DMB election results
  • Ubuntu Stats
  • Recent Ubuntu Myanmar LoCo Team Activities

  • LoCo Events

  • Michael Hall: My SCaLE 13x and UbuCon review

  • Randall Ross: On Writing Software for OpenPOWER
  • Daniel Holbach: Giving Ubuntu devices users a head-start
  • Randall Ross: Ubuntu at Mobile World Congress 2015
  • Lubuntu Blog: Box 0.50 rev. 474
  • Announce: Vivid will switch to booting with systemd next Monday, brace for impact
  • Interview with Michael Hall (mhall119) of the Ubuntu Community Council
  • Kubuntu Docs 15.04
  • A Quick Look at the BQ Aquaris E4.5 Ubuntu Phone
  • Canonical News
  • First peek at the next Ubuntu 15.04 nester line-up
  • New Ubuntu Phone Separates the App from the Data
  • Nvidia patches Ubuntu bug that caused black window screen crashes
  • In The Blogosphere
  • Featured Audio and Video
  • Weekly Ubuntu Development Team Meetings
  • Upcoming Meetings and Events
  • Updates and Security for 10.04, 12.04, 14.04 and 14.10
  • And much more!

Ubuntu at the Mobile World Congress


이중에서 가장 관심이 있는 부분이 아무래도 Ubuntu Phone이다 캐노니컬에서도 가장 열심히 밀고 있는 부분이고 뉴스 소식지에서도 가장 처음 가장 비중있게 다루고 있는 부분이다. 하지만 모바일폰이 가장 경쟁이 치열한 부분이라서 과연 우분투가 이를 극복할 수 있을지 의문이 심하게 들기도 한다. 어디선가 들었는데 우분투가 현재 재정적으로 힘들어 하는데 그 이유가 우분투폰에 이루어진 투자때문이라고 한다.

과연 안드로이드와 IOS에 2강 체계에서 우분투와 같은 새로운 모바일 플랫폼이 어떠한 성과를 앞으로 낼지 귀추가 주목되는것은 본인 또한 마찬가지이다.


뉴스레터 소식은 아니지만 우분투폰 리뷰 중 가장 긴 내용이지 않을까 싶은 동영상이다




.

MWC 2015에 첫선을 보인 우분투폰에 대한 내용들은 다음을 참조하면 됩니다.



Ask Ubuntu Top 5 Questions this week

아무래도 제가 개발자이다 보니 기술적인 내용은 꼭 봐야 왠지 배부른 느낌. 아무 같은 개발자분들은 이해하실거라고 생각이 드네요.


1. 첫번째 질문은 ping flooding에 관련한 내용이다.

What non malicious uses are there for ping's flood (-f) option? [on hold] http://askubuntu.com/questions/592390/what-non-malicious-uses-are-there-for-pings-flood-f-option


ping flooding 에 관련해서 좀더 읽어 볼 만한 내용을 찾아 보았다.

- ping DOS 공격에 대한 Basic: http://tomicki.net/ping.flooding.php

- Ping Flooding DoS Attack in a Virtual Network: https://sandilands.info/sgordon/ping-flooding-dos-attack-in-a-virtual-network


2. 두번째 질문은 주어진 파일에서 각 알파벳이 나타나는 빈도를 알 수 있는 방법에 관련한 질문이다. 이런 질문은 당연히 답변은 프로그래밍 언어별로 해주는 것이 관례인가 ???



For example I have file 1.txt, that contain:

Moscow
Astana
Tokyo
Ottawa

I want to count number of all char as:

a - 4,
b - 0,
c - 1,
...
z - 0
sed 's/\(.\)/\1\n/g' 1.txt | sort | uniq -ic
#!/usr/bin/env python3
import sys

chars = open(sys.argv[1]).read().strip().replace("\n", "")
[print(c+" -", chars.count(c)) for c in sorted(set([c for c in chars]))]
$ awk '{for (i=1;i<=NF;i++) a[$i]++} END{for (c in a) print c,a[c]}' FS="" file
$ perl -e '$a=join("",<>);for("a".."z"){$d=()=$a=~/$_/gi;print"$_ - $d,\n"}' 1.txt


그리고 대망의 C 버전



#include <stdio.h>
#include <ctype.h>
#include <limits.h>
#include <math.h>
#include <sysexits.h>


inline static double square(double x)
{
    return x * x;
}


int main()
{
    static const unsigned distribution_size = 1 << CHAR_BIT;

    int rv = EX_OK;
    uintmax_t *distribution = calloc(distribution_size, sizeof(*distribution));

    {
        int c;
        while ((c = getchar()) != EOF)
            distribution[c]++;

        if (ferror(stdin)) {
            perror("I/O error on standard input");
            rv = EX_IOERR;
        }
    }

    uintmax_t sum = 0;
    for (unsigned i = 0; i != distribution_size; i++)
        sum += distribution[i];
    double avg = (double) sum / distribution_size;

    double var_accum = 0.0;
    for (unsigned i = 0; i != distribution_size; i++)
    {
        const uintmax_t x = distribution[i];

        printf("'%c' (%02X): %20ju", isprint((int) i) ? i : ' ', i, x);
        if (x != 0) {
            var_accum += square((double) x - avg);
            printf(" (%+.2e %%)\n", ((double) x / avg - 1.0) * 100.0);
        } else {
            var_accum += square(avg);
            putchar('\n');
        }
    }

    double stdev = sqrt(var_accum / distribution_size);
    double varcoeff = stdev / avg;
    printf(
        "total: %ju\n"
        "average: %e\n"
        "standard deviation: %e\n"
        "variation coefficient: %e\n",
        sum, avg, stdev, varcoeff);

    free(distribution);
    return rv;
}


3. 세번째 질문은 왜 다운가능한 MS Fonts들은 exe 형태로 설치되는가 ?

 - The MS Core Fonts come in a self-extracting zip archive we can open or install without the need to run the Windows executable or the included Windows font installer program.

 - http://corefonts.sourceforge.net/

 - 라이센스 관련: http://www.microsoft.com/typography/fontpack/eula.htm


4. Why is there an “update-grub” and a “update-grub2” command?

  $ file $(which update-grub{,2})
  /usr/sbin/update-grub: POSIX shell script, ASCII text executable
  /usr/sbin/update-grub2: symbolic link to `update-grub'


Canonical News

1. preinstalled ubuntu

 - https://insights.ubuntu.com/2014/05/15/huge-downloads-for-ubuntu-kylin-14-04lts-first-oem-partner-announced/

 - https://insights.ubuntu.com/2015/03/02/dell-launches-ubuntu-loaded-machines-across-500-stores-in-latin-america/



많은 것을 정리하지 못했네요... 다시 말하지만 좀더 자세한것은 원문을 참조해주세요...

https://wiki.ubuntu.com/UbuntuWeeklyNewsletter/Issue407



저작자 표시 비영리 동일 조건 변경 허락
신고
Posted by sound79 사운드친구

댓글을 달아 주세요