Skip to content

Month: January 2016

Why I <3++ Slack

Brief Intro to Slack

I’m a happy user of Slack, using it for the Madison Cartoonist Conspiracy art group, various classes and professionally.

I’m always astounded when people still haven’t heard of or used it, so I started keeping a list of links to share/email.  I think I’ll just refer to this post from now on, adding useful links as needed.

 

What is Slack?

https://slack.com/

How can teams use Slack?

https://slack.com/is/team-communication

WordPress.org uses Slack as their primary collaboration tool for their open source work.

Join WordPress Slack

There are many integrated services and apps that work with Slack.

https://slack.com/apps
Additionally, they have an excellently documented api
https://api.slack.com/slack-apps (for making an app that works with Slack)
https://mc-web.slack.com/apps/build/custom-integration (for making a custom connections)

Joey Day used the custom integration to hook slack up with Service Now ticket management system. (but you can link Jira or Zendesk too)

http://joeyday.com/2015/03/02/integrating-servicenow-with-slack/

Here is a case study of a small company who now uses Slack

http://slackhq.com/post/117188698390/picking-up-slack-at-panic

MF has some tips for using Slack/

http://ask.metafilter.com/267742/Tips-and-tricks-for-using-Slack

Some other tips

http://www.fastcompany.com/3046011/know-it-all/best-practices-from-the-most-active-slack-users

Other reading

iOS Project Log 1

This semester, Spring 2016, I am taking my 3rd class in iOS/Swift programming. We are required to work on 2 major projects.

The first is a group project, which I am working on with an awesome placid dinosaur, and the second is a personal project. I may post about the group project in the future, but I primarily want to document my journey/process/random flailing for the personal project.

Both projects will  match us with students from the Design Portfolio class. That frees me to focus on making function and mechanics, leaving theme, branding and graphic asset in their capable hands.

Curious about the class offered at MadisonCollege.edu, you can check out the instructor’s twitter here: EjKnapp@twitter.

Disclaimer: This is my personal website, all opinions here are my own and not of my employer. Enjoy!


 

Sound Maze

I am going to create a maze or roguelike game with SpriteKit, and want to explore sound and accessibility.

Week 1

  • No official title, am using Sound Maze as a placeholder.
  • Have researched some audio only games. Not a lot to choose from, have only found one really well polished. Papa Sangre II is an audio driven adventure game with minimal UI, and uses 3d binaural sound. I think a full 3d sound design is out of scope for the semester, so will be looking for something simpler.
  • Exploring some Audio libraries like:
    •  OpenAl https://developer.apple.com/library/ios/samplecode/oalTouch/Introduction/Intro.html
    • Papa Sangre has an 3d sound engine, but does not appear to be available.
  • Trying to come up with core concepts for the game design. I know I want sound involved, should I work with echoes, reflections, redshifts?
  •  I’ll need to create a solvable maze maker https://en.wikipedia.org/wiki/Maze_generation_algorithm is a good place to start.
  • By the same token, I may want to create a test ‘solver‘ to test that things are indeed solvable and test the sound design as well. (Could this become an antagonist racing the player?) http://www.astrolog.org/labyrnth/algrithm.htm#perfect
  • I’m thinking, topdown, grid, 2d, but this may change based on design input. I anticipate most of the mechanics will operate the same tho.
  • At this point I think finding your way through a maze with audio cues might be enough of a challenge, so am not currently planning monsters but may include some traps or obstacles.

Bad Node, Bad Node, whatcha gonna do?

I recently switched a site search from using external Google CSE search to using the internal Drupal Core search. This was fairly inconsequential.

I switched to Node search under Config -> Search and Metadata, swapped the CSE block out of my sidebar in Content ->Structure, made a few theme CSS changes to match and I should have been done.

Except for indexing the content, trivial, right? Just run cron a few times and you should be all set!

Only, no. That didn’t seem to work. I kept getting a couple strange errors in the log messages.

Warning: Creating default object from empty value in node_build_content() (line 1398 of /Users/user/sites/sitename/modules/node/node.module)

and

EntityMalformedException: Missing bundle property on entity of type node. in entity_extract_ids() (line 7879 of /Users/user/sites/sitename/includes/common.inc).

After a good deal of searching, and some helpful hints from the #drupal channel I tried a few different modules but none of them addressed the one issue I was having, which was increasing the indexing. I was stuck at 8%.

I finally found this post http://tappetyclick.com/blog/2013/01/14/how-find-bad-node-makes-search-indexing-cause-drupal-cron-fail

Which mentioned that they had found a solution on a Portuguese site, and translated it for us.

My drupal version is a little bit different than the example at tappetyclick, but the gist is: Output the indexing process to the log by adding a watchdog line to  the core file modules/node/node.module”

'watchdog ('cron', "indexing node {$node -> nid}"); // ADD THIS LINE'

This made my node_update_index() look like this:

function node_update_index() {
 $limit = (int)variable_get('search_cron_limit', 100);
 $result = db_query_range("SELECT n.nid FROM {node} n LEFT JOIN {search_dataset} d ON d.type = 'node' AND d.sid = n.nid WHERE d.sid IS NULL OR d.reindex <> 0 ORDER BY d.reindex ASC, n.nid ASC", 0, $limit, array(), array('target' => 'slave'));
foreach ($result as $node) {
 watchdog ('cron', "indexing node {$node -> nid}"); // ADD THIS LINE
 _node_index_node($node);
}
}

Then I ran cron manually and checked the log messages, filtering for cron types only.

cron 01/11/2016 - 5:00pm indexing node 1803 Anonymous 
cron 01/11/2016 - 5:00pm indexing node 702 Anonymous 
cron 01/11/2016 - 5:00pm indexing node 7676 Anonymous 
cron 01/11/2016 - 5:00pm indexing node 6801 Anonymous

Everytime I ran into EntityMalformedException: Missing bundle property on entity of type node in entity_extract_ids(), I’d look at the last node we’d tried to index, this was the bad node, and delete it from the database.

After removing about 40 of these bad nodes the core search index actually reached 100%. /kermitarms