2017년 1월 8일 일요일

How the mysterious dark net is going mainstream



Jamie Bartlett:

There’s a parallel Internet you may not have run across yet — accessed by a special browser and home to a freewheeling collection of sites for everything from anonymous activism to illicit activities. Jamie Bartlett reports from the dark net.


여러분이 접근할 수 없는 평행 인터넷이 있습니다 - 특별한 브라우저를 통해 접근할 수 있고 익명의 사회운동에서 불법적인 사회운동에 이르기까지 모든 것의 집이죠. 제이미 바트렛이 다크넷에 대해 보고합니다.





See also


2017년 1월 4일 수요일

GRIT 성공의 열쇠

경영 컨설팅으로 크게 성공한 안젤라 리 덕월쓰(Angela Lee Duckworth)는, 컨설팅 일을 그만두고 뉴욕시에서 중학생들에게 수학을 가르치기 시작했다. 

아이들을 가르치면서, 공부를 잘하는 아이들과 못하는 아이들을 구별짓는 것은 아이큐가 아니라는 것을 깨달았다. 성공의 열쇠는 바로 "기개"라는 것, 여기 그녀의 설명을 들어보자.

성공의 열쇠는 바로 "기개"다.







- 아버지에게 세뇌 당한 소녀, 43년 뒤 놀라운 일이 벌어졌다 -

2016년 12월 21일 수요일

gSubfolder - List Google Drive foldes

gSubfolder는 인터넷 브라우저에서 사용할 수 있는 웹 앱입니다.

Google 드라이브에서 작업할 폴더의 주소(URL)를 복사하여 gSubfolder에 붙여 넣고 Submit 버튼을 클릭합니다.

작업 내용은 입력 받은 폴더의 하위 폴더 목록을 Google spreadsheet에 저장해서 보여줍니다.

또한 Sheet의 하위 폴더를 Tree 형태로 정렬하는 Google Apps script를 지원합니다.


gSubfolder needs your permission to access your data on Google. 



gSubfolder에서 다음을 요청합니다. 
  • Google 드라이브에서 파일 보기 및 관리
  • Google 드라이브에서 스프레드시트 보기 및 관리
  • 애플리케이션과 연결된 데이터 보기 및 관리
  • 부재중 이 애플리케이션을 실행하도록 허용
허용을 클릭하면 이 앱과 Google에서 서비스 약관 및 개인정보처리방침에 따라 내 정보를 사용하도록 허용하게 됩니다. 언제든지 이 권한 및 다른 계정 권한을 변경할 수 있습니다.




2016년 8월 24일 수요일

2016년 8월 21일 일요일

Using a Firebase app secret in apps script

Google apps script에서 Firebase app secret을 사용하여 OAuth Authorization Flow 없이 Database를 사용할 수 있습니다.


  • Firebase console에서 새 프로젝트 만들기버튼으로 eojjiGas 프로젝트를 생성했습니다.
  • eojjiGas 프로젝트에서 설정 버튼 클릭하고 데이터베이스 탭에서 비밀번호를 복사합니다.







  • Google Apps script 에디터 메뉴 - 파일 - 프로젝트 속성
  • - 스크립트 속성 - fb-secret 속성 추가 : 값은 위에서 복사한 데이터베이스 비밀번호




  • Google Apps script 에디터 메뉴 게시- 웹 앱으로 배포




  • Google Apps script 에디터 메뉴 게시- 웹 앱으로 배포
  • - 앱을 실행할 사용자: 웹 앱을 액세스하는 사용자로 설정


  • 현재 웹 앱 URL: 




  • firebase - 데이터베이스 - 데이터







참고 자료:



  • Real-time notifications in add-ons with Firebase

July 29, 2015
http://googleappsdeveloper.blogspot.kr/2015/07/real-time-notifications-in-add-ons-with.html


Implementation
Inside the loop, each time an email is sent (i.e. each time we use the method GmailApp.sendEmail()), we use the Apps Script UrlFetch service to write into Firebase using its REST API. Firebase's capabilities makes this easy & secure and there’s no need for an OAuth Authorization Flow, just a Firebase app secret, as shown in the following example:


function addNewUserToFirebase() {
 var dbUrl = "https://test-apps-script.firebaseio.com";
 var secret = PropertiesService.getScriptProperties().getProperty("fb-secret");
 var path = "/users/";
 var userData = {
   romainvialard:{
     firstName:"Romain",
     lastName:"Vialard",
     registrationDate: new Date()
   }
 };
 var params = {
   method: "PUT",
   payload : JSON.stringify(userData)
 }
  UrlFetchApp.fetch(dbUrl + path + ".json?auth=" + secret, params);
}


  • Firebase REST

User Authenticating
Authenticating Servers


Authenticating Servers


If we are running a trusted server that is connecting to our Firebase database, we can authenticate it in several ways:


  1. Using a Firebase app secret: All authentication methods can accept a Firebase app secret instead of a JWT token. This will grant the server complete read and write access to the entire Firebase database. This access will never expire unless it is revoked via the App Dashboard.
  2. Using a secure JWT with the optional admin claim set to true: This method will grant a server complete read and write access to the entire Firebase database. This token will expire normally, so it is important to set the expiration times accordingly.
  3. Using a secure JWT designed to give access to only the pieces of data a server needs to touch: This method is more complicated, but it is the safest way to authenticate a server as it lets the Security and Firebase Rules prevent the server from doing anything it's not supposed to, even if it becomes compromised in some way.

  • Firebase reference

REST
Realtime Database


Retrieving and Updating Firebase Realtime Database Rules


The REST API can also be used to retrieve and update the Firebase Realtime Database Rules for your Firebase app. You'll need your Firebase app's secret, which you can find under the Secrets panel of your Firebase app's dashboard.
curl 'https://samplechat.firebaseio-demo.com/.settings/rules.json?auth=FIREBASE_SECRET'
curl -X PUT -d '{ "rules": { ".read": true } }' 'https://samplechat.firebaseio-demo.com/.settings/rules.json?auth=FIREBASE_SECRET'


  • 기본 권한 규칙을 사용하면 사용자가 인증을 받아야 합니다.
Get Started with Database Rules https://firebase.google.com/docs/database/security/quickstart





Public
// These rules give anyone, even people who are not users of your app,// read and write access to your database{  "rules": {    ".read": true,    ".write": true  }}