Code Monkey home page Code Monkey logo

crowdjigsaw's Introduction

Hi There 👋

About Me 🤔

  • AIGC (C for Code) is All You Need

Recent Interests 🎓

Remeber to Focus!

🌟🌟🌟🌟🌟 AI4SE & SE4AI -> Code&Coding Intelligence -> Large Language Model for Developer teams!

🌟🌟🌟🌟🌟 Software Engineering -> Program&Code Analysis -> Collaborative SE!

🌟🌟🌟🌟🌟 Human Computer Interaction -> Developer-devoted Interaction&Feedback Design!

Technical Stack 💻

  • Java
  • Python
  • Go
  • JavaScript/TypeScript

Recent Projects 🔭

Tools and workflows to boost developers' productivity in a collaborative team & community!

  • Code2Graph: A converter from source code to graph format that is language-agnostic and extensible.
  • SoManyConflicts: A VSCode extension to resolve multiple merge conflicts systematically and interactively.
  • SmartCommit: An assistant for cohesive and conventional commits based on code-change-graph partitioning.
  • IntelliMerge: A refined merging tool for Java: graph-based, refactoring-aware, and semi-structured.
  • CrowdJigsaw: A framework for collective problem solving (e.g., knowledge graph building): collaboratively.

crowdjigsaw's People

Contributors

dependabot[bot] avatar symbolk avatar weiyuhan avatar wenhaoh2 avatar zxinyue avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

crowdjigsaw's Issues

[Issue] 推荐算法会干扰用户选择 (by WZhang)

问题描述

用户游戏时,因为后台推荐算法过于宽容,所以对于用户曾经多次尝试的难点块,会多次推荐错误。

解决方案

改进后台推荐算法,设置推荐阈值,降低recall提升precision。

涉及代码

graph.js:getHints()

[Issue] players开始时间不一致 (by bo shen)

players开始时间不一致

实验中发现,每次round的creator点了开始后,自己会立刻进入游戏界面,但其他player都有3~10秒不等的延迟才能加载出puzzle界面。

可能原因

1,网络延迟
2,通信机制问题
3,客户端图片处理

可能涉及代码

客户端
1,jigsaw.js
2,main.js
服务器端
round.js

[细节性问题] 由推荐导致的权值应该什么时候生效?

问题场景:

  1. 片段x, y之间的一条边,具有权值w,表示有w个用户把这两个片段拼在了一起;
  2. 用户u,没有反对把x,y拼在一起,目前也没有把两者拼在一起;
  3. 如果软件把这条边推荐给了用户u,那么,这条边的权值什么时候变成 w +1 呢?

两种策略

  • 策略一:在这条边推荐给u之后,边的权值立刻变成 w +1 。

  • 策略二:在这条边推荐给u之后,观察u的行为,直到u做了一次非分离的操作后,如果此时u没有把x,y分开,这时,才把u的1添加到权值w上。

    ”非分离操作“:不是”分离操作“的操作

    “分离操作”:用户把两个原本拼在一起的片段分离开的操作(无论这个被拖开的片段是否被拖动到其它片段的某个边上)。

感觉策略二更好一些。

Abstract

The pictorial jigsaw puzzle is a well-known leisure game for humans that requires the player to recover a picture from a pile of pieces. Traditionally, human players solve the puzzle individually or collaboratively face-to-face. In this paper, we propose an approach to facilitate the human collective intelligence in solving such problems like the jigsaw puzzle. It is inspired by the stigmergy mechanism in biology and works as a continuous loop named EIF, which consists of three activities: exploration, integration, and feedback. As a verification of the approach, we design and implement a web-based system to support physically-distributed human players in solving the jigsaw puzzle more efficiently. Exploratory experiments show that: (1) for groups with 2~10 players, the time to solve jigsaw puzzles decreases 31.36%~64.57% on average when compared with the best
individual player in each group; (2) comparing with the face-to-face or shared-canvas collaboration, our approach provides better scalability with regard to the puzzle size and the number of players.

[Issue] creator退出时不解散round (by weiyuhan)

问题描述

round人数凑不够时,creator想重开round所以退出,但退出后应该解散round,因为其他players也不能start

可能原因

round结束判断的问题

涉及代码

round.js--quitRound

Paper list

92-Operation-based Merging
arXiv13-Extracting Instances of Code Change Patterns with AST analysis
arXiv18-An Empirical Study of Android Changes in CyanogenMod
ASE05-UMLDiff An Algorithm for Object-oriented Design Differencing
ASE12-Structured merge with auto-tuning balancing precision and performance (FSTMerge)
ASE14-Fine-grained and Accurate Source Code Differencing (Gumtree)
ASE15-Balancing Precision and Performance in Structured Merging (JDime)
ASE16-Move-Optimized Source Code Tree Differencing
ASE17-Renaming and Shifted Code in Structured Merging
ASE18-ClDiff generating concise linked code differences
CCS12-Dynamically Scoped Change Sets for Controlled Updates in Live Programming
Combining Unstructured, Fully Structured and Semi-structured Information in Semantic Wikis
Comment and Indentation Preserving
CSCW18-An Analysis of Merge Conflicts And Resolutions in Git-Based Open Source Projects
CVSM09-Operation-based conflict detection and resolution
ESE18-Understanding semi-structured merge conflict characteristics in open-source Java projects
ESEM15-Assessing Semistructured Merge in Control Systems A Replicated Experiment
ESEM17-An Empirical Examination of the Relationship between Code Smells and Merge Conflicts
FASE17-Precise Version Control of Trees with Line-Based Version Control Systems
FSE11-Crystal Precise and Unobtrusive Conflict Warnings
FSE11-Semistructured Merge Rethinking Merge in Revision Control Systems
FSE11-Semistructured_Merge_in_Revision_Control_Systems
FSE12-How Do Software Engineers Understand Code Changes An Exploratory Study in Industry
FSE16-Why We Refactor Confessions of GitHub Contributors
ICSE16-SourcererCC Scaling Code Clone Detection to Big Code (SourcererCC )
ICSE18-Assessing the Threat of Untracked Changes in Software Evolution
ICSE18_Accurate and Efficient Refactoring Detection in Commit History (RefactoringMiner)
ICSM04-Dex A Semantic-Graph Differencing Tool for Studying Changes
ICSM04-Supporting Source Code Difference Analysis
ICSME17-Software Practitioner Perspectives on Merge Conflicts and Resolutions
Informatica17-Software Architectures Evolution Based Merging
ISEC16-Delta Refactoring for Merge Conflict Avoidance
IWST15-Assessing Semantic Merge Conflicts with Dependency Analysis (DeltaImpactFinder)
MasterTheis16-A Study of Merge-Conflict Resolutions in Open Source Projects
MSR05-Understanding Source Code Evolution Using AST Matching
MSR18-Analyzing Conflict Predictors in Open-Source Java Projects
MSR18-The Android Update Problem An Empirical Study
OOPSLA16-Purposes, concepts, misfits, and a redesign of git (Gitless)
OOPSLA17-Evaluating and Improving Semistructured Merge (jFSTmerge)
OOPSLA18-Conflict Resolution for Structured Merge via Version Space Algebra
OOPSLA18-Verifying Semantic Conflict-Freedom in Three-Way Program Merges (AutoMerge)
PHDThesis17-srcDiff Syntactic Differencing to Support Software Maintenance and Evolution
PL17-Verifying Semantic Conflict-Freedom in Three-Way Program Merges
PLDI11-Systematic Editing Generating Program Transformations from an Example
SANER16-Supporting Merge Conflict Resolution by Using Fine-Grained Code Change History
SATToSE17-Automated Categorisation of Breaking Merge Commits
SC08-Superimposition A Language-independent Approach to Software Composition
SDE92-Operation-based Merging
SPLASH17-What Merge Tool Should I Use
TOPLAS94-Software Merge-Semantics of Combining Changes to Programs
TSE02-A State-of-art Survey of Software Merging
TSE07-Change distilling Tree differencing for fine-grained source code change extraction (ChangeDistiller)
TSE08-Effective Software Merging in the Presence of Object-Oriented Refactoring
TSE17-Semantic Slicing of Software Version Histories
~$ASE16-Move-Optimized Source Code Tree Differencing
~$ICSM04-Dex A Semantic-Graph Differencing Tool for Studying Changes
~$OOPSLA18-Conflict Resolution for Structured Merge via Version Space Algebra

图片分割也应该服务器端完成

对于一个图片,在服务器端可以按照事先确定的几种分割方案,对其进行分割。

当一个玩家进入游戏,在等待游戏开始的这段时间内,服务器把分割后的图片(压缩在一个文件内)传递到客户端。

另外,应该无法从碎片的名称看出碎片间的关系(否则,在客户端,如果用户在控制台能够看到这些碎片,就有可能作弊)。

[Feature Request] 增加对片段边缘像素的抹除功能

在分割图片时,可以给定一个整型参数x,表示需要把分割后的边缘像素抹除掉多少行/列。

实现时,等价于:先在原始图片的分割线上画上宽度为2x的纯色线条;然后再对图片进行分割。

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.