Coder Social home page Coder Social logo

diplomacy's Introduction

I build ventures. Mostly web apps. Exclusively in Clojure.

Currently, my main focus is on recovering from burn-out creating a space for massively collaborative online ventures.

Interested in learning Clojure? I host a weekly study group and a monthly mob programming session via Clojure Camp.

Talks

Occasionally, when I have something interesting on my mind, I attempt to distill it into a somewhat comprehensible talk:

  • ๐Ÿ“บ Solving Problems the Clojure Way

    My attempt at explaining two of the core pillars of Clojure programming: functional programming and data-oriented programming. Features a step-by-step refactor of imperative code to functional code (in Javascript).

    "This is by far the best talk I've seen explaining functional programming" <- someone on YouTube, so you should definitely trust them

  • ๐Ÿ“บ Data-Oriented Programming

    I try to distill "data-oriented programming" and "data-driven programming," as practised by the Clojure community.

  • ๐Ÿ“บ Declarative Domain Logic

    Domain Modeling via Data-Oriented programming in Clojure?

  • ๐Ÿ“บ Composing Applications

    Organizing code by features to enable "append-only" programming for web applications.

Background

When I was 12, my mom won a spot at a programming course at a tiny private college. She didn't stick with it, but I used the books she bought to learn the basics of HTML + CSS + JS + PHP and started making shitty websites for people (with heavy use of Flash animations). I discovered Rails, built a lot of little web apps with it, and also learned Ruby as a result. I made a single project with the early Node ecosystem, but after being introduced to the simplicity of Clojure, it has kept me happy for the last 8+ years.

I program mostly for the joy of creation. I make things mostly to explore ideas and to solve problems for myself or others.

My goal in life is to maximize the value I create for others, and to help others do the same.

I spent 4 grueling years earning a degree in energy-systems engineering, which to the chagrin of my parents, I've put to no use whatsoever.

For the last few years, I've been doing a mix of startups (not-yet-successful), consulting (life-draining), teaching (rewarding) and traveling (environmentally-questionable).

diplomacy's People

Contributors

cannawen avatar rafd avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

jamesnvc

diplomacy's Issues

[INVESTIGATION] Trying to spawn more than you are allowed

When you try to spawn more than you are allowed, what happens?

I think your spawn gets added, then there is a sanity check on the server and it says "you have too many units" and then randomly removes a unit from you. This is bad. We should stop it sooner

[IMPROVEMENT] [UX] [UI] Filter support orders more

Current:
Can only support ( any space 2 or 1 spaces away ) TO ( spaces 1 away )
Ideal:
Can only support ( units 2 or 1 spaces away, that exist ) TO ( spaces 1 away )

Relevent code:
board.js > OrderSubmit > clickedMove > case "s"

[BUG] Secondary move stage not "remembered" by client

If you refresh out of the page when submitting secondary moves, you can't get back to it.
Game doesn't remember what state it is in.
Maybe this will be fixed by the server automatically refreshing the pages?
Best solution I think - Save game state in the game object so we can update render() based on this...

[BUG] resolve secondary not checking user input

User can place more units than they're allowed.
Proposd solution:

  1. New army/fleet/none drop down, then choose where you want to place it (2 extra units = 2 places to select army/fleet etc)
  2. Add server side checking

[BUG] Turns should be resolved by server

Currently, a player clicks "resolve moves"
This is good for the demo, but not good for real play.

There should be a setting on the game that is set at the start, that says "turns resolve every x hours" and the server should take care of "pressing the game resolve button"

[BUG] [UI] When two units are in same space, they overlap & look like one unit

This is problematic when an attacker has dislodged a defender, and they are both listed as in the same space.

Either the attacker colour or the defender colour will show on the map, depending on which was declared first (maybe?)--it looks like it's only one unit there.

Proposed solutions:

  1. We should remove the retreating defender's unit from the map view, or
  2. Ensure the attacker's colour is on top.

We still need to keep it in the units list, since it is used in secondaryResolve

Relevant code:
Diplomacy > public > scripts > client > helper > map_coord.js > window.MAP_COLOURS ... ahh! I mean MAP_COLORS ... who wrote this thing?! I think I did. :( ... just trying to conform to the CSS standard.

[BUG] Filter "retreat list" so you cannot go to attacking space

When a unit gets dislodged, they can retreat to where the attacker attacked you from. This should not happen

Relevent code:
board.js > OrderSubmit > clickedMove > case "retreat"
We need to keep track of where it came from--currently, we delete the orders on the server immediately after they are resolved. Perhaps we shouldn't?

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.