블로그 이미지
미국에서 모바일 애플리케이션을 개발하고 있습니다. 요즘 Corona로 앱을 하나 개발하고 있는데 나도 공부 하면서 여러 분들에게 소개도 하고 싶어서 블로그를 만들었습니다.
솔웅

최근에 받은 트랙백

글 보관함

calendar

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

[Predix] Learning Predix: Getting Started

2016.11.16 09:38 | Posted by 솔웅


Learning Predix: Getting Started




What you need to do


* Understand Predix

Catalog Services : 어플리케이션에서 building block 처럼 사용할 수 있다. 기본 기능들을 다시 개발하는데 시간을 소비할 필요가 없다.
Postgres, Redis cache, Blobstore, and Rabbit MQ 같은 서비스들은 어플리케이션을 만들때 기본적으로 필요한 것들이다.
Predix Timeseries, Predix Asset, Predix Analytics, Predix Machine and Predix Edge Manager 같은 다른 서비스들은 IIOT use-case를 해결하는 진정한 Industrial Internet applications 인 것을 느끼게 해 줄 것이다.

Predix는  monetize analytics, services, and applications 도 가능하도록 한다. 어플리케이션을 만들어서 고객에게 다시 되 팔 수도 있다.
또는 Building block Service 들을 만들거나 building block Analytics 를 만들어서 다른 사람들의 어플리케이션에서 사용되도록 만들 수 있다.



* Getting Started

Predix account를 가지게 되면 많은 getting started resources들을 볼 수 있을 것이다.
우선 Predix가 무엇이고 어떻게 Industrial Internet에서 유익하게 사용될 수 있는지 부터 파악해야 한다.



* Catalog Services

이제 Industrial Internet applications를 생성하기 위해 어떤 building block service들이 가능한지 느껴볼 시간이다.
Predix Catalog로 가서 다양한 category들얼 알아보라.






* Tools to get you going

랩탑과 환경을 셋업하거나 서비스들을 configuring 하는데 좀 시간이 걸릴 것이다. 다음을 따르면 좋다.

- DevBox : 미리 configure 된 virtual machine. 모든 샘플 앱들과 tutorial들이 DevBox에 디자인되고 build 돼 있다.  Trainings, Demos, Workshops and Sales calls 등에 활용되면 좋을 것이다. Linux base 라서 Predix Cloud envitonment 의 Production 과 유사하다.
- Install Tools : modern Front-End, Back-End and Edge developers 들에게는 Industrial strength cloud applications를 build 하기 위해 좋은 tool들이 필요하다.



* View Sample Applicatoins

여러분의 어플리케이션은 어떤 모양일까? 그리고 어떻게 디자인 될까? 여기 샘플 어플리케이션에서 체크해 볼 수 있다.




* Build Industrial Apps

이제 여러분의 어플리케이션을 생성할 준비가 다 됐다.

    Build a Basic App - Learn by doing it yourself.  You'll know how to build Predix apps by the end of this journey.
    Edge Starter - Send sensor data from the Edge using a Predix Machine and Predix Times Series service.
    Dashboard Seed - Build great looking and performing applications using the Predix Dashboard Seed.
    RMD Reference App - The RMD Reference App is a super-set of all the other pieces.  It uses the Hello World microservice templates, the Predix Machine adapters in Edge Starter, and the Dashboard Seed for it’s UI.  And it also has an Analytics architecture for writing, configuring and triggering Analytics.
    RMD Analytics App – Run Analytics in the cloud, the pieces are all there that you manually download.  A tutorial and script to install are coming soon. 

기초에 대해 공부를 하게되면 -microservices architecture with both front end and back end- 많은 사람들이  integrating Predix services 를 위해 RMD Reference App 을 살펴보게 된다.
install script로 전체 어플리케이션을 다운받고 여러분의 Predix Cloud space에 deploy 할 수 있다.



* Tools you'll use every day

어플리케이션을 생성하고 production 에서 관리하는 데에는  여러 tool 들이 필요하다. 이를 위한 많은 툴들이 있고 지금도 매일 새로운 툴들이 나오고 있다.
    Predix Console - configure your Predix Cloud org, space, apps, services and users.
    Predix Tool Kit - set up your Security and learn the Predix APIs using this helpful utility
    Predix CLI Plugin - makes logging-in to the cloud much easier
    Machine Simulator - simulate sensor data using this basic microservice while you are developing your application



* Training and Boot Camps

좀 더 깊게 들어가고 싶거나 expert에게 좀 더 좋은 정보를 얻고 싶으면  Predix Training site로 가라. 여기서 무료 온라인 트레이닝 코스들을 찾을 수 있을 것이다.
그리고 Predix Bootcamp는 유료 training 을 제공하고 있다.



* Sample Code


이제 여러분의 business usecase에 여러 샘플들이나 widget들을 integrate 하고 싶을 것이다. 샘플 코드를 볼 수 있는 곳들이 있다.

    GitHub PredixDev -  all the tutorial content, SDKs, templates, microservices and widgets are out here.  And you can use them in your own apps.
    GitHub Predix - open source projects moderated by the Predix team.  Explore and contribute back to the community.
    Code Sharing -  look for code contributed by your peers as well as announcements from the Predix team.  Be sure to review your forum profile to subscribe for email notifications in the preferences.



* Get answers, ask questions, and stay informed

질문이 있으면 이곳에서 도움을 받을 수 있다.




* What you learned
Predix developer가 되기 위해 어디에서 tool들과 tip들을 찾을 수 있는지를 알게 됐다. 이제 Industrial Internet을 code 할 수 있게 됐다.

저작자 표시 비영리 동일 조건 변경 허락
신고

'Predix GE Digital' 카테고리의 다른 글

[Predix] Learning Predix: Getting Started  (0) 2016.11.16




요즘 재생에너지에 관심이 가면서 이것 저것 마련한 장난감들이다.


Cordless Drill, Cordless Driver 와 Tool set를 코스트코에서 구입했고,

각종 모터들은 이곳 저곳에서 구했다.


그리고 전기 관련 지식이 부족해서 공부용으로 학습용 완구 두어개도 구입했다.



저 가운에 위에 있는 네모 박스는 이전에 샀던 Solar Generator 이고 Solar Panel은 지금 창문에 걸려서 햇볕을 받으면서 충전을 하고 있다.


일단 저 tool들로 풍력 발전기와 Man Power generator 를 만들어서 배터리에 전기를 저장해서 convertor 와 연결해 필요할 때 전기를 사용할 수 있도록 만들 계획이다.


일단 학습용 완구로 공부부터 시작한다.



저작자 표시 비영리 동일 조건 변경 허락
신고

[Android] Optional SQLite Tutorial

2016.10.23 04:43 | Posted by 솔웅


Optional SQLite Tutorial

Sunshine 앱에서는 날씨 정보를 저장하기 위해 SQLite database를 사용할 것입니다. SQLite에 대한 기본적인 이해가 있어야 합니다. 그리고 기본적인 명령어들도 익혀야 합니다. 이 글은 SQL 데이터베이스에 초보인 사람들 혹은 refresher를 위한 글입니다.


Introduction

SQLite은 관계형 데이터베이스 관리 시스템 입니다. SQL (Structured Query Language)을 사용합니다. C++ 라이브러리처럼 Android OS에 패키지로 있어서 각 앱들마다 private database를 가질 수 있습니다 SQL은 create, search 그리고 maintain database 등에 이용됩니다. 이 글에서는 SQL의 신택스와 사용법에 대해 다룹니다. 그리고 어떻게 작은 규모의 데이터베이스를 생성하고 관리하는지에 대해서도 다룹니다. 여기서 다루는 commands들은 Sunshine에서 사용될 SQL과 비슷합니다.

Get SQLite

    1. 이곳에서 SQLite을 다운받아 설치하면 컴퓨터에서 사용할 수 있습니다.
    http://sqlite.org/download.html
    SQLite Installation

    2. 설치 후 윈도우 커맨드 창을 열어서 데이터베이스를 저장할 폴더로 이동합니다. sunshine.db라는 데이터베이스를 아래와 같이 설치 합니다.
    sqlite3 sunshine.db

    3. 모든 commands들을 보려면 이렇게 타입 합니다.
    .help

    4. 그중에 모든 데이터베이스를 보여주는 명령어가 있습니다. 현재로서는 sunshine.db에 대한 정보가 보여질 겁니다.

    .databases


    앱에서 여러분은 여러개의 데이터베이스들을 만들 수 있습니다. Sunshine 엡에서는 하나의 데이터베이스만을 가질 겁니다. 이 데이터베이스 안에는 여러개의 테이블을 만들 수 있습니다.


Create A Database Table

  1. A table is a collection of rows and columns like a spreadsheet. Use the CREATE TABLE statement to create a new database table called “weather.” Each row will be one day’s worth of weather data. It should have 6 columns of data: ID, date, min temperature, max temperature, humidity, and pressure.

    In the CREATE TABLE statement, each column definition is separated by commas, where you provide the column name and datatype for that column. We also specify that the column should be non-null. We specify the _id column to be the primary key and it’s an integer.

    CREATE TABLE weather( _id INTEGER PRIMARY KEY, date TEXT NOT NULL, min REAL NOT NULL, max REAL NOT NULL, humidity REAL NOT NULL, pressure REAL NOT NULL);

    The list of possible SQLite data types is a useful resource, or you can see this tutorial.

    Note: SQLite keywords, such as CREATE TABLE or PRIMARY KEY, are capitalized for ease of readability to distinguish them from the table and column names that we’ve selected, but you can lowercase the keywords if you want.

    Note: This is not the full table you’ll be using in Sunshine, this is just a simpler version of the table.

  2. Use this command to list out all tables. Ensure that the weather table was created.

    .tables

  3. Use a SELECT statement to return out all rows in the weather table. The * is a symbol that means “all of the columns”. At this time, nothing will be returned because the table is created, but there is no data in the table yet.

    SELECT * FROM weather;

  4. At any point, you can find out the schema of how the tables were created in the database

    .schema

Insert rows

  1. Use an INSERT statement to insert a new row of data into the weather table. The following INSERT statement inserts a row into the weather table for June 25th, 2014, which had a low of 16 degrees, a high of 20 degrees, 0 humidity and 1029 pressure. The _id of this row is 1.

    INSERT INTO weather VALUES(1,'20140625',16,20,0,1029);

  2. Query for all rows in the weather table, and you should see the one row of data you just inserted.

    SELECT * FROM weather;

  3. To have the column name be printed out as well (for easier readability as to what value corresponds to which column), turn the header on. Then do the query again.

    .header on
    SELECT * FROM weather;

  4. Experiment by inserting another 3 rows of data into the weather table. INSERT INTO weather VALUES(2,'20140626',17,21,0,1031); INSERT INTO weather VALUES(3,'20140627',18,22,0,1055); INSERT INTO weather VALUES(4,'20140628',18,21,10,1070);

    Query for all rows to verify they were inserted properly.

    SELECT * FROM weather;

Query rows

  1. Practice doing queries where you provide a selection WHERE clause to narrow down the number of rows that are returned in the result. Always remember the semicolon at the end of a statement!

    For all possible SQLite operators, see this link.

    This query returns rows from the weather table where the date column exactly equals the 20140626.

    SELECT * FROM weather WHERE date == 20140626;

  2. This query returns rows from the weather table where the date column is between 20140625 and 20140628. However, all columns are not returned, we just return the 4 specified columns (_id, date, min, and max) of the rows that match the query.

    SELECT _id,date,min,max FROM weather WHERE date > 20140625 AND date < 20140628;

  3. This query returns rows where the minimum temperature is greater than or equal to 18. Based on those matching rows, we order them based on increasing (also known as ascending or “ASC” for short) max temperature. The first row of the result that is printed out to the command line will be the row (with min temperature >= 18) with max temperature that is lowest out of all rows, so that subsequent rows will have higher max temperature.

    SELECT * FROM weather WHERE min >= 18 ORDER BY max ASC;

Update rows

  1. You can also update existing rows in the database with an UPDATE statement. This statement updates the weather table by setting the minimum temperature to be 0 and maximum temperature to be 100 for rows where the date is greater than 20140626 but less than 20140627.

    UPDATE weather SET min = 0, max = 100 where date >= 20140626 AND date <= 20140627;

    When you print out the whole weather table again, you can see that 2 rows were changed.

    SELECT * FROM weather;

Delete rows

  1. Use a DELETE statement to delete rows from a database table that match the given selection clause. In this case, we delete any rows from the weather table where humidity is not equal to 0.

    DELETE FROM weather WHERE humidity != 0;

Add columns

  1. If you have released a version of your app to users, and then decide you need to change the database schema, such as adding columns, then you’ll need to upgrade your database. You can alter existing tables, by using the ALTER TABLE command.

    Note: In general, you shouldn’t alter a table to remove a column because you’re deleting data and other tables could depend on that column. Instead you can just null out all values in that column.

    This statement alters the weather table by adding another column to the table called description, which will always be non-null and contain text. It will also default to the value ‘Sunny’ if no value is provided. In reality, you would choose a more reasonable default, but this is just for example purposes.

    ALTER TABLE weather ADD COLUMN description TEXT NOT NULL DEFAULT 'Sunny';

    Verify that the new description column exists when you query all rows and all columns.

    SELECT * FROM weather;

Delete table

  1. Delete the weather table by using the DROP TABLE command. Verify there are no more tables in the database.

    DROP TABLE weather;
    .tables

These are just the basics. Feel free to play around with SQLite some more. See this link: http://www.sqlite.org/cli.html

When you’re done, enter .quit to exit, and you can move onto the quiz on the next page!

저작자 표시 비영리 동일 조건 변경 허락
신고
이전 1 2 3 4 5 ... 296 다음

티스토리 툴바