레이블이 google인 게시물을 표시합니다. 모든 게시물 표시
레이블이 google인 게시물을 표시합니다. 모든 게시물 표시

2016년 12월 3일 토요일

Chrome version 55 updated

크롬이 메모리에 대한 최적화를 통해
메모리를 많이 먹던 문제를 해결한 55 버전이 업데이트되었습니다.


(신난다!)

그 전에는 탭을 여러개 열어놓으면 메모리가 80%이상으로 올라갔었는데
업데이트하면서 현재는 45%, 메모리 할당량이 현저하게 줄어들었네요.

업데이트에 대한 이야기는 크롬 블로그에 올라왔네요.
https://googlechromereleases.blogspot.kr/2016/12/stable-channel-update-for-desktop.html

http://v8project.blogspot.kr/2016/10/fall-cleaning-optimizing-v8-memory.html
이 V8엔진 블로그 글에 따르면,
V8엔진의 자바스크립트 힙 크기를 최적화하는데에 가비지 컬렉션에서의 부하와
메모리 사용량이 트레이드 오프 관계가 있는데 그 부분을 최적화하여
결과적으로 힙 크기를 줄인 것 같습니다.(기기 메모리가 작은 환경에서)
전체적으로 메모리 사용량이 줄은 것 같은데,
54버전에서는 페이스북 탭을 1개만 열어도 메모리가 70%까지 올라갔던것에 비해
55버전에서는 페이스북 탭을 6개 열어도 메모리가 51%정도라는 것에 대해
많이 최적화된것으로 보입니다.

2016년 11월 18일 금요일

Google AI Experiments


https://aiexperiments.withgoogle.com/

이 사이트를 알게 된건 Quick, Draw라는 페이지였는데
https://quickdraw.withgoogle.com/
단어에 맞는 그림을 그리면 그림을 인식하는지 못하는지를 알려줍니다.



이런식으로 말이죠.



이 외에도 많은 실험사이트가 있는데 재미있는 것들이 많은 것 같습니다. :)
한번 살펴보세요!

2016년 11월 16일 수요일

구글 번역(Google Translate) 머신러닝을 통해 향상!

https://blog.google/products/translate/found-translation-more-accurate-fluent-sentences-google-translate/



구글 블로그에 올라왔네요 글의 일부분을 해석해봤습니다.
(조금 이상한 번역이 나오긴했지만)

10 년, 구글은 103에 몇 가지 언어를 지원 사라 졌 번역 연결 , 낯선 사람을 통해 도달 언어 장벽에도 사람들이 찾을 수 있도록 도와 사랑을 . 시작에서, 우리는 대규모 통계 기계 번역 개척  사용하여  텍스트를 번역하는 통계 모델 . 신경 기계 번역 : 오늘, 우리는 구글이 더 나은 번역 만들기의 다음 단계를 소개하고 있습니다.  
신경 기계 번역 몇 년 동안과에서 흥미로운 연구 결과를 생성 한 9월 , 우리 연구진은이 기술의 구글의 버전을 발표했다. 하이 레벨에서, 신경계 오히려 부재로 단 부분보다 한번에 전체 문장을 번역한다. 그것은 그 다음 재 배열보다 적절한 문법과 인간 말하기처럼되고 조정 관련성이 가장 높은 번역을 알아내는 데 도움이 넓은 맥락를 사용합니다. 그것은 각 문장을 이해하기 쉽게 때문에, 번역 단락과 기사가 많이 부드럽고 쉽게 읽을 수 있습니다. 이 때문에 기본적으로 시스템이 더 나은, 더 자연스러운 번역을 만들 시간이 지남에 따라 학습을 의미 신경 기계 번역에 내장 된 엔드 - 투 - 엔드 학습 시스템의 모든 수 있습니다. 오늘 우리와 한국어, 터키어 영어, 프랑스어, 독일어, 스페인어, 포르투갈어, 중국어, 일본어에서 8 개 언어의 총 행동으로 신경 기계 번역을 가하고 있습니다. 이 쿼리를 구글의 모든 번역의 35 % 이상을 덮고있는 세계 인구의 약 3 분의 1,의 기본 언어를 나타냅니다!

음 아직 긴 문장은 좀 안되는 것 같네요.
머신러닝을 통해서 향상되었지만, translate 커뮤니티를 통해서 계속 향상시켜나갈거라고 하네요.
자주 사용하는데 번역 커뮤니티도 열심히 해봐야겠습니다.

2016년 11월 9일 수요일

안드로이드 보이스 액션(Ok Google, Google Now)


요즘 '오케이 구글'로 검색하고 알림 설정하는데에 재미가 들려서
이렇게 명령을 실행하는 기능의 이름이 뭘까하고 찾아봤습니다.

'보이스 액션' 또는 '구글 나우 액션' 이라고 하네요.
구글 개발자 페이지를 보면 알 수 있었습니다.
https://developers.google.com/voice-actions/system/

그리고 보이스 액션을 사용한다면 어떻게 구현해야하는지도 나와있네요.
https://developers.google.com/voice-actions/system/#step_1_define_an_intent_filter

알람이나 전화걸기, 사진을 가져오는 등에 대한 액션은 이미 정의되어 있어서
어렵지 않게 구현할 수 있을 것 같은데요.

우리가 만든 앱의 특정기능을 실행하는 액션은 어려울 것 같아보입니다.
(한번 해봐야 알겠지만요.)

https://developers.google.com/voice-actions/system/#step_3_update_your_app_completion_status
위의 링크에는 앱 인덱싱을 포함한 빌더를 통해 알람을 세팅할 수 있는
예시코드가 포함되어 있습니다.

시간이 된다면 예시코드와 함께 포스팅을 해봐야겠습니다.

2016년 7월 29일 금요일

더 많은 사용자를 위한 개발 - 구글 개발자 블로그

원글: http://android-developers.blogspot.kr/2016/06/building-for-billions.html

구글 개발자 코리아 블로그 글
http://googledevkr.blogspot.kr/2016/07/building-for-billions.html

좋은 이야기인 것 같습니다.
사용자들이 좋은 환경에서 잘 사용해야 좋은 앱이지요!

블로그 글의 내용은

- 느린 인터넷 및 오프라인 상태에서 올바르게 동작하기
- 정확히 상황에 들어맞는 올바른 콘텐츠 제공
모바일 하드웨어를 위한 최적화
- 배터리 소모 절감
- 데이터 사용량 절약

해당 내용은
구글 빌리온즈 (https://developers.google.com/billions/) 에서 볼 수 있습니다.

웹에 대한 내용은
https://developers.google.com/web/billions/

안드로이드에 대한 내용은
https://developer.android.com/distribute/essentials/quality/billions.html

2016년 7월 22일 금요일

Chrome 52 Released

Chrome 52: Contain Property, the PerformanceObserver API & Service Worker Stream





Chrome 52 released.

Release note

* CSS Contain Property

- Post: http://goo.gl/9hX2A2

- Spec: http://goo.gl/AmLB8z

* Performance Observer API

- Post: http://goo.gl/gteR4E

- Demo: http://goo.gl/wYwdY9

- Spec: http://goo.gl/TA9RtM

* Service Worker Streamed Responses

- Post: http://goo.gl/hrRUd0

- Spec: http://goo.gl/DgrjhH

2016년 7월 14일 목요일

Google I/O Extended Seoul 2016 재생목록

 

https://www.youtube.com/playlist?list=PLF_OUznA3RTRSTDdjnlzyC-rKVq6nq4S7
좋은 내용이 많네요
안드로이드 N버전 준비부터 프로그래시브 웹, 텐서 플로우 등
여러가지 공부할게 많은 것 같습니다.

Google I/O 2016의 영어 버전 재생목록은 (Extended말고 실제로 샌프란시스코에서 했던것)
https://www.youtube.com/playlist?list=PLOU2XLYxmsILe6_eGvDN3GyiodoV3qNSC
여기있습니다.

2016년 7월 3일 일요일

Coding With Chrome

http://codingwithchrome.foo/



we can learn using chrome extension program.

link here : https://chrome.google.com/webstore/detail/coding-with-chrome/becloognjehhioodmnimnehjcibkloed

And you can contribute this project on GitHub
https://github.com/google/coding-with-chrome/

First, this program UI like this.



So Simple. i clicked Beginner in this posting.
And we see this screen below.




1. Blockly
Blockly menu likes scratch i think.






2. Robots
Robots menu likes scratch same as blockly.
but this menu can be used robot control.



first ev3 menu can use if you have ev3 robot. (when i use program, can not use it)
so, i'll show you sphero menu.





Start!






<Youtube information video>


This program good to learn coding.
gooooood

2016년 6월 24일 금요일

Google I/O 2016 codelab

https://codelabs.developers.google.com/io2016



You can learn technique on this site.
I click one of lab, "Accerlerated Mobile Pages Advanced Concepts"



















10 step course.




Do each stap.
End.



I will use this codelab on my project.




2016년 6월 9일 목요일

Google Web PageSpeed tool

About Page: https://developers.google.com/speed/pagespeed/

Do Page: https://developers.google.com/speed/pagespeed/insights/


Enter a web page URL
In my case, i enter my blog.


Pagespeed insight shows result like this.

I will fix some issues for my blog. :)

good service of webpage

2016년 6월 5일 일요일

Google blogger custom template settings, More custom template flexibility

https://blogger.googleblog.com/2016/05/more-custom-template-flexibility.html

More custom template flexibility

Last May, we added some expressions to our templating language to make it easier for you to customize your blog’s look and feel. These new expressions proved popular with those of you who enjoy advanced blogging tools, so we wanted to offer you even more flexibility. 

Starting today, we’re introducing a new set of operators, which we’re calling lambda expressions, that allow you to apply rules to whole sets of data (think posts, comments, or labels), rather than just individual instances. 

Let’s say you wanted to add a flower image to all posts with the label “Flower,” for example. With lambda expressions, simply define a variable name that each item in the set will take, and then refer to the variable name as though it were each item.


<!-- Show a Flower image if the post has the label flower -->
<b:if cond='data:post.labels any (l => l.name == "Flower")'>
 <img src=’/img/flower.jpg’ />
<b:if/>

This code will show if label is "Flower"
Like this below.

Help this Lambda expression,

Follow this blogger +Blogger
inform this informations

2016년 6월 2일 목요일

Google data visualize tool - Google data studio


Homepage: http://www.google.com/analytics/data-studio/

I click the "TRY IT FOR FREE".


if you click first menu, "Welcome Data Studio"


more examples in this page.

[Sample] YouTube Channel Report


Google Data Studio make data visual awesome!

2016년 4월 25일 월요일

Google I/O 2016 conference will coming

https://events.google.com/io2016/

Schedule
May 18 ~ 20
https://events.google.com/io2016/schedule#day1

This is what google I/O 2016

Google I/O is for developers—the creative coders who are building what’s next. Together we’ll explore the latest in tech, mobile, and beyond.

2016년 3월 26일 토요일

Google Adsense error on blogger register

Google Adsense error on blogger register

애드센스 위젯을 블로그에 적용하는 중에 오류가 발생했습니다.
500 Internal Server Error { "code" : 500, "errors" : [ { "debugInfo" : "com.google.api.server.core.Fault: ImmutableErrorDefinition{base=null, category=BACKEND_ERROR, cause=null, debugInfo=null, domain=global, extendedHelp=null, httpHeaders={}, httpStatus=internalServerError, internalReason=Reason{arguments={}, cause=null, code=null, createdByBackend=true, debugMessage=com.google.ads.syn.inventory.client.InventoryClientException: RESPONSE_ERROR_CHECKSUM_MISMATCH: Checksums mismatch when updating.\nOriginal:\nweb_property_id: 66527820\nad_slot_id: 298285260\nad_slot_code: \"1608395696\"\ndescription: \"pineoc_main_Blog1_300x250_as\"\nlast_edit_timestamp: 1459001685069\ncreation_timestamp: 1451826186832\nvisual_settings {\n ad_format: \"300x250_as\"\n font_size: FONT_SIZE_ACCOUNT_DEFAULT\n width: 300\n height: 250\n color {\n color_type: AD_SLOT_COLOR_BG\n color_value: \"ffffff\"\n }\n color {\n color_type: AD_SLOT_COLOR_TEXT\n color_value: \"222222\"\n }\n color {\n color_type: AD_SLOT_COLOR_LINK\n color_value: \"2288bb\"\n }\n color {\n color_type: AD_SLOT_COLOR_URL\n color_value: \"666666\"\n }\n color {\n color_type: AD_SLOT_COLOR_BORDER\n color_value: \"ffffff\"\n }\n corner_style: \"rc:0\"\n ad_slot_ad_type: AD_SLOT_AD_TYPE_TEXT\n ad_slot_ad_type: AD_SLOT_AD_TYPE_IMAGE\n}\nactive: false\nchecksum: 1525395321\nstatus: ACTIVE\ncreator_customer_id: 9079886\nformat_settings {\n ad_type: TEXT\n ad_type: IMAGE\n}\nmarkup_settings {\n format: \"300x250_as\"\n}\n\nUpdate:\nweb_property_id: 66527820\nad_slot_id: 298285260\nad_slot_code: \"1608395696\"\ndescription: \"pineoc_main_Blog1_300x250_as\"\nlast_edit_timestamp: 1458998439678\ncreation_timestamp: 1451826186832\nvisual_settings {\n ad_format: \"300x250_as\"\n font_size: FONT_SIZE_ACCOUNT_DEFAULT\n width: 300\n height: 250\n color {\n color_type: AD_SLOT_COLOR_BG\n color_value: \"ffffff\"\n }\n color {\n color_type: AD_SLOT_COLOR_BORDER\n color_value: \"ffffff\"\n }\n color {\n color_type: AD_SLOT_COLOR_TEXT\n color_value: \"222222\"\n }\n color {\n color_type: AD_SLOT_COLOR_URL\n color_value: \"666666\"\n }\n color {\n color_type: AD_SLOT_COLOR_LINK\n color_value: \"2288bb\"\n }\n corner_style: \"rc:0\"\n ad_slot_ad_type: AD_SLOT_AD_TYPE_TEXT\n ad_slot_ad_type: AD_SLOT_AD_TYPE_IMAGE\n}\nactive: false\nchecksum: 335201633\nstatus: ACTIVE\ncreator_customer_id: 9079886\nformat_settings {\n ad_type: TEXT\n ad_type: IMAGE\n}\nmarkup_settings {\n format: \"300x250_as\"\n}\n\n\tat com.google.ads.syn.inventory.client.InventoryClient.handleRpcException(InventoryClient.java:167)\n\tat com.google.ads.syn.inventory.client.InventoryClient.updateInventory(InventoryClient.java:108)\n\tat com.google.ads.syn.adsense.api.apiary.services.inventory.InventoryUpdater.submitUpdateRequest(InventoryUpdater.java:74)\n\tat com.google.ads.syn.adsense.api.apiary.services.inventory.InventoryUpdater.updateAdSlot(InventoryUpdater.java:34)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl.saveAndConvertAdSlot(AdUnitsServiceImpl.java:441)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl.access$900(AdUnitsServiceImpl.java:73)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl$4.call(AdUnitsServiceImpl.java:298)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl$4.call(AdUnitsServiceImpl.java:267)\n\tat com.google.ads.syn.adsense.api.apiary.services.pebl.RosyExecutor.handleRequest(RosyExecutor.java:324)\n\tat com.google.ads.syn.adsense.api.apiary.services.pebl.RosyExecutor.invoke(RosyExecutor.java:255)\n\tat com.google.ads.syn.adsense.api.apiary.services.pebl.RosyExecutor.invoke(RosyExecutor.java:134)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl.update(AdUnitsServiceImpl.java:262)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl$$EnhancerByGuice$$2bb36a5f.CGLIB$update$1()\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl$$EnhancerByGuice$$2bb36a5f$$FastClassByGuice$$50d1b423.invoke()\n\tat net.sf.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)\n\tat com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:76)\n\tat com.google.ads.syn.adsense.api.apiary.AdSenseApiStatsInterceptor.invoke(AdSenseApiStatsInterceptor.java:94)\n\tat com.google.inject.internal.InterceptorStackCallback$InterceptedMethodInvocation.proceed(InterceptorStackCallback.java:77)\n\tat com.google.inject.internal.InterceptorStackCallback.intercept(InterceptorStackCallback.java:55)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnitsServiceImpl$$EnhancerByGuice$$2bb36a5f.update()\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnits$AdUnitsService$ServiceParameters$12.handleBlockingRequest(AdUnits.java:18757)\n\tat com.google.ads.syn.adsense.api.apiary.services.AdUnits$AdUnitsService$ServiceParameters$12.handleBlockingRequest(AdUnits.java:18755)\n\tat com.google.net.rpc3.impl.server.RpcBlockingApplicationHandler.handleRequest(RpcBlockingApplicationHandler.java:28)\n\tat com.google.net.rpc3.impl.server.RpcServerInternalContext.runRpcInApplication(RpcServerInternalContext.java:558)\n\tat com.google.net.rpc3.impl.server.RpcServerChannel$1$1.runInContext(RpcServerChannel.java:875)\n\tat com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:446)\n\tat com.google.tracing.CurrentContext.runInContext(CurrentContext.java:256)\n\tat com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:310)\n\tat com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:302)\n\tat com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:443)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\n\tat java.lang.Thread.run(Thread.java:745)\nCaused by: com.google.net.rpc3.client.RpcClientException: APPLICATION_ERROR;ads.adsense.inventory/InventoryService.InventoryUpdate;Checksums mismatch when updating.\nOriginal:\nweb_property_id: 66527820\nad_slot_id: 298285260\nad_slot_code: \"1608395696\"\ndescription: \"pineoc_main_Blog1_300x250_as\"\nlast_edit_timestamp: 1459001685069\ncreation_timestamp: 1451826186832\nvisual_settings {\n ad_format: \"300x250_as\"\n font_size: FONT_SIZE_ACCOUNT_DEFAULT\n width: 300\n height: 250\n color {\n color_type: AD_SLOT_COLOR_BG\n color_value: \"ffffff\"\n }\n color {\n color_type: AD_SLOT_COLOR_TEXT\n color_value: \"222222\"\n }\n color {\n color_type: AD_SLOT_COLOR_LINK\n color_value: \"2288bb\"\n }\n color {\n color_type: AD_SLOT_COLOR_URL\n color_value: \"666666\"\n }\n color {\n color_type: AD_SLOT_COLOR_BORDER\n color_value: \"ffffff\"\n }\n corner_style: \"rc:0\"\n ad_slot_ad_type: AD_SLOT_AD_TYPE_TEXT\n ad_slot_ad_type: AD_SLOT_AD_TYPE_IMAGE\n}\nactive: false\nchecksum: 1525395321\nstatus: ACTIVE\ncreator_customer_id: 9079886\nformat_settings {\n ad_type: TEXT\n ad_type: IMAGE\n}\nmarkup_settings {\n format: \"300x250_as\"\n}\n\nUpdate:\nweb_property_id: 66527820\nad_slot_id: 298285260\nad_slot_code: \"1608395696\"\ndescription: \"pineoc_main_Blog1_300x250_as\"\nlast_edit_timestamp: 1458998439678\ncreation_timestamp: 1451826186832\nvisual_settings {\n ad_format: \"300x250_as\"\n font_size: FONT_SIZE_ACCOUNT_DEFAULT\n width: 300\n height: 250\n color {\n color_type: AD_SLOT_COLOR_BG\n color_value: \"ffffff\"\n }\n color {\n color_type: AD_SLOT_COLOR_BORDER\n color_value: \"ffffff\"\n }\n color {\n color_type: AD_SLOT_COLOR_TEXT\n color_value: \"222222\"\n }\n color {\n color_type: AD_SLOT_COLOR_URL\n color_value: \"666666\"\n }\n color {\n color_type: AD_SLOT_COLOR_LINK\n color_value: \"2288bb\"\n }\n corner_style: \"rc:0\"\n ad_slot_ad_type: AD_SLOT_AD_TYPE_TEXT\n ad_slot_ad_type: AD_SLOT_AD_TYPE_IMAGE\n}\nactive: false\nchecksum: 335201633\nstatus: ACTIVE\ncreator_customer_id: 9079886\nformat_settings {\n ad_type: TEXT\n ad_type: IMAGE\n}\nmarkup_settings {\n format: \"300x250_as\"\n}\n;AppErrorCode=9;StartTimeMs=1459001686384;tcp;Deadline(sec)=60.0;ResFormat=UNCOMPRESSED;Originator=blogger;Tag=\u0002blogger_job\u0003prod.blogger-dashboard\u0002blogger_servlet_path\u0003/adsense-finalize.g\u0002blogger_servlet_name\u0003com.google.blogger.b2.ui.common.servletpage.Servle:SchedulingHash=523420b7d3039f0f;ServerTimeSec=0.021169408;LogBytes=256;Non-FailFast;No-EndUserCredsRequested;EffSecLevel=none;ReqFormat=UNCOMPRESSED;ReqID=bca27971dd9138f4;GlobalID=9ec270eb6edd867d;Server=10.196.135.33:4405\n\tat com.google.net.rpc3.client.RTRUNCATED (original length 8507), errorProtoCode=null, errorProtoDomain=null, filteredMessage=null, location=null, message=null, unnamedArguments=[]}, location=null, message=null, reason=null, rpcCode=500}\n\tat com.google.api.server.core.ErrorCollector.toFault(ErrorCollector.java:43)\n\tat com.google.api.server.rest.adapter.rosy.RosyErrorConverter.toFault(RosyErrorConverter.java:62)\n\tat com.google.api.server.rest.adapter.rosy.RosyHandler$2.call(RosyHandler.java:256)\n\tat com.google.api.server.rest.adapter.rosy.RosyHandler$2.call(RosyHandler.java:237)\n\tat com.google.api.server.core.util.CallableFuture.run(CallableFuture.java:62)\n\tat com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:441)\n\tat com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:840)\n\tat com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:770)\n\tat com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:626)\n\tat com.google.api.server.core.util.CallableFuture.run(CallableFuture.java:62)\n\tat com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:441)\n\tat com.google.common.util.concurrent.AbstractFuture.executeListener(AbstractFuture.java:840)\n\tat com.google.common.util.concurrent.AbstractFuture.complete(AbstractFuture.java:770)\n\tat com.google.common.util.concurrent.AbstractFuture.set(AbstractFuture.java:626)\n\tat com.google.api.server.core.util.CallableFuture.run(CallableFuture.java:62)\n\tat com.google.api.server.thread.ThreadTrackers$ThreadTrackingRunnable.run(ThreadTrackers.java:126)\n\tat com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:439)\n\tat com.google.api.server.server.CommonModule$ContextCarryingExecutorService$1.runInContext(CommonModule.java:805)\n\tat com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:446)\n\tat com.google.tracing.CurrentContext.runInContext(CurrentContext.java:256)\n\tat com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:310)\n\tat com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:302)\n\tat com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:443)\n\tat com.google.gse.internal.DispatchQueueImpl$WorkerThread.run(DispatchQueueImpl.java:387)\n" } ], "message" : null } 
수익 페이지로 이동해서 애드센스 설정을 확인해 보세요.

This error occurred from earnings.
Register Adsense, i want fix this problem. but i can't.
please help google!

2016년 3월 21일 월요일

Device Art Generator - Google developers


http://developer.android.com/intl/ko/distribute/tools/promote/device-art.html

I find the solutions for making publishing app image.
use app screenshot, you can make app screenshot image with devices.
I can use to google play store.

you can drag to device image.
and change image to device image

source image



result image


It is good for me to publish app!


JIRA Plugin - ScriptRunner 소개 #2

관련 글 소개 #1:  https://pineoc.blogspot.com/2019/03/scriptrunner-1.html ScriptRunner 소개 #2 지난 글에서는 Behaviours를 보았고 다음 내용인 콘솔, 리스너 등을 ...