GithubHelp home page GithubHelp logo

entrylabs / entryjs Goto Github PK

View Code? Open in Web Editor NEW
118.0 118.0 441.0 642.38 MB

entryjs is visual programming editor for education

Home Page: https://playentry.org

License: Apache License 2.0

JavaScript 96.80% Shell 0.02% TypeScript 2.10% Less 1.00% EJS 0.08%

entryjs's People

Contributors

annajink avatar boaaaang avatar boolgom avatar catholic85 avatar chanlee avatar dalgona-edu avatar extracold1209 avatar geniusjuno7 avatar irarykim avatar izizi1122 avatar jaehyeonsk avatar kimorkim avatar lee21137 avatar leunge avatar maru-shlee avatar mechanicblock avatar metal-zero avatar mmirann avatar nnmm666 avatar o2lee avatar pillpill avatar prisml avatar realwolf avatar remoted avatar seonmyunglim avatar sketchwaremoon avatar teamong avatar tnks2u avatar wererewe avatar wodnjs6512 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

entryjs's Issues

grunt 실행 에러 관련 문의입니다.

안녕하세요.

문의 글 작성 전에, 먼저 올라온 아래 글도 참고해서 다시 해보고
구글링 하면서 해봐도 해결이 안돼서 결국 글을 올립니다.
(작업폴더 삭제하고 다시 해본게 3번째인데 도저히 해결이 안되네요 ㅠㅠ)

grunt 에서 진행이 막힌 상황입니다. 콘솔창 내용을 가져와봤습니다.

C:\workspace\Entry\entryjs>grunt
Loading "grunt-karma.js" tasks...ERROR
TypeError: Cannot read property 'prototype' of undefined
Warning: Task "karma" not found. Used --force, continuing.

Done, but with warnings.

위의 에러가 해결이 안되고 있습니다.
해결책을 알려주신다면 대단히 감사드립니다. 잘 부탁 드립니다.

알티노 라이트 블록 출력 관련

안녕하세요.
새로운 디바이스 추가를 위해서 develop-hw 브랜치에서 작업을 하고 있습니다.
hardware에 신규 파일을 추가하고 하드웨어 id는 저희 기존 id에 값을 올려 사용하고 있습니다(24.3).
하드웨어 연결 여부와 상관없이 하드웨어 탭에 "알티노라이트"의 블록이 보이고 있습니다.
isNotFor 값도 제대로 지정이 되어있는듯 한데요... 확인 부탁드립니다.

serve.js의 proxy 문제

https://playentry.org/lib/entryjs/~ 에서 받아오는건 정상적으로 처리되지만
localhost 에서 받아오는건 /lib/entry-js/에서 받아오도록 코드가 짜여져 있는데 반해서
serve.js에서는

    historyApiFallback: {
        index: '/example/example.html',
        rewrites: [
            { from: /^\/$/, to: '/example/example.html' },
            { from: /^\/lib\/entryjs/, to: '/' },
        ],
    },
    proxy: {
        '/lib/entryjs': {
            target: 'http://localhost:8080',
            pathRewrite: { '^/lib/entryjs': '' },
        },
    },

위와 같이 '/lib/entry-js/'가 아닌 '/lib/entryjs/'로 되어있음을 확인할 수 있습니다.
때문에 이미지가 다 보이지 않는 현상이 생깁니다.
둘 중 어느 쪽으로든 수정이 필요해 보입니다.

오브젝트 선택시 선택테두리 개선 요청

photo_2021-06-26_19-27-37

안녕하세요. 오브젝트 선택시 생기는 크기조절 테두리가 너무 커서 오브젝트를 작게 만들면 선택틀이 오브젝트 전체를 다 차지하게 나타납니다.
그러다 보니 마우스로 선택하여 이동하는데 어려움이 있습니다. 특히 초보자는 이동시키는데 더 어렵다고 합니다.
선택틀이 오브젝트 크기와 함께 같이 작아지면 오브젝트도 확인되고 마우스로 드레그 하는데에도 쉬울것 같습니다.
감사합니다.

[Feature request] initOptions에 확장, 인공지능, 데이터 분석 블럭메뉴와 테이블 탭을 제거할 수 있는 옵션제공

안녕하세요? 개도국(우즈베키스탄)을 위한 커스텀 버전을 만들고 있습니다.

최신버전에 탑재된 확장, 인공지능, 데이터 분석 블럭메뉴와 테이블 탭을 제거할 수 있는 옵션제공해 주시면 감사합니다.
한국에서만 사용가능한 기능이 대부분이고, 기능이 너무 많아 오히려 현지에서 어려운 프로그램으로 인식되기도 해 필요에 따라 넣고 뺄 수 있으면 좋겠습니다.

감사합니다.

[하드웨어] 하드웨어 교과형 일반형 구분 구조 개선

이슈

  • 기존에 static_mini.js와 block_entry_mini.js 파일로 관리하던 교과형 하드웨어 관리 구조를 개선합니다.

대안 구조

  • static_mini.js와 block_entry_mini.js 파일의 교과형 하드웨어 블록 정보를 각 하드웨어 블록파일로 분리합니다.
  • 각 하드웨어 블록파일에서 교과형 여부 속성값을 추가하고, 이 값의 여부에 따라 제조사들이 손쉽게 교과형 여부 변경이 가능하도록 구성합니다.

괄호로 묶인 문자열의 처리 오류

Summary

엔트리에서 문자열이 괄호로 묶여있는 경우, 여러 문제를 일으키게 됩니다.

Description

import Entry

def when_start():
    Entry.print("(test)".replace("(test)", "abcd"))

이 엔트리파이썬 코드를 실행하면(블럭코딩으로 전환해도 똑같이 됩니다), abcd가 출력되어야 정상입니다. 그러나, 실제는 그렇게 실행되지 않습니다. (abcd)로 출력됩니다.

Speak Block

How can i use the speak and say block. i tried it it does not work. can you guide me on how to make the speak block speakout sound

[질문] 모양, 사운드 추가

안녕하세요.

모양, 사운드 추가 버튼을 눌러도 반응이 없습니다. playentry 홈페이지 네트워크 탭에서 에셋들의 주소를 보니 에셋서버에서 mp3 파일이나 각종 파일들을 내려받는 걸 미루어봤을 때 에셋서버가 필요해보이는데, 맞을까요?

엔트리 개발환경 설치이슈

안녕하세요 엔트리 개발 환경세팅 도중 써드파티 설치 오류가 발생되서 문의합니다.

https://entrylabs.github.io/docs/guide/basic/setting_environment.html
환경설치 부분에서 윈도우의 경우windows-build-tools 를 설치해야하는데

npm install --global --production windows-build-tools 에서는 "Successfully installed Python 2.7" 메시지 이후에 넘어가지 않고
같은 오류로 찾아보니깐

npm install --global --production [email protected] 명령어를 통해서 설치를 진행하는데
image
위의 이미지와 같이 "Could not install Visual Studio Build Tools" 로 나오면서 windows-build-tools 가 제대로 설치가 안되는 상황입니다.

설치를 진행한 npm 과 node 버전은 LTS 버전으로 진행하였습니다.
npm: 6.14.12
node: 14.16.1

블록 코딩에서 엔트리 파이선으로 전환 시 사칙연산 우선 순위가 바뀝니다.

블록 코딩으로 사칙연산 블록을 중첩해 결합한 뒤 엔트리 파이선으로 전환하면 괄호 없이 모든 수식이 연결 되어 블록이 어떻게 결합되어 있었는지에 대한 정보가 사라집니다. 이 때문에 연산 우선 순위가 바뀌어 연산 결과가 달라지며, 다시 블록 코딩으로 전환 했을 때 블록이 기존과 다르게 결합됩니다.

  1. 블록 코딩 (1 + (2 * (3 - 4)) = -1)

스크린샷 2021-10-30 오후 5 44 29

  1. 엔트리 파이선으로 전환 시 (1 + 2 * 3 - 4 = 3)
def when_start():
    Entry.print(1 + 2 * 3 - 4)
  1. 다시 블록 코딩으로 전환 시 ((1 + (2 * 3)) - 4 = 3)

스크린샷 2021-10-30 오후 5 45 31

Unable to run example.html

Hello!

I have the following html file served by a local web server: https://gist.github.com/424fd473de9311a6e641722595c3596f

with the following javascript:

$(document).ready(function(){
  var initOption = {
    type: 'workspace',
    libDir: '../node_modules/'
  }
  Entry.init(
    document.getElementById('workspace'),
    initOption
  );
  // Entry.enableArduino();
  Entry.loadProject();
});

And it almost works. I have the following issues:

  • Can draw but not save drawings - clicking File -> Save does nothing. Visual bug, see image.
    I can press New Picture to create a new image.
    entry
  • Can't press "Add new shape" to create a new image
  • Can't add new objects to the project - nothing happens when I press the button
  • It seems like fonts are not loaded, as you can see in the images, things do not look as good as they do on the play-entry website.
  • When I click the change project speed button, the graphics showing the differently colored bars is not visible, but I can click to change the speed of the project anyway.
    entry

I know all JS resources are loaded properly. I get WebSocket errors in the console becuase hw.js tries to connect by default. Commenting out hw.js#L12 removes these errors, but does not change the bugs above.

As you can see in the html file, I have also included CodeMirror and velocity js dependencies. If you want, I can add these to the README.md file also. I can also hand you the bower.json file I use for all of this.

npm이 이상해요

npm install도 했습니다
npm serve라고쓰면 로그에 이렇게 뜹니다

[email protected] serve D:\entry\entryjs-develop (1)\entryjs-develop
cross-env NODE_ENV=serve webpack-dev-server --open --hot --inline --host 127.0.0.1

clean-webpack-plugin: D:\entry\entryjs-develop (1)\entryjs-develop\dist has been removed.
events.js:177
throw er; // Unhandled 'error' event
^

Error: listen EACCES: permission denied 127.0.0.1:8080
at Server.setupListenHandle [as _listen2] (net.js:1211:19)
at listenInCluster (net.js:1276:12)
at doListen (net.js:1415:7)
at processTicksAndRejections (internal/process/task_queues.js:74:11)
Emitted 'error' event at:
at emitErrorNT (net.js:1255:8)
at processTicksAndRejections (internal/process/task_queues.js:74:11) {
code: 'EACCES',
errno: 'EACCES',
syscall: 'listen',
address: '127.0.0.1',
port: 8080
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] serve: cross-env NODE_ENV=serve webpack-dev-server --open --hot --inline --host 127.0.0.1
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] serve script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\for\AppData\Roaming\npm-cache_logs\2020-02-29T11_58_30_575Z-debug.log
사이트에 들어가면
500 Servlet Exception
javac compiler is not available in Java(TM) SE Runtime Environment 1.8.0_231-b11.
Check that you are using the JDK, not the JRE.
Resin/4.0.62 Server: 'app-0'
Exception
javac compiler is not available in Java(TM) SE Runtime Environment 1.8.0_231-b11.
Check that you are using the JDK, not the JRE.
Resin/4.0.62 Server: 'app-0'
이렇게 뜨고요
디버그 파일에는
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli 'C:\Program Files\nodejs\node.exe',
1 verbose cli 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
1 verbose cli 'run',
1 verbose cli 'serve'
1 verbose cli ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'preserve', 'serve', 'postserve' ]
5 info lifecycle [email protected]preserve: [email protected]
6 info lifecycle [email protected]
serve: [email protected]
7 verbose lifecycle [email protected]serve: unsafe-perm in lifecycle true
8 verbose lifecycle [email protected]
serve: PATH: C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;D:\entry\entryjs-develop (1)\entryjs-develop\node_modules.bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;D:\새 폴더 (5)\bin;D:\새 폴더 (5)\utils\bin;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\iCLS;C:\Program Files\Intel\Intel(R) Management Engine Components\iCLS;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\WiFi\bin;C:\Program Files\Common Files\Intel\WirelessCommon;C:\Program Files\dotnet;C:\Program Files\Microsoft SQL Server\130\Tools\Binn;C:\Program Files (x86)\Windows Live\Shared;C:\WINDOWS\System32\OpenSSH;C:\Program Files\nodejs;C:\Users\for\AppData\Local\Programs\Python\Python36\Scripts;C:\Users\for\AppData\Local\Programs\Python\Python36;C:\Users\for\AppData\Local\Microsoft\WindowsApps;C:\Program Files\Intel\WiFi\bin;C:\Program Files\Common Files\Intel\WirelessCommon;C:\Program Files\Bandizip;C:\Users\for\AppData\Roaming\npm;D:\Microsoft VS Code\bin;C:\Program Files\JAVA\jdk-10.0.1\bin;;C:\Program Files (x86)\ESTsoft\ALSee\x64
9 verbose lifecycle [email protected]serve: CWD: D:\entry\entryjs-develop (1)\entryjs-develop
10 silly lifecycle [email protected]
serve: Args: [
10 silly lifecycle '/d /s /c',
10 silly lifecycle 'cross-env NODE_ENV=serve webpack-dev-server --open --hot --inline --host 127.0.0.1'
10 silly lifecycle ]
11 silly lifecycle [email protected]serve: Returned: code: 1 signal: null
12 info lifecycle [email protected]
serve: Failed to exec serve script
13 verbose stack Error: [email protected] serve: cross-env NODE_ENV=serve webpack-dev-server --open --hot --inline --host 127.0.0.1
13 verbose stack Exit status 1
13 verbose stack at EventEmitter. (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:301:16)
13 verbose stack at EventEmitter.emit (events.js:200:13)
13 verbose stack at ChildProcess. (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:200:13)
13 verbose stack at maybeClose (internal/child_process.js:1021:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:283:5)
14 verbose pkgid [email protected]
15 verbose cwd D:\entry\entryjs-develop (1)\entryjs-develop
16 verbose Windows_NT 10.0.17763
17 verbose argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "run" "serve"
18 verbose node v12.5.0
19 verbose npm v6.9.0
20 error code ELIFECYCLE
21 error errno 1
22 error [email protected] serve: cross-env NODE_ENV=serve webpack-dev-server --open --hot --inline --host 127.0.0.1
22 error Exit status 1
23 error Failed at the [email protected] serve script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]
이렇게 뜹니다.
해결법이 없을까요?

이름 입력 창에서 xss 문제

만들기의 모든 이름 입력 창에서 img 태그를 이용하여 xss를 할 수 있습니다.
image
(eval을 사용하지 않아도 작동)

[기능 제안] 변수나 스트링으로 붓 색 지정

엔트리 서비스 내의 제안 및 건의보다는 entryjs 레포 자체에 남기는게 더 적절하다고 생각돼 이곳에 남깁니다. 현재 엔트리 내 붓의 색깔은 작품 만들기 화면에서 직접 수정해야 하는데요, 이런 방식은 작품 제작 시 불편한 점이 많아 LLK/scratch-blocks 처럼 붓 색깔 지정을 일반적인 스트링 파라미터로도 가능하게 하는 기능을 제안하고 싶습니다.

image
image

entryjs grunt 실행 에러 문의

entryJS grunt 실행 시 에러가 발생하여 문의를 드립니다.

== 개발환경 구축 참고문서
https://entrylabs.github.io/entry-hw/page/2_SettingEnvironments/

== 빌드 환경
windows 10 64bit
javac 1.7.0_79
node.js v5.12.0
grunt-cli v1.2.0
grunt v0.4.5

아래는 소스 다운로드 후 수정없이 grunt실행 한 결과 입니다.

== 에러 요약

src/blocks/block_neobot.js:26: ERROR - object literals cannot contain duplicate keys in ES5 strict mode
name: 'neobot',
^

src/workspace/block_entry.js:21995: ERROR - object literals cannot contain duplicate keys in ES5 strict mode
"isNotFor": ["dplay"],
^

src/workspace/field/angle.js:68: ERROR - object literals cannot contain duplicate keys in ES5 strict mode
height: CONTENT_HEIGHT, 'rx':3, 'ry': 3,
^

src/workspace/field/angle.js:68: ERROR - object literals cannot contain duplicate keys in ES5 strict mode
height: CONTENT_HEIGHT, 'rx':3, 'ry': 3,
^

4 error(s), 68 warning(s)
FAILED to run command for target: dist
Warning: Task "closureCompiler:dist" failed. Used --force, continuing.

== 에러 로그

C:\entry_dev\src_online\entryjs>grunt
Running "closureCompiler:targetName" (closureCompiler) task
Executing: java -jar "node_modules/closurecompiler/compiler/compiler.jar" --js src/entry.js --js src/blocks/block_albert.js --js src/blocks/block_arduino.js --js src/blocks/block_bitbrick.js --js src/blocks/block_brush.js --js src/blocks/block_calc.js --js src/blocks/block_cobl.js --js src/blocks/block_codestar.js --js src/blocks/block_ev3.js --js src/blocks/block_flow.js --js src/blocks/block_function.js --js src/blocks/block_hamster.js --js src/blocks/block_judgement.js --js src/blocks/block_looks.js --js src/blocks/block_moving.js --js src/blocks/block_neobot.js --js src/blocks/block_roborobo.js --js src/blocks/block_robotis.js --js src/blocks/block_robotori.js --js src/blocks/block_scene.js --js src/blocks/block_sound.js --js src/blocks/block_start.js --js src/blocks/block_text.js --js src/blocks/block_variable.js --js src/blocks/block_xbot.js --js src/class/collection.js --js src/class/event.js --js src/class/model.js --js src/class/observer.js --js src/command/command.js --js src/command/commander.js --js src/command/commands/block.js --js src/command/commands/object.js --js src/command/commands/painter.js --js src/container.js --js src/core/db.js --js src/core/dom.js --js src/core/engine.js --js src/core/hw.js --js src/core/script.js --js src/core/svg.js --js src/dialog.js --js src/doneProject.js --js src/engine.js --js src/entity.js --js src/function.js --js src/helper.js --js src/hw.js --js src/hw_monitor.js --js src/init.js --js src/log/activity.js --js src/log/activityReporter.js --js src/log/state.js --js src/log/state_manager.js --js src/model/block_model.js --js src/model/block_render_model.js --js src/model/box_model.js --js src/model/drag_instance.js --js src/model/thread_model.js --js src/object.js --js src/painter.js --js src/painter2.js --js src/parser/block.js --js src/parser/js.js --js src/parser/parser.js --js src/pdf.js --js src/playground.js --js src/popup.js --js src/popup_helper.js --js src/project.js --js src/property_panel.js --js src/reporter.js --js src/scene.js --js src/script.js --js src/stage.js --js src/stamp_entity.js --js src/textcoding/ast/jsAstGenerator.js --js src/textcoding/ast/pyAstGenerator.js --js src/textcoding/data_processing/map.js --js src/textcoding/data_processing/queue.js --js src/textcoding/hint/python.js --js src/textcoding/parser.js --js src/textcoding/parser/core/block/blockToJs.js --js src/textcoding/parser/core/block/blockToPy.js --js src/textcoding/parser/core/text/jsToBlock.js --js src/textcoding/parser/core/text/pyToBlock.js --js src/textcoding/static/keyboardCode.js --js src/textcoding/temp/pyBlockAssembler.js --js src/textcoding/temp/pyToBlockTemp.js --js src/textcoding/util/console.js --js src/textcoding/util/textCodingUtil.js --js src/toast.js --js src/tvCast.js --js src/util/block_driver.js --js src/util/contextmenu.js --js src/util/loader.js --js src/util/popup.js --js src/util/static.js --js src/util/toast.js --js src/util/utils.js --js src/variable.js --js src/variable_container.js --js src/view/canvas/dialog.js --js src/view/canvas/variable_view.js --js src/workspace/basic_block.js --js src/workspace/block.js --js src/workspace/block_menu.js --js src/workspace/block_menu_scroll.js --js src/workspace/block_view.js --js src/workspace/board.js --js src/workspace/code.js --js src/workspace/code_view.js --js src/workspace/connection_ripple.js --js src/workspace/executors.js --js src/workspace/extension/extension.js --js src/workspace/extension/guide.js --js src/workspace/extension/side_tag.js --js src/workspace/field/angle.js --js src/workspace/field/block.js --js src/workspace/field/color.js --js src/workspace/field/dropdown.js --js src/workspace/field/dropdownDynamic.js --js src/workspace/field/field.js --js src/workspace/field/image.js --js src/workspace/field/indicator.js --js src/workspace/field/keyboardInput.js --js src/workspace/field/lineBreak.js --js src/workspace/field/output.js --js src/workspace/field/statement.js --js src/workspace/field/text.js --js src/workspace/field/textInput.js --js src/workspace/globalSvg.js --js src/workspace/mutator.js --js src/workspace/renderView.js --js src/workspace/scroll.js --js src/workspace/skeleton.js --js src/workspace/skinner.js --js src/workspace/thread.js --js src/workspace/thread_view.js --js src/workspace/trashcan.js --js src/workspace/vim.js --js src/workspace/workspace.js --js src/xml.js --js src/youtube.js --js_output_file=dist/entry.js --create_source_map entry.js.map --compilation_level SIMPLE_OPTIMIZATIONS --language_in ECMASCRIPT5 --language_out ECMASCRIPT5 --formatting pretty_print

Error: Command failed: java -jar "node_modules/closurecompiler/compiler/compiler.jar" --js src/entry.js --js src/blocks/block_albert.js --js src/blocks/block_arduino.js --js src/blocks/block_bitbrick.js --js src/blocks/block_brush.js --js src/blocks/block_calc.js --js src/blocks/block_cobl.js --js src/blocks/block_codestar.js --js src/blocks/block_ev3.js --js src/blocks/block_flow.js --js src/blocks/block_function.js --js src/blocks/block_hamster.js --js src/blocks/block_judgement.js --js src/blocks/block_looks.js --js src/blocks/block_moving.js --js src/blocks/block_neobot.js --js src/blocks/block_roborobo.js --js src/blocks/block_robotis.js --js src/blocks/block_robotori.js --js src/blocks/block_scene.js --js src/blocks/block_sound.js --js src/blocks/block_start.js --js src/blocks/block_text.js --js src/blocks/block_variable.js --js src/blocks/block_xbot.js --js src/class/collection.js --js src/class/event.js --js src/class/model.js --js src/class/observer.js --js src/command/command.js --js src/command/commander.js --js src/command/commands/block.js --js src/command/commands/object.js --js src/command/commands/painter.js --js src/container.js --js src/core/db.js --js src/core/dom.js --js src/core/engine.js --js src/core/hw.js --js src/core/script.js --js src/core/svg.js --js src/dialog.js --js src/doneProject.js --js src/engine.js --js src/entity.js --js src/function.js --js src/helper.js --js src/hw.js --js src/hw_monitor.js --js src/init.js --js src/log/activity.js --js src/log/activityReporter.js --js src/log/state.js --js src/log/state_manager.js --js src/model/block_model.js --js src/model/block_render_model.js --js src/model/box_model.js --js src/model/drag_instance.js --js src/model/thread_model.js --js src/object.js --js src/painter.js --js src/painter2.js --js src/parser/block.js --js src/parser/js.js --js src/parser/parser.js --js src/pdf.js --js src/playground.js --js src/popup.js --js src/popup_helper.js --js src/project.js --js src/property_panel.js --js src/reporter.js --js src/scene.js --js src/script.js --js src/stage.js --js src/stamp_entity.js --js src/textcoding/ast/jsAstGenerator.js --js src/textcoding/ast/pyAstGenerator.js --js src/textcoding/data_processing/map.js --js src/textcoding/data_processing/queue.js --js src/textcoding/hint/python.js --js src/textcoding/parser.js --js src/textcoding/parser/core/block/blockToJs.js --js src/textcoding/parser/core/block/blockToPy.js --js src/textcoding/parser/core/text/jsToBlock.js --js src/textcoding/parser/core/text/pyToBlock.js --js src/textcoding/static/keyboardCode.js --js src/textcoding/temp/pyBlockAssembler.js --js src/textcoding/temp/pyToBlockTemp.js --js src/textcoding/util/console.js --js src/textcoding/util/textCodingUtil.js --js src/toast.js --js src/tvCast.js --js src/util/block_driver.js --js src/util/contextmenu.js --js src/util/loader.js --js src/util/popup.js --js src/util/static.js --js src/util/toast.js --js src/util/utils.js --js src/variable.js --js src/variable_container.js --js src/view/canvas/dialog.js --js src/view/canvas/variable_view.js --js src/workspace/basic_block.js --js src/workspace/block.js --js src/workspace/block_menu.js --js src/workspace/block_menu_scroll.js --js src/workspace/block_view.js --js src/workspace/board.js --js src/workspace/code.js --js src/workspace/code_view.js --js src/workspace/connection_ripple.js --js src/workspace/executors.js --js src/workspace/extension/extension.js --js src/workspace/extension/guide.js --js src/workspace/extension/side_tag.js --js src/workspace/field/angle.js --js src/workspace/field/block.js --js src/workspace/field/color.js --js src/workspace/field/dropdown.js --js src/workspace/field/dropdownDynamic.js --js src/workspace/field/field.js --js src/workspace/field/image.js --js src/workspace/field/indicator.js --js src/workspace/field/keyboardInput.js --js src/workspace/field/lineBreak.js --js src/workspace/field/output.js --js src/workspace/field/statement.js --js src/workspace/field/text.js --js src/workspace/field/textInput.js --js src/workspace/globalSvg.js --js src/workspace/mutator.js --js src/workspace/renderView.js --js src/workspace/scroll.js --js src/workspace/skeleton.js --js src/workspace/skinner.js --js src/workspace/thread.js --js src/workspace/thread_view.js --js src/workspace/trashcan.js --js src/workspace/vim.js --js src/workspace/workspace.js --js src/xml.js --js src/youtube.js --js_output_file=dist/entry.js --create_source_map entry.js.map --compilation_level SIMPLE_OPTIMIZATIONS --language_in ECMASCRIPT5 --language_out ECMASCRIPT5 --formatting pretty_print
src/engine.js:403: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
createjs.Ticker.setFPS(Entry.FPS);
^

src/entity.js:440: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if (!colour)
^

src/entity.js:462: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if (!colour)
^

src/entity.js:687: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if (text === undefined)
^

src/entity.js:778: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if(visible === undefined)
^

src/hw.js:396: WARNING - Suspicious code. The result of the 'getprop' operator is not being used.
this._w.location.href;
^

src/init.js:103: WARNING - unreachable code
for (var i = 0; i < filenames.length; i++) {
^

src/init.js:347: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if (!this.FPS)
^

src/log/state.js:24: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if (arguments.length > 3)
^

src/object.js:1218: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if(!rotateMethod)
^

src/playground.js:794: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if (!object) {
^

src/popup_helper.js:13: WARNING - Suspicious code. The result of the 'getprop' operator is not being used.
this.nowContent;
^

src/stamp_entity.js:27: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
} else if (this.type == 'textBox') {}
^

src/textcoding/ast/pyAstGenerator.js:29: WARNING - unreachable code
console.log("AST Error", error.toString());
^

src/textcoding/parser/core/block/blockToPy.js:314: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
if(this._parseMode == Entry.Parser.PARSE_VARIABLE) { //In PARSE_VARIABLE Mode
^

src/textcoding/parser/core/block/blockToPy.js:315: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
if(this._currentBlockSkeleton == Entry.Parser.BLOCK_SKELETON_BASIC_LOOP ||
^

src/textcoding/parser/core/block/blockToPy.js:317: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
if(this._currentBlockParamsKeyMap) { //If Block has Parameters
^

src/textcoding/parser/core/block/blockToPy.js:318: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
if(j == 0) { //The beginning of Block Statement
^

src/textcoding/parser/core/text/jsToBlock.js:523: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/jsToBlock.js:574: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/jsToBlock.js:677: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/jsToBlock.js:717: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/pyToBlock.js:104: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = component.arguments;
^

src/textcoding/parser/core/text/pyToBlock.js:513: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = initData.arguments;
^

src/textcoding/parser/core/text/pyToBlock.js:541: WARNING - Comparison against NaN is always false. Did you mean isNaN()?
if(value && value != NaN) {
^

src/textcoding/parser/core/text/pyToBlock.js:860: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = propertyData.arguments;
^

src/textcoding/parser/core/text/pyToBlock.js:947: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
} else if(test.value === false) {
^

src/textcoding/parser/core/text/pyToBlock.js:958: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/pyToBlock.js:1184: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/pyToBlock.js:1432: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/pyToBlock.js:1480: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/pyToBlock.js:1576: WARNING - Duplicate case in a switch statement.
case "|": break;
^

src/textcoding/parser/core/text/pyToBlock.js:1599: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/pyToBlock.js:1663: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/pyToBlock.js:1793: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = rightData.arguments;
^

src/textcoding/parser/core/text/pyToBlock.js:1937: WARNING - Comparison against NaN is always false. Did you mean isNaN()?
if(value && value != NaN) {
^

src/textcoding/parser/core/text/pyToBlock.js:1968: WARNING - Comparison against NaN is always false. Did you mean isNaN()?
if(value && value != NaN) {
^

src/textcoding/parser/core/text/pyToBlock.js:2382: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = component.arguments;
^

src/textcoding/temp/pyBlockAssembler.js:183: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = component.arguments;
^

src/textcoding/temp/pyBlockAssembler.js:462: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
} else if(test.value == false) {
^

src/textcoding/temp/pyBlockAssembler.js:486: WARNING - unreachable code
else {
^

src/textcoding/temp/pyBlockAssembler.js:606: WARNING - unreachable code
else {
^

src/textcoding/temp/pyBlockAssembler.js:866: WARNING - Duplicate case in a switch statement.
case "|": break;
^

src/textcoding/temp/pyToBlockTemp.js:708: WARNING - Duplicate case in a switch statement.
case "|":
^

src/textcoding/temp/pyToBlockTemp.js:785: WARNING - unreachable code
else{
^

src/textcoding/util/textCodingUtil.js:15: WARNING - Suspicious code. The result of the 'getprop' operator is not being used.
p._funcParamQ;
^

src/util/utils.js:719: WARNING - If this if/for/while really shouldn't have a body, use {}
for(var i=-1,l=nl.length;++i!==l;arr[i]=nl[i]);
^

src/variable.js:659: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
width = width < 100 ? 100 : width;
^

src/variable.js:685: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
height = height < 100 ? 100 : height;
^

src/workspace/block_view.js:350: WARNING - unreachable code
if (false && Entry.ANIMATION_DURATION !== 0) {
^

src/blocks/block_neobot.js:26: ERROR - object literals cannot contain duplicate keys in ES5 strict mode
name: 'neobot',
^

src/workspace/field/angle.js:68: ERROR - object literals cannot contain duplicate keys in ES5 strict mode
height: CONTENT_HEIGHT, 'rx':3, 'ry': 3,
^

src/workspace/field/angle.js:68: ERROR - object literals cannot contain duplicate keys in ES5 strict mode
height: CONTENT_HEIGHT, 'rx':3, 'ry': 3,
^

3 error(s), 50 warning(s)
FAILED to run command for target: targetName
Warning: Task "closureCompiler:targetName" failed. Used --force, continuing.

Running "closureCompiler:dist" (closureCompiler) task
Executing: java -jar "node_modules/closurecompiler/compiler/compiler.jar" --js src/entry.js --js src/blocks/block_albert.js --js src/blocks/block_arduino.js --js src/blocks/block_bitbrick.js --js src/blocks/block_brush.js --js src/blocks/block_calc.js --js src/blocks/block_cobl.js --js src/blocks/block_codestar.js --js src/blocks/block_ev3.js --js src/blocks/block_flow.js --js src/blocks/block_function.js --js src/blocks/block_hamster.js --js src/blocks/block_judgement.js --js src/blocks/block_looks.js --js src/blocks/block_moving.js --js src/blocks/block_neobot.js --js src/blocks/block_roborobo.js --js src/blocks/block_robotis.js --js src/blocks/block_robotori.js --js src/blocks/block_scene.js --js src/blocks/block_sound.js --js src/blocks/block_start.js --js src/blocks/block_text.js --js src/blocks/block_variable.js --js src/blocks/block_xbot.js --js src/class/collection.js --js src/class/event.js --js src/class/model.js --js src/class/observer.js --js src/command/command.js --js src/command/commander.js --js src/command/commands/block.js --js src/command/commands/object.js --js src/command/commands/painter.js --js src/container.js --js src/core/db.js --js src/core/dom.js --js src/core/engine.js --js src/core/hw.js --js src/core/script.js --js src/core/svg.js --js src/dialog.js --js src/doneProject.js --js src/engine.js --js src/entity.js --js src/function.js --js src/helper.js --js src/hw.js --js src/hw_monitor.js --js src/init.js --js src/log/activity.js --js src/log/activityReporter.js --js src/log/state.js --js src/log/state_manager.js --js src/model/block_model.js --js src/model/block_render_model.js --js src/model/box_model.js --js src/model/drag_instance.js --js src/model/thread_model.js --js src/object.js --js src/painter.js --js src/painter2.js --js src/parser/block.js --js src/parser/js.js --js src/parser/parser.js --js src/pdf.js --js src/playground.js --js src/popup.js --js src/popup_helper.js --js src/project.js --js src/property_panel.js --js src/reporter.js --js src/scene.js --js src/script.js --js src/stage.js --js src/stamp_entity.js --js src/textcoding/ast/jsAstGenerator.js --js src/textcoding/ast/pyAstGenerator.js --js src/textcoding/data_processing/map.js --js src/textcoding/data_processing/queue.js --js src/textcoding/hint/python.js --js src/textcoding/parser.js --js src/textcoding/parser/core/block/blockToJs.js --js src/textcoding/parser/core/block/blockToPy.js --js src/textcoding/parser/core/text/jsToBlock.js --js src/textcoding/parser/core/text/pyToBlock.js --js src/textcoding/static/keyboardCode.js --js src/textcoding/temp/pyBlockAssembler.js --js src/textcoding/temp/pyToBlockTemp.js --js src/textcoding/util/console.js --js src/textcoding/util/textCodingUtil.js --js src/toast.js --js src/tvCast.js --js src/util/block_driver.js --js src/util/contextmenu.js --js src/util/loader.js --js src/util/popup.js --js src/util/static.js --js src/util/toast.js --js src/util/utils.js --js src/variable.js --js src/variable_container.js --js src/view/canvas/dialog.js --js src/view/canvas/variable_view.js --js src/workspace/basic_block.js --js src/workspace/block.js --js src/workspace/block_entry.js --js src/workspace/block_menu.js --js src/workspace/block_menu_scroll.js --js src/workspace/block_view.js --js src/workspace/board.js --js src/workspace/code.js --js src/workspace/code_view.js --js src/workspace/connection_ripple.js --js src/workspace/executors.js --js src/workspace/extension/extension.js --js src/workspace/extension/guide.js --js src/workspace/extension/side_tag.js --js src/workspace/field/angle.js --js src/workspace/field/block.js --js src/workspace/field/color.js --js src/workspace/field/dropdown.js --js src/workspace/field/dropdownDynamic.js --js src/workspace/field/field.js --js src/workspace/field/image.js --js src/workspace/field/indicator.js --js src/workspace/field/keyboardInput.js --js src/workspace/field/lineBreak.js --js src/workspace/field/output.js --js src/workspace/field/statement.js --js src/workspace/field/text.js --js src/workspace/field/textInput.js --js src/workspace/globalSvg.js --js src/workspace/mutator.js --js src/workspace/renderView.js --js src/workspace/scroll.js --js src/workspace/skeleton.js --js src/workspace/skinner.js --js src/workspace/thread.js --js src/workspace/thread_view.js --js src/workspace/trashcan.js --js src/workspace/vim.js --js src/workspace/workspace.js --js src/xml.js --js src/youtube.js --js_output_file=dist/entry.min.js --compilation_level SIMPLE_OPTIMIZATIONS --language_in ECMASCRIPT5 --language_out ECMASCRIPT5

Error: Command failed: java -jar "node_modules/closurecompiler/compiler/compiler.jar" --js src/entry.js --js src/blocks/block_albert.js --js src/blocks/block_arduino.js --js src/blocks/block_bitbrick.js --js src/blocks/block_brush.js --js src/blocks/block_calc.js --js src/blocks/block_cobl.js --js src/blocks/block_codestar.js --js src/blocks/block_ev3.js --js src/blocks/block_flow.js --js src/blocks/block_function.js --js src/blocks/block_hamster.js --js src/blocks/block_judgement.js --js src/blocks/block_looks.js --js src/blocks/block_moving.js --js src/blocks/block_neobot.js --js src/blocks/block_roborobo.js --js src/blocks/block_robotis.js --js src/blocks/block_robotori.js --js src/blocks/block_scene.js --js src/blocks/block_sound.js --js src/blocks/block_start.js --js src/blocks/block_text.js --js src/blocks/block_variable.js --js src/blocks/block_xbot.js --js src/class/collection.js --js src/class/event.js --js src/class/model.js --js src/class/observer.js --js src/command/command.js --js src/command/commander.js --js src/command/commands/block.js --js src/command/commands/object.js --js src/command/commands/painter.js --js src/container.js --js src/core/db.js --js src/core/dom.js --js src/core/engine.js --js src/core/hw.js --js src/core/script.js --js src/core/svg.js --js src/dialog.js --js src/doneProject.js --js src/engine.js --js src/entity.js --js src/function.js --js src/helper.js --js src/hw.js --js src/hw_monitor.js --js src/init.js --js src/log/activity.js --js src/log/activityReporter.js --js src/log/state.js --js src/log/state_manager.js --js src/model/block_model.js --js src/model/block_render_model.js --js src/model/box_model.js --js src/model/drag_instance.js --js src/model/thread_model.js --js src/object.js --js src/painter.js --js src/painter2.js --js src/parser/block.js --js src/parser/js.js --js src/parser/parser.js --js src/pdf.js --js src/playground.js --js src/popup.js --js src/popup_helper.js --js src/project.js --js src/property_panel.js --js src/reporter.js --js src/scene.js --js src/script.js --js src/stage.js --js src/stamp_entity.js --js src/textcoding/ast/jsAstGenerator.js --js src/textcoding/ast/pyAstGenerator.js --js src/textcoding/data_processing/map.js --js src/textcoding/data_processing/queue.js --js src/textcoding/hint/python.js --js src/textcoding/parser.js --js src/textcoding/parser/core/block/blockToJs.js --js src/textcoding/parser/core/block/blockToPy.js --js src/textcoding/parser/core/text/jsToBlock.js --js src/textcoding/parser/core/text/pyToBlock.js --js src/textcoding/static/keyboardCode.js --js src/textcoding/temp/pyBlockAssembler.js --js src/textcoding/temp/pyToBlockTemp.js --js src/textcoding/util/console.js --js src/textcoding/util/textCodingUtil.js --js src/toast.js --js src/tvCast.js --js src/util/block_driver.js --js src/util/contextmenu.js --js src/util/loader.js --js src/util/popup.js --js src/util/static.js --js src/util/toast.js --js src/util/utils.js --js src/variable.js --js src/variable_container.js --js src/view/canvas/dialog.js --js src/view/canvas/variable_view.js --js src/workspace/basic_block.js --js src/workspace/block.js --js src/workspace/block_entry.js --js src/workspace/block_menu.js --js src/workspace/block_menu_scroll.js --js src/workspace/block_view.js --js src/workspace/board.js --js src/workspace/code.js --js src/workspace/code_view.js --js src/workspace/connection_ripple.js --js src/workspace/executors.js --js src/workspace/extension/extension.js --js src/workspace/extension/guide.js --js src/workspace/extension/side_tag.js --js src/workspace/field/angle.js --js src/workspace/field/block.js --js src/workspace/field/color.js --js src/workspace/field/dropdown.js --js src/workspace/field/dropdownDynamic.js --js src/workspace/field/field.js --js src/workspace/field/image.js --js src/workspace/field/indicator.js --js src/workspace/field/keyboardInput.js --js src/workspace/field/lineBreak.js --js src/workspace/field/output.js --js src/workspace/field/statement.js --js src/workspace/field/text.js --js src/workspace/field/textInput.js --js src/workspace/globalSvg.js --js src/workspace/mutator.js --js src/workspace/renderView.js --js src/workspace/scroll.js --js src/workspace/skeleton.js --js src/workspace/skinner.js --js src/workspace/thread.js --js src/workspace/thread_view.js --js src/workspace/trashcan.js --js src/workspace/vim.js --js src/workspace/workspace.js --js src/xml.js --js src/youtube.js --js_output_file=dist/entry.min.js --compilation_level SIMPLE_OPTIMIZATIONS --language_in ECMASCRIPT5 --language_out ECMASCRIPT5
src/engine.js:403: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
createjs.Ticker.setFPS(Entry.FPS);
^

src/entity.js:440: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if (!colour)
^

src/entity.js:462: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if (!colour)
^

src/entity.js:687: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if (text === undefined)
^

src/entity.js:778: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if(visible === undefined)
^

src/hw.js:396: WARNING - Suspicious code. The result of the 'getprop' operator is not being used.
this._w.location.href;
^

src/init.js:103: WARNING - unreachable code
for (var i = 0; i < filenames.length; i++) {
^

src/init.js:347: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if (!this.FPS)
^

src/log/state.js:24: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if (arguments.length > 3)
^

src/object.js:1218: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if(!rotateMethod)
^

src/playground.js:794: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
if (!object) {
^

src/popup_helper.js:13: WARNING - Suspicious code. The result of the 'getprop' operator is not being used.
this.nowContent;
^

src/stamp_entity.js:27: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
} else if (this.type == 'textBox') {}
^

src/textcoding/ast/pyAstGenerator.js:29: WARNING - unreachable code
console.log("AST Error", error.toString());
^

src/textcoding/parser/core/block/blockToPy.js:314: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
if(this._parseMode == Entry.Parser.PARSE_VARIABLE) { //In PARSE_VARIABLE Mode
^

src/textcoding/parser/core/block/blockToPy.js:315: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
if(this._currentBlockSkeleton == Entry.Parser.BLOCK_SKELETON_BASIC_LOOP ||
^

src/textcoding/parser/core/block/blockToPy.js:317: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
if(this._currentBlockParamsKeyMap) { //If Block has Parameters
^

src/textcoding/parser/core/block/blockToPy.js:318: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
if(j == 0) { //The beginning of Block Statement
^

src/textcoding/parser/core/text/jsToBlock.js:523: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/jsToBlock.js:574: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/jsToBlock.js:677: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/jsToBlock.js:717: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/pyToBlock.js:104: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = component.arguments;
^

src/textcoding/parser/core/text/pyToBlock.js:513: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = initData.arguments;
^

src/textcoding/parser/core/text/pyToBlock.js:541: WARNING - Comparison against NaN is always false. Did you mean isNaN()?
if(value && value != NaN) {
^

src/textcoding/parser/core/text/pyToBlock.js:860: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = propertyData.arguments;
^

src/textcoding/parser/core/text/pyToBlock.js:947: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
} else if(test.value === false) {
^

src/textcoding/parser/core/text/pyToBlock.js:958: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/pyToBlock.js:1184: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/pyToBlock.js:1432: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/pyToBlock.js:1480: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/pyToBlock.js:1576: WARNING - Duplicate case in a switch statement.
case "|": break;
^

src/textcoding/parser/core/text/pyToBlock.js:1599: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/pyToBlock.js:1663: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = [];
^

src/textcoding/parser/core/text/pyToBlock.js:1793: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = rightData.arguments;
^

src/textcoding/parser/core/text/pyToBlock.js:1937: WARNING - Comparison against NaN is always false. Did you mean isNaN()?
if(value && value != NaN) {
^

src/textcoding/parser/core/text/pyToBlock.js:1968: WARNING - Comparison against NaN is always false. Did you mean isNaN()?
if(value && value != NaN) {
^

src/textcoding/parser/core/text/pyToBlock.js:2382: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = component.arguments;
^

src/textcoding/temp/pyBlockAssembler.js:183: WARNING - "arguments" cannot be redeclared in ES5 strict mode
var arguments = component.arguments;
^

src/textcoding/temp/pyBlockAssembler.js:462: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
} else if(test.value == false) {
^

src/textcoding/temp/pyBlockAssembler.js:486: WARNING - unreachable code
else {
^

src/textcoding/temp/pyBlockAssembler.js:606: WARNING - unreachable code
else {
^

src/textcoding/temp/pyBlockAssembler.js:866: WARNING - Duplicate case in a switch statement.
case "|": break;
^

src/textcoding/temp/pyToBlockTemp.js:708: WARNING - Duplicate case in a switch statement.
case "|":
^

src/textcoding/temp/pyToBlockTemp.js:785: WARNING - unreachable code
else{
^

src/textcoding/util/textCodingUtil.js:15: WARNING - Suspicious code. The result of the 'getprop' operator is not being used.
p._funcParamQ;
^

src/util/utils.js:719: WARNING - If this if/for/while really shouldn't have a body, use {}
for(var i=-1,l=nl.length;++i!==l;arr[i]=nl[i]);
^

src/variable.js:659: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
width = width < 100 ? 100 : width;
^

src/variable.js:685: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
height = height < 100 ? 100 : height;
^

src/workspace/block_entry.js:3070: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3081: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3128: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3141: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3188: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3201: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3251: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3262: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3279: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3291: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3351: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3380: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3428: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3447: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3497: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3508: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3550: WARNING - unreachable code
return;
^

src/workspace/block_entry.js:3561: WARNING - unreachable code
return;
^

src/workspace/block_view.js:350: WARNING - unreachable code
if (false && Entry.ANIMATION_DURATION !== 0) {
^

src/blocks/block_neobot.js:26: ERROR - object literals cannot contain duplicate keys in ES5 strict mode
name: 'neobot',
^

src/workspace/block_entry.js:21995: ERROR - object literals cannot contain duplicate keys in ES5 strict mode
"isNotFor": ["dplay"],
^

src/workspace/field/angle.js:68: ERROR - object literals cannot contain duplicate keys in ES5 strict mode
height: CONTENT_HEIGHT, 'rx':3, 'ry': 3,
^

src/workspace/field/angle.js:68: ERROR - object literals cannot contain duplicate keys in ES5 strict mode
height: CONTENT_HEIGHT, 'rx':3, 'ry': 3,
^

4 error(s), 68 warning(s)
FAILED to run command for target: dist
Warning: Task "closureCompiler:dist" failed. Used --force, continuing.

Running "karma:unit" (karma) task
Fatal error: The header content contains invalid characters

npm 오류

분명 8080포트를 사용하는 프로그램이 없는데 실행이 안됩니다. 80 포트도 혹시나 영향이 갈까봐 강제종료했는데 안됩니다. 관리자 권한으로 cmd를 실행도 하였습니다.
오류내용
clean-webpack-plugin: D:\entry\entryjs-develop (1)\entryjs-develop\dist has been removed.
events.js:177
throw er; // Unhandled 'error' event
^

Error: listen EACCES: permission denied 127.0.0.1:8080
at Server.setupListenHandle [as _listen2] (net.js:1211:19)
at listenInCluster (net.js:1276:12)
at doListen (net.js:1415:7)
at processTicksAndRejections (internal/process/task_queues.js:74:11)
Emitted 'error' event at:
at emitErrorNT (net.js:1255:8)
at processTicksAndRejections (internal/process/task_queues.js:74:11) {
code: 'EACCES',
errno: 'EACCES',
syscall: 'listen',
address: '127.0.0.1',
port: 8080
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] serve: cross-env NODE_ENV=serve webpack-dev-server --open --hot --inline --host 127.0.0.1
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] serve script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\for\AppData\Roaming\npm-cache_logs\2020-04-09T00_42_35_225Z-debug.log

[문의] 하드웨어 블록에 대응하는 파이썬 함수를 만들고자 하는데 관련한 가이드 문서가 있는지요?

안녕하세요? 하드웨어 블록에 대응하는 파이썬 함수를 만들고자 하는데 관련한 가이드 문서를 찾을 수가 없어서요.

블록명세(https://docs.playentry.org/guide/entryjs/2016-05-22-add_new_blocks.html)에서 언급되어야 할 것으로 보이는데 파이썬 함수를 추가하기 위한 syntax->py 부분을 어떻게 작성하는지 안내해 주시면 감사합니다.

또한, 파이썬 코딩시 추가된 함수들이 이처럼 coding assistance 에서 나오게 하려면 어떤 등록절차가 필요한 것인지요?

image

감사합니다.

entryjs - 로컬 테스트 중 버튼이 눌리지 않는 현상 문의

기능이 작동하지 않는 버튼이 있습니다.

  • 오브젝트 추가하기
  • 소리 추가
  • 장면 삭제 버튼 ( x 표 모양 버튼 )

우분투16.04 lts 환경에서 brackets 로 테스트 하였습니다.
크롬 콘솔에 다음과 같은 에러가 뜨네요.

Failed to load resource: net::ERR_CONNECTION_REFUSED
hardware.playentry.org:23518/socket.io/?client=true&roomId=e01b9061bf&EIO=3&transport=polling&t=MAQOKjj Failed to load resource: net::ERR_CONNECTION_REFUSED
hardware.play-entry.org:23518/socket.io/?client=true&roomId=e01b9061bf&EIO=3&transport=polling&t=MAQOKjj.0 Failed to load resource: net::ERR_CONNECTION_REFUSED
entry.min.js:1 WebSocket connection to 'wss://hardware.play-entry.org:23518/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED
r.checkOldClient @ entry.min.js:1
handopen.cur Failed to load resource: the server responded with a status of 404 (Not Found)
:23518/socket.io/?client=true&roomId=e01b9061bf&EIO=3&transport=polling&t=MAQOKxA Failed to load resource: net::ERR_CONNECTION_REFUSED
hardware.play-entry.org:23518/socket.io/?client=true&roomId=e01b9061bf&EIO=3&transport=polling&t=MAQOK-W Failed to load resource: net::ERR_CONNECTION_REFUSED
hardware.playentry.org:23518/socket.io/?client=true&roomId=e01b9061bf&EIO=3&transport=polling&t=MAQOL0Q Failed to load resource: net::ERR_CONNECTION_REFUSED
:23518/socket.io/?client=true&roomId=e01b9061bf&EIO=3&transport=polling&t=MAQOLAu Failed to load resource: net::ERR_CONNECTION_REFUSED
hardware.play-entry.org:23518/socket.io/?client=true&roomId=e01b9061bf&EIO=3&transport=polling&t=MAQOLEC Failed to load resource: net::ERR_CONNECTION_REFUSED
hardware.playentry.org:23518/socket.io/?client=true&roomId=e01b9061bf&EIO=3&transport=polling&t=MAQOLGF Failed to load resource: net::ERR_CONNECTION_REFUSED
entry.min.js:1 Uncaught ReferenceError: LC is not defined
    at Entry.Painter.initialize (entry.min.js:1)
    at Entry.Painter.r.show (entry.min.js:1)
    at o.Playground.r.changeViewMode (entry.min.js:1)
    at Entry.Commander.do (entry.min.js:1)
    at Entry.Commander.do (entry.min.js:1)
    at HTMLLIElement.<anonymous> (entry.min.js:1)
    at HTMLLIElement.<anonymous> (entry.min.js:1)
    at HTMLLIElement.dispatch (js.js:3)
    at HTMLLIElement.q.handle (js.js:3)
initialize @ entry.min.js:1
r.show @ entry.min.js:1
r.changeViewMode @ entry.min.js:1
do @ entry.min.js:1
do @ entry.min.js:1
(anonymous) @ entry.min.js:1
(anonymous) @ entry.min.js:1
dispatch @ js.js:3
q.handle @ js.js:3
5entry.min.js:1 Uncaught ReferenceError: entrylms is not defined
    at HTMLButtonElement.<anonymous> (entry.min.js:1)
    at HTMLButtonElement.<anonymous> (entry.min.js:1)
    at HTMLButtonElement.dispatch (js.js:3)
    at HTMLButtonElement.q.handle (js.js:3)

해결 방법을 알고 싶습니다.

상단 메뉴 관련해서

image

안녕하세요.
엔트리 메인 홈페이지에서는 상단 메뉴들이 보이는데 이 리포지토리에서 제공하는 example.ejs에는 저 상단 메뉴가 포함되어있지 않습니다.
css class명을 봤을 때 styled-component로 개발이 된 것 같은데 상단 메뉴와 관련된 소스코드는 제공되지 않는 건가요?

블록 도움말이 어떻게 구성되어 있나요?

엔트리 작품 만들기에는 블록을 클릭하면 블록에 대한 설명이 나옵니다라는 도움말이 존재하는데,
엔트리JS 파일을 포크해서 아무리 찾아보아도
도움말 관련 파일을 찾을 수 없었습니다.

도움말 관련 파일의 위치와, 도움말 파일은 어떻게 구성되어 있는지 간략한 설명 부탁드립니다 :)

Sprite Modal 부분은 공개가 안된것인가요

어떠한 다른 버전을 빌드해봐도 Sprite나 Pictuer부분은 보이질 않네요 ㅠ
엔트리 사이트 html에는 Modal Class가 존재하는데, Git에 공개하신 여러개의 버전들을
빌드해봤지만 "Modal" 클래스가 없던데 혹시 내부사항에 따른 부분인가요..?
현재 entry-tool.js 도 정상적으로 불러왔는데, 오브젝트 추가를 누르면 따로 오류 뜨는건 없고 개발자 도구에 commandType 210 addObjectButtonClick 도 뜨는데, 창에 아무 변화가 없네요 .. !

프로보 커넥트 하드웨어 블록이 나타나지 않는 문제

이슈

  • 하드웨어를 연결해도 프로보 커넥트의 하드웨어 블록이 나타나지 않습니다.

원인

  • 로보링크의 웨어러블 블록코드가 Entry.hw.ProboRobot 객체를 재정의해서 사용하고 있습니다.

대처

  • 웨어러블이 사용하는 Entry.hw.ProboRobot객체를 웨어러블의 inNotFor에 맞게 수정하고 테스트합니다.

npm run serve를 하고 들어가니 오류가 뜹니다

로그에는
ERROR in ./src/entry.js
Module not found: Error: Can't resolve 'core-js/fn/object/values' in 'C:\Users\레비브륄\Desktop\entryjs-develop\entryjs-develop\src'
@ ./src/entry.js 24:0-35
이렇게 뜨면서 버튼이 눌려지지 않습니다.

eslint , Codacy/PR Quality Review 관련

Pull Requests 를 요청하면
eslint 와
Codacy/PR Quality Review 로 코드 검증 진행과정에서 나온 문제를 해결하지 못하여 문의합니다.

여러가지 문제는 해결하였으나
문자열 ' 작은 따옴표와 " 큰 따옴표의 표시방식에 문제가 발생합니다.

eslint 에서는 작은 따옴표로 하라고 하고 큰 따옴표는 에러로 표시합니다.
Codacy/PR Quality Review 에서는 큰 따옴표로 하라고 하고 작은따옴표로 표시한건 에러로
표시합니다.

어떻게 바꾸든 한쪽에서 에러로 표시하는데 어떻게 해력해야 할지 모르겠습니다.
검토 부탁드립니다.

grunt 실행 시 karma가 정상적으로 실행되지 않고 빌드가 종료된 것 같습니다.

karma가 정상적으로 실행되지 않고 빌드가 종료된 것 같습니다.
해결 방법이 있을까요?

grunt를 실행시키면 마지막으로 아래와 같은 오류를 표시하고 종료합니다.

Running "karma:unit" (karma) task
Fatal error: The header content contains invalid characters

빌드 환경은 다음과 같습니다.

javac 1.7.0_79
node.js v5.12.0
electron 1.3.8
grunt-cli v1.2.0
grunt v0.4.5
Karma version: 1.3.0

전체 실행 결과는 다음과 같습니다.

E:\Lee\prog\Entry\entryjs>grunt
Running "closureCompiler:targetName" (closureCompiler) task
Executing: java  -jar "node_modules/closurecompiler/compiler/compiler.jar"  --js src/entry.js --js src/blocks/block_albert.js --js src/blocks/block_arduino.js --js src/blocks/block_bitbrick.js --js src/blocks/block_brush.js --js src/blocks/block_byrobot.js --js src/blocks/block_calc.js --js src/blocks/block_cobl.js --js src/blocks/block_codestar.js --js src/blocks/block_ev3.js --js src/blocks/block_flow.js --js src/blocks/block_function.js --js src/blocks/block_hamster.js --js src/blocks/block_judgement.js --js src/blocks/block_looks.js --js src/blocks/block_moving.js --js src/blocks/block_neobot.js --js src/blocks/block_roborobo.js --js src/blocks/block_robotis.js --js src/blocks/block_scene.js --js src/blocks/block_sound.js --js src/blocks/block_start.js --js src/blocks/block_text.js --js src/blocks/block_variable.js --js src/blocks/block_xbot.js --js src/class/collection.js --js src/class/event.js --js src/class/model.js --js src/class/observer.js --js src/command/command.js --js src/command/commander.js --js src/command/commands/block.js --js src/command/commands/object.js --js src/command/commands/painter.js --js src/container.js --js src/core/db.js --js src/core/dom.js --js src/core/engine.js --js src/core/hw.js --js src/core/script.js --js src/core/svg.js --js src/dialog.js --js src/doneProject.js --js src/engine.js --js src/entity.js --js src/function.js --js src/helper.js --js src/hw.js --js src/hw_monitor.js --js src/init.js --js src/log/activity.js --js src/log/activityReporter.js --js src/log/state.js --js src/log/state_manager.js --js src/model/block_model.js --js src/model/block_render_model.js --js src/model/box_model.js --js src/model/drag_instance.js --js src/model/thread_model.js --js src/object.js --js src/painter.js --js src/painter2.js --js src/parser/block.js --js src/parser/js.js --js src/parser/parser.js --js src/pdf.js --js src/playground.js --js src/popup.js --js src/popup_helper.js --js src/project.js --js src/property_panel.js --js src/reporter.js --js src/scene.js --js src/script.js --js src/stage.js --js src/stamp_entity.js --js src/textcoding/ast/jsAstGenerator.js --js src/textcoding/ast/pyAstGenerator.js --js src/textcoding/data_processing/map.js --js src/textcoding/data_processing/queue.js --js src/textcoding/hint/python.js --js src/textcoding/parser.js --js src/textcoding/parser/core/block/blockToJs.js --js src/textcoding/parser/core/block/blockToPy.js --js src/textcoding/parser/core/text/jsToBlock.js --js src/textcoding/parser/core/text/pyToBlock.js --js src/textcoding/static/keyboardCode.js --js src/textcoding/temp/pyBlockAssembler.js --js src/textcoding/temp/pyToBlockTemp.js --js src/textcoding/util/console.js --js src/textcoding/util/textCodingUtil.js --js src/toast.js --js src/tvCast.js --js src/util/block_driver.js --js src/util/contextmenu.js --js src/util/loader.js --js src/util/popup.js --js src/util/static.js --js src/util/toast.js --js src/util/utils.js --js src/variable.js --js src/variable_container.js --js src/view/canvas/dialog.js --js src/view/canvas/variable_view.js --js src/workspace/basic_block.js --js src/workspace/block.js --js src/workspace/block_menu.js --js src/workspace/block_menu_scroll.js --js src/workspace/block_view.js --js src/workspace/board.js --js src/workspace/code.js --js src/workspace/code_view.js --js src/workspace/connection_ripple.js --js src/workspace/executors.js --js src/workspace/field/angle.js --js src/workspace/field/block.js --js src/workspace/field/color.js --js src/workspace/field/dropdown.js --js src/workspace/field/dropdownDynamic.js --js src/workspace/field/field.js --js src/workspace/field/image.js --js src/workspace/field/indicator.js --js src/workspace/field/keyboardInput.js --js src/workspace/field/lineBreak.js --js src/workspace/field/output.js --js src/workspace/field/statement.js --js src/workspace/field/text.js --js src/workspace/field/textInput.js --js src/workspace/globalSvg.js --js src/workspace/mutator.js --js src/workspace/renderView.js --js src/workspace/scroll.js --js src/workspace/skeleton.js --js src/workspace/thread.js --js src/workspace/thread_view.js --js src/workspace/trashcan.js --js src/workspace/vim.js --js src/workspace/workspace.js --js src/xml.js --js src/youtube.js --js_output_file=dist/entry.js --create_source_map entry.js.map --compilation_level SIMPLE_OPTIMIZATIONS --language_in ECMASCRIPT5 --language_out ECMASCRIPT5 --formatting pretty_print
src/engine.js:401: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    createjs.Ticker.setFPS(Entry.FPS);
    ^

src/entity.js:440: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if (!colour)
    ^

src/entity.js:462: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if (!colour)
    ^

src/entity.js:687: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if (text === undefined)
    ^

src/entity.js:778: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if(visible === undefined)
    ^

src/init.js:103: WARNING - unreachable code
  for (var i = 0; i < filenames.length; i++) {
                                        ^

src/init.js:347: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if (!this.FPS)
    ^

src/log/state.js:24: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if (arguments.length > 3)
    ^

src/object.js:1218: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if(!rotateMethod)
    ^

src/playground.js:794: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if (!object) {
    ^

src/popup_helper.js:12: WARNING - Suspicious code. The result of the 'getprop' operator is not being used.
    this.nowContent;
    ^

src/stamp_entity.js:27: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
    } else if (this.type == 'textBox') {}
           ^

src/textcoding/ast/pyAstGenerator.js:29: WARNING - unreachable code
            console.log("AST Error", error.toString());
            ^

src/textcoding/parser/core/block/blockToPy.js:314: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
                        if(this._parseMode == Entry.Parser.PARSE_VARIABLE) { //In PARSE_VARIABLE Mode
                        ^

src/textcoding/parser/core/block/blockToPy.js:315: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
                            if(this._currentBlockSkeleton == Entry.Parser.BLOCK_SKELETON_BASIC_LOOP ||
                            ^

src/textcoding/parser/core/block/blockToPy.js:317: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
                                if(this._currentBlockParamsKeyMap) {  //If Block has Parameters
                                ^

src/textcoding/parser/core/block/blockToPy.js:318: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
                                    if(j == 0) { //The beginning of Block Statement
                                    ^

src/textcoding/parser/core/text/pyToBlock.js:541: WARNING - Comparison against NaN is always false. Did you mean isNaN()?
            if(value && value != NaN) {
                        ^

src/textcoding/parser/core/text/pyToBlock.js:947: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
        } else if(test.value === false) {
               ^

src/textcoding/parser/core/text/pyToBlock.js:1576: WARNING - Duplicate case in a switch statement.
            case "|": break;
            ^

src/textcoding/parser/core/text/pyToBlock.js:1937: WARNING - Comparison against NaN is always false. Did you mean isNaN()?
                if(value && value != NaN) {
                            ^

src/textcoding/parser/core/text/pyToBlock.js:1968: WARNING - Comparison against NaN is always false. Did you mean isNaN()?
                if(value && value != NaN) {
                            ^

src/textcoding/temp/pyBlockAssembler.js:462: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
        } else if(test.value == false) {
               ^

src/textcoding/temp/pyBlockAssembler.js:486: WARNING - unreachable code
                        else {
                             ^

src/textcoding/temp/pyBlockAssembler.js:606: WARNING - unreachable code
                else {
                     ^

src/textcoding/temp/pyBlockAssembler.js:866: WARNING - Duplicate case in a switch statement.
            case "|": break;
            ^

src/textcoding/temp/pyToBlockTemp.js:708: WARNING - Duplicate case in a switch statement.
            case "|":
            ^

src/textcoding/temp/pyToBlockTemp.js:785: WARNING - unreachable code
        else{
            ^

src/textcoding/util/textCodingUtil.js:15: WARNING - Suspicious code. The result of the 'getprop' operator is not being used.
    p._funcParamQ;
    ^

src/util/utils.js:719: WARNING - If this if/for/while really shouldn't have a body, use {}
    for(var i=-1,l=nl.length;++i!==l;arr[i]=nl[i]);
                                                  ^

src/variable.js:659: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    width = width < 100 ? 100 : width;
    ^

src/variable.js:685: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    height = height < 100 ? 100 : height;
    ^

src/workspace/block_view.js:321: WARNING - unreachable code
        if (false && Entry.ANIMATION_DURATION !== 0) {
                                                     ^

0 error(s), 33 warning(s)

Command complete for target: targetName

Running "closureCompiler:dist" (closureCompiler) task
Executing: java  -jar "node_modules/closurecompiler/compiler/compiler.jar"  --js src/entry.js --js src/blocks/block_albert.js --js src/blocks/block_arduino.js --js src/blocks/block_bitbrick.js --js src/blocks/block_brush.js --js src/blocks/block_byrobot.js --js src/blocks/block_calc.js --js src/blocks/block_cobl.js --js src/blocks/block_codestar.js --js src/blocks/block_ev3.js --js src/blocks/block_flow.js --js src/blocks/block_function.js --js src/blocks/block_hamster.js --js src/blocks/block_judgement.js --js src/blocks/block_looks.js --js src/blocks/block_moving.js --js src/blocks/block_neobot.js --js src/blocks/block_roborobo.js --js src/blocks/block_robotis.js --js src/blocks/block_scene.js --js src/blocks/block_sound.js --js src/blocks/block_start.js --js src/blocks/block_text.js --js src/blocks/block_variable.js --js src/blocks/block_xbot.js --js src/class/collection.js --js src/class/event.js --js src/class/model.js --js src/class/observer.js --js src/command/command.js --js src/command/commander.js --js src/command/commands/block.js --js src/command/commands/object.js --js src/command/commands/painter.js --js src/container.js --js src/core/db.js --js src/core/dom.js --js src/core/engine.js --js src/core/hw.js --js src/core/script.js --js src/core/svg.js --js src/dialog.js --js src/doneProject.js --js src/engine.js --js src/entity.js --js src/function.js --js src/helper.js --js src/hw.js --js src/hw_monitor.js --js src/init.js --js src/log/activity.js --js src/log/activityReporter.js --js src/log/state.js --js src/log/state_manager.js --js src/model/block_model.js --js src/model/block_render_model.js --js src/model/box_model.js --js src/model/drag_instance.js --js src/model/thread_model.js --js src/object.js --js src/painter.js --js src/painter2.js --js src/parser/block.js --js src/parser/js.js --js src/parser/parser.js --js src/pdf.js --js src/playground.js --js src/popup.js --js src/popup_helper.js --js src/project.js --js src/property_panel.js --js src/reporter.js --js src/scene.js --js src/script.js --js src/stage.js --js src/stamp_entity.js --js src/textcoding/ast/jsAstGenerator.js --js src/textcoding/ast/pyAstGenerator.js --js src/textcoding/data_processing/map.js --js src/textcoding/data_processing/queue.js --js src/textcoding/hint/python.js --js src/textcoding/parser.js --js src/textcoding/parser/core/block/blockToJs.js --js src/textcoding/parser/core/block/blockToPy.js --js src/textcoding/parser/core/text/jsToBlock.js --js src/textcoding/parser/core/text/pyToBlock.js --js src/textcoding/static/keyboardCode.js --js src/textcoding/temp/pyBlockAssembler.js --js src/textcoding/temp/pyToBlockTemp.js --js src/textcoding/util/console.js --js src/textcoding/util/textCodingUtil.js --js src/toast.js --js src/tvCast.js --js src/util/block_driver.js --js src/util/contextmenu.js --js src/util/loader.js --js src/util/popup.js --js src/util/static.js --js src/util/toast.js --js src/util/utils.js --js src/variable.js --js src/variable_container.js --js src/view/canvas/dialog.js --js src/view/canvas/variable_view.js --js src/workspace/basic_block.js --js src/workspace/block.js --js src/workspace/block_entry.js --js src/workspace/block_menu.js --js src/workspace/block_menu_scroll.js --js src/workspace/block_view.js --js src/workspace/board.js --js src/workspace/code.js --js src/workspace/code_view.js --js src/workspace/connection_ripple.js --js src/workspace/executors.js --js src/workspace/field/angle.js --js src/workspace/field/block.js --js src/workspace/field/color.js --js src/workspace/field/dropdown.js --js src/workspace/field/dropdownDynamic.js --js src/workspace/field/field.js --js src/workspace/field/image.js --js src/workspace/field/indicator.js --js src/workspace/field/keyboardInput.js --js src/workspace/field/lineBreak.js --js src/workspace/field/output.js --js src/workspace/field/statement.js --js src/workspace/field/text.js --js src/workspace/field/textInput.js --js src/workspace/globalSvg.js --js src/workspace/mutator.js --js src/workspace/renderView.js --js src/workspace/scroll.js --js src/workspace/skeleton.js --js src/workspace/thread.js --js src/workspace/thread_view.js --js src/workspace/trashcan.js --js src/workspace/vim.js --js src/workspace/workspace.js --js src/xml.js --js src/youtube.js --js_output_file=dist/entry.min.js --compilation_level SIMPLE_OPTIMIZATIONS --language_in ECMASCRIPT5 --language_out ECMASCRIPT5
src/engine.js:401: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    createjs.Ticker.setFPS(Entry.FPS);
    ^

src/entity.js:440: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if (!colour)
    ^

src/entity.js:462: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if (!colour)
    ^

src/entity.js:687: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if (text === undefined)
    ^

src/entity.js:778: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if(visible === undefined)
    ^

src/init.js:103: WARNING - unreachable code
  for (var i = 0; i < filenames.length; i++) {
                                        ^

src/init.js:347: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if (!this.FPS)
    ^

src/log/state.js:24: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if (arguments.length > 3)
    ^

src/object.js:1218: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if(!rotateMethod)
    ^

src/playground.js:794: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    if (!object) {
    ^

src/popup_helper.js:12: WARNING - Suspicious code. The result of the 'getprop' operator is not being used.
    this.nowContent;
    ^

src/stamp_entity.js:27: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
    } else if (this.type == 'textBox') {}
           ^

src/textcoding/ast/pyAstGenerator.js:29: WARNING - unreachable code
            console.log("AST Error", error.toString());
            ^

src/textcoding/parser/core/block/blockToPy.js:314: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
                        if(this._parseMode == Entry.Parser.PARSE_VARIABLE) { //In PARSE_VARIABLE Mode
                        ^

src/textcoding/parser/core/block/blockToPy.js:315: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
                            if(this._currentBlockSkeleton == Entry.Parser.BLOCK_SKELETON_BASIC_LOOP ||
                            ^

src/textcoding/parser/core/block/blockToPy.js:317: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
                                if(this._currentBlockParamsKeyMap) {  //If Block has Parameters
                                ^

src/textcoding/parser/core/block/blockToPy.js:318: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
                                    if(j == 0) { //The beginning of Block Statement
                                    ^

src/textcoding/parser/core/text/pyToBlock.js:541: WARNING - Comparison against NaN is always false. Did you mean isNaN()?
            if(value && value != NaN) {
                        ^

src/textcoding/parser/core/text/pyToBlock.js:947: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
        } else if(test.value === false) {
               ^

src/textcoding/parser/core/text/pyToBlock.js:1576: WARNING - Duplicate case in a switch statement.
            case "|": break;
            ^

src/textcoding/parser/core/text/pyToBlock.js:1937: WARNING - Comparison against NaN is always false. Did you mean isNaN()?
                if(value && value != NaN) {
                            ^

src/textcoding/parser/core/text/pyToBlock.js:1968: WARNING - Comparison against NaN is always false. Did you mean isNaN()?
                if(value && value != NaN) {
                            ^

src/textcoding/temp/pyBlockAssembler.js:462: WARNING - Suspicious code. This code lacks side-effects. Is there a bug?
        } else if(test.value == false) {
               ^

src/textcoding/temp/pyBlockAssembler.js:486: WARNING - unreachable code
                        else {
                             ^

src/textcoding/temp/pyBlockAssembler.js:606: WARNING - unreachable code
                else {
                     ^

src/textcoding/temp/pyBlockAssembler.js:866: WARNING - Duplicate case in a switch statement.
            case "|": break;
            ^

src/textcoding/temp/pyToBlockTemp.js:708: WARNING - Duplicate case in a switch statement.
            case "|":
            ^

src/textcoding/temp/pyToBlockTemp.js:785: WARNING - unreachable code
        else{
            ^

src/textcoding/util/textCodingUtil.js:15: WARNING - Suspicious code. The result of the 'getprop' operator is not being used.
    p._funcParamQ;
    ^

src/util/utils.js:719: WARNING - If this if/for/while really shouldn't have a body, use {}
    for(var i=-1,l=nl.length;++i!==l;arr[i]=nl[i]);
                                                  ^

src/variable.js:659: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    width = width < 100 ? 100 : width;
    ^

src/variable.js:685: WARNING - Misplaced type annotation. Type annotations are not allowed here. Are you missing parentheses?
    height = height < 100 ? 100 : height;
    ^

src/workspace/block_entry.js:2238: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:2249: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:2329: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:2340: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:2675: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:2686: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:3433: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:3444: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:3491: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:3504: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:3551: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:3564: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:3614: WARNING - unreachable code
                    return;
                    ^

src/workspace/block_entry.js:3625: WARNING - unreachable code
                    return;
                    ^

src/workspace/block_entry.js:3642: WARNING - unreachable code
                    return;
                    ^

src/workspace/block_entry.js:3654: WARNING - unreachable code
                    return;
                    ^

src/workspace/block_entry.js:3714: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:3743: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:3791: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:3810: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:3860: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:3871: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:3913: WARNING - unreachable code
                return;
                ^

src/workspace/block_entry.js:3924: WARNING - unreachable code
                return;
                ^

src/workspace/block_view.js:321: WARNING - unreachable code
        if (false && Entry.ANIMATION_DURATION !== 0) {
                                                     ^

0 error(s), 57 warning(s)

Command complete for target: dist

Running "karma:unit" (karma) task
Fatal error: The header content contains invalid characters

E:\Lee\prog\Entry\entryjs>

entryJS Syntax 관련

#엔트리의 JS 파일을 포크해서 엔트리파이썬 모드를 사용할 수 있는 비공식 블록을 제작하려면 어떻게 해야 하는지 다른 블록 파일들을 찾아보았는데,

모든 블록들마다 syntax라는 것이 있었습니다.

syntax 안에 py를 통해

py: [

textparams: [

{
type: "Block",
accept: "string"
}

]

이러한 방식으로 코드를 작성하는 것 같습니다.

syntax의 정확한 사용법을 알려주시면 감사하겠습니다

AI블록의 도움말 영어번역 오류

"get_translated_string": "The number of events held on the selected date and region.",
"check_language": "Reports the information(Title, area, start date, end date, address, overview, homepage) about events held on the selected date and region.",

image

entry-mini 빌드시 에러

안녕하세요?

가이드(https://entrylabs.github.io/)를 통해서는 엔트리와 엔트리 미니의 차이를 명확하게는 이해하지 못했습니다.실과형 개발이라고만 언급하셨는데 실과라는게 교과서 실과 과목을 말씀하시는 건지, 그리고 실과 서버라는 것은 또 무슨 용도인지 명확하게 이해할 수 없었습니다. 가능하시면 문서를 보강해 주시면 명확하게 이해할 수 있을 것 같습니다.

아무튼 저에게는 전체 엔트리에 모든 기능이 다 필요하기 보다, 컴팩트한 버전이 더 나을 것 같아, mini라는 이름이 그런게 아닌가 싶어 엔트리 미니로 빌드를 시도해 보았습니다.
즉 가이드(https://entrylabs.github.io/docs/guide/entry-mini/2016-12-12-getting_started.html)에 나와 있는데로 feature/offline_mini 브랜치 체크아웃 해서 npm i 로 dependencies 설치 후에 grunt를 실행했습니다.

Loading "grunt-karma.js" tasks...ERROR

TypeError: Cannot read property 'prototype' of undefined
Warning: Task "karma" not found. Used --force, continuing.

라는 메시지가 나오면서 빌드가 바로 종료됩니다. 무엇이 문제일까요?

아두이노 블록 -> 파이썬 언어 변환 -> 아두이노 블록 순서로 코드변환시 파이썬 언어에서 원래 아두이노 블록이 아닌 orange보드의 블록으로 잘못변환

entrylabs/entry-offline#116 의 root cause 찾는 과정에 발견된 이슈입니다. 이 이슈가 해결되면 해당 이슈는 자동해결 됩니다.

image

위에 버저 소리출력 아두이노 블록 -> 파이썬 언어변환 -> 다시 블록으로 되돌릴시,
내부적으로 arduino_ext_set_tone 인데 파이썬 언어갔다가 다시 블록으로 변환시, 아래의 첨부 이미지에서 보여지는 것처럼 orange_set_tone로 바뀌어 버림. 해당 블록 안에 4개의 인자 중 2개도 orange_tone_list, orange_octave_list로 바뀌어 버럼.

parser.js 148라인
result = this._execParser.Program(astArray);

image

포트를 바꿨는데도 안됩니다.

[email protected] serve D:\entry\entryjs-develop (1)\entryjs-develop
cross-env NODE_ENV=serve webpack-dev-server --open --hot --inline --host 127.0.0.1

clean-webpack-plugin: D:\entry\entryjs-develop (1)\entryjs-develop\dist has been removed.
i 「wds」: Project is running at http://127.0.0.1:8181/
i 「wds」: webpack output is served from /
i 「wds」: Content not from webpack is served from ./
i 「wds」: 404s will fallback to /index.html
i 「wdm」: wait until bundle finished: /
i 「wdm」: wait until bundle finished: /
i 「wdm」: wait until bundle finished: /
i 「wdm」: wait until bundle finished: /
[BABEL] Note: The code generator has deoptimised the styling of D:\entry\entryjs-develop (1)\entryjs-develop\src\playground\blocks\hardware\block_roboid.js as it exceeds the max of 500KB.
일괄 작업을 끝내시겠습니까 (Y/N)?
라고 뜨네요. (몇번 다시 접속함) 다시하니 화면은 나오고 버튼은 안눌리고 로그가 바뀌었습니다
× 「wdm」: Hash: 6ac3a7dd4c128a74766b
Version: webpack 4.41.6
Time: 34980ms
Built at: 2020-04-20 19:17:51
Asset Size Chunks Chunk Names
0.js 14.9 KiB 0 [emitted]
0.js.map 16.7 KiB 0 [emitted] [dev]
entry.css 133 KiB entry [emitted] entry
entry.css.map 167 KiB entry [emitted] [dev] entry
entry.js 8.95 MiB entry [emitted] entry
entry.js.map 10.5 MiB entry [emitted] [dev] entry
index.html 5.4 KiB [emitted]
manifest.json 242 bytes [emitted]
Entrypoint entry = entry.css entry.js entry.css.map entry.js.map
[0] multi (webpack)-dev-server/client?http://127.0.0.1:8181 (webpack)/hot/dev-server.js ./src/entry.js 52 bytes {entry} [built]
[./node_modules/simplebar/dist/simplebar.css] 39 bytes {entry} [built]
[./node_modules/webpack-dev-server/client/index.js?http://127.0.0.1:8181] (webpack)-dev-server/client?http://127.0.0.1:8181 4.29 KiB {entry} [built]
[./node_modules/webpack-dev-server/client/overlay.js] (webpack)-dev-server/client/overlay.js 3.51 KiB {entry} [built]
[./node_modules/webpack-dev-server/client/socket.js] (webpack)-dev-server/client/socket.js 1.53 KiB {entry} [built]
[./node_modules/webpack-dev-server/client/utils/createSocketUrl.js] (webpack)-dev-server/client/utils/createSocketUrl.js 2.91 KiB {entry} [built]
[./node_modules/webpack-dev-server/client/utils/log.js] (webpack)-dev-server/client/utils/log.js 964 bytes {entry} [built]
[./node_modules/webpack-dev-server/client/utils/reloadApp.js] (webpack)-dev-server/client/utils/reloadApp.js 1.59 KiB {entry} [built]
[./node_modules/webpack-dev-server/client/utils/sendMessage.js] (webpack)-dev-server/client/utils/sendMessage.js 402 bytes {entry} [built]
[./node_modules/webpack-dev-server/node_modules/strip-ansi/index.js] (webpack)-dev-server/node_modules/strip-ansi/index.js 161 bytes {entry} [built]
[./node_modules/webpack/buildin/global.js] (webpack)/buildin/global.js 472 bytes {entry} [built]
[./node_modules/webpack/hot sync ^./log$] (webpack)/hot sync nonrecursive ^./log$ 170 bytes {entry} [built]
[./node_modules/webpack/hot/dev-server.js] (webpack)/hot/dev-server.js 1.59 KiB {entry} [built]
[./node_modules/webpack/hot/emitter.js] (webpack)/hot/emitter.js 75 bytes {entry} [built]
[./src/entry.js] 4.92 KiB {entry} [built]
+ 756 hidden modules

ERROR in ./src/entry.js
Module not found: Error: Can't resolve 'core-js/fn/object/values' in 'D:\entry\entryjs-develop (1)\entryjs-develop\src'
@ ./src/entry.js 24:0-35
Child html-webpack-plugin for "index.html":
1 asset
Entrypoint undefined = index.html
[./node_modules/html-webpack-plugin/lib/loader.js!./example/example.ejs] 6.07 KiB {0} [built]
[./node_modules/lodash/lodash.js] 528 KiB {0} [built]
[./node_modules/webpack/buildin/global.js] (webpack)/buildin/global.js 472 bytes {0} [built]
[./node_modules/webpack/buildin/module.js] (webpack)/buildin/module.js 497 bytes {0} [built]
Child mini-css-extract-plugin ../../entryjs-develop (1)\entryjs-develop\node_modules\css-loader\dist\cjs.js??ref--7-1!../../entryjs-develop (1)\entryjs-develop\node_modules\postcss-loader\src\index.js??postcss!../../entryjs-develop (1)\entryjs-develop\node_modules\less-loader\dist\cjs.js??ref--7-3!../../entryjs-develop (1)\entryjs-develop\node_modules\simplebar\dist\simplebar.css:
Entrypoint mini-css-extract-plugin = *
[./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./node_modules/simplebar/dist/simplebar.css] ./node_modules/css-loader/dist/cjs.js??ref--7-1!./node_modules/postcss-loader/src??postcss!./node_modules/less-loader/dist/cjs.js??ref--7-3!./node_modules/simplebar/dist/simplebar.css 3.11 KiB {mini-css-extract-plugin} [built]
[./node_modules/css-loader/dist/runtime/api.js] 2.46 KiB {mini-css-extract-plugin} [built]
Child mini-css-extract-plugin ../../entryjs-develop (1)\entryjs-develop\node_modules\css-loader\dist\cjs.js??ref--7-1!../../entryjs-develop (1)\entryjs-develop\node_modules\postcss-loader\src\index.js??postcss!../../entryjs-develop (1)\entryjs-develop\node_modules\less-loader\dist\cjs.js??ref--7-3!../../entryjs-develop (1)\entryjs-develop\src\css\entry.less:
Entrypoint mini-css-extract-plugin = *
[./node_modules/css-loader/dist/cjs.js?!./node_modules/postcss-loader/src/index.js?!./node_modules/less-loader/dist/cjs.js?!./src/css/entry.less] ./node_modules/css-loader/dist/cjs.js??ref--7-1!./node_modules/postcss-loader/src??postcss!./node_modules/less-loader/dist/cjs.js??ref--7-3!./src/css/entry.less 130 KiB {mini-css-extract-plugin} [built]
[./node_modules/css-loader/dist/runtime/api.js] 2.46 KiB {mini-css-extract-plugin} [built]
i 「wdm」: Failed to compile.
가 추가되었습니다.... 도와주세요 ㅜ

그리고 계속 이슈를 작성하는데도 불구하고, 도와주시는 분들께 진심으로 감사드립니다.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.