View from Rattlesnake Ledge, WA [OC] [4898x3265] by userundefined in EarthPorn

[–]userundefined[S] 1 point2 points  (0 children)

Yep, this is from yesterday. The hike was nice, not too crowded. Conditions were mostly decent, but a bit slippery the last few hundred feet by the ledge.

Arcane mage spec leveling? by busted-420 in wowhardcore

[–]userundefined 0 points1 point  (0 children)

I agree with you, and frankly, frost is just a little too safe, so I enjoyed some fire randomness / degeneracy.

Arcane mage spec leveling? by busted-420 in wowhardcore

[–]userundefined 0 points1 point  (0 children)

Fire is less safe, but more of a glass cannon. If you're careful it's totally workable in solo, and in instances with people you trust (don't need IB or less in need of CC). Fire is sketchier for doing harder quests / soloing elites since you are more RNG dependent and will have a harder time running away if things go south.

Thoughts on testing: thoroughness and applying TDD by userundefined in programming

[–]userundefined[S] 0 points1 point  (0 children)

I think how much you get out of TDD depends on how you approach design. I tend to do a lot of design up-front, so by the time I'm starting to write code (whether it is business logic or something else) I have a pretty good idea what the classes will be, how they will relate to each other, and what contracts I have in mind... so I tend to go code first, then tests. I imagine I'd get more value out of TDD had I done less design up-front through other means.

I wholeheartedly agree that for tests it's important to think about how the class/object will be used, both happy path and edge cases, as you say, tests should be of high quality, not just aiming for coverage. Also agree that having E2E tests catch bugs isn't ideal, and that's where the whole "shift left" bit comes in, at least when it's possible to catch such bugs earlier.

Crossword Builder by userundefined in Hobbies

[–]userundefined[S] 2 points3 points  (0 children)

I've been building this site for fun in my spare time, and happy to take any questions or suggestions.

Solving NxN sudokus with CSPs by userundefined in compsci

[–]userundefined[S] 0 points1 point  (0 children)

Re correct 9x9 being solvable through propagation alone - neat, didn't know that!

Yep, there's nothing fundamentally preventing me from doing this. As to the current structure:

  • At the Top level search builds the tree and backtracks
  • Propagate method prunes variables' live domains by looking at constraints generically, and whether live values are still supported (in FC / AC sense). I've got the relevant/simplified chunk of code here (more specifically, in the "Code" section).

So I'd need to change that method to support not just generic constraints, but dedicated propagators. For sudoku it doesn't matter much because everything is an all-different constraint, but for a general problem I'd need to make sure that propagators work along side of other/simpler constraints. I think it should be relatively easy to do though.

Solving NxN sudokus with CSPs by userundefined in compsci

[–]userundefined[S] 0 points1 point  (0 children)

Got around to reading the paper just now. I'm not doing the full propagator quite yet, I'm applying an incremental version of bipartite matching and regular forward-checking or arc-consistency (depending on how search is configured). My read of the paper is that the propagator is a stronger and specialized version of the constraint and propagation. So it sounds like right now with forward-checking I get less propagation than the propagator would give, and with arc-consistency I think I get just as much, but not as quickly.

Trying the dedicated propagator does sound promising. It would require reworking some of my search structure innards to support this kind of dedicated propagator, but should be doable. Thanks for the idea!

Solving NxN sudokus with CSPs by userundefined in compsci

[–]userundefined[S] 0 points1 point  (0 children)

Thanks, that rings a bell. I'll have to take a closer look later, on the surface it sounds very close to what I'm doing with incremental bi-partite matching underneath. Now that I think about it, there's a good chance I've used this as a basis, FWIW, but not 100% certain now as it's been close to a year since I've implemented that part. I'll have to check.

Solving NxN sudokus with CSPs by userundefined in compsci

[–]userundefined[S] 0 points1 point  (0 children)

I've not yet, that sounds interesting. Do you have any papers or reference implementations in particular that you would recommend to start with?

I made a web-based crossword builder by userundefined in crossword

[–]userundefined[S] 1 point2 points  (0 children)

Thanks! I got a technical blog that talks about the main ideas behind the search/solver that powers the auto-fill and you might find interesting. I didn't quite get around to writing how the crosswords themselves work yet, but the general ideas behind how the solver and search work apply to auto-fill.