Thursday, March 14, 2019

Random Visual Mnemonics for Programming - part 2

Bit operations visual mnemonics:

Operation Calculation Mnemonic
GET bit i n&(1<<i) nacicci (拿 ná)
SET bit i n|(1<<i) nicicci ("knee")
CLR bit i n&~(1<<i) nancicci ("none")
CLR (MSB to bit i) n&((1<<i)-1) nacciccimi
CLR (bit i to LSB) n&(-1<<(i+1)) nacmiccipi
UPDATE bit i n&~(1<<i) | (1<<i) nancicci icicci

BFS visual mnemonic:



Translation: To go through each level of a tree at a time, queue the most immediate child nodes and then look at each of their child nodes. 

Heap visual mnemonic:



Translation: To add to a heap, add to last position, then bubble-up. To remove the top/head node from the heap, remove it, then move the node in the last position ot the top, and then bubble-down. 

More visual mnemonics: here.

Wednesday, January 9, 2019

A Summary of DOET (The Design of Everyday Things)


The iconic teapot with the spout over the handle.
My summary of the book "The Design of Everyday Things"

Not 5S but 5F:


5F
 =
 = Form <- Function, Feedback, and Forcing Functions.
 = Form follows Function, Feedback, and Forcing Functions


Friday, May 18, 2018

Animation Created With Math

Can you figure out how it works?
Hint: Addition? Multiplication? With what? Just a few words.


https://codepen.io/hchiam/full/VzQwqj


See the Pen ResponsiveSpeechBlob by hchiam (@hchiam) on CodePen.

Tuesday, May 1, 2018

Ok Google, talk to Code Tutor!

Code Tutor is still under active development as of this post. Contributions are welcome!


Version 3 of Code Tutor is on the Google Assistant! Just say "Ok Google, talk to Code Tutor".

You can get the Google Assistant on your mobile device:

I'm still improving it. That's why I'm open-sourcing it so we can help it improve faster together. You can also learn from the code to more quickly build your own voice app: https://github.com/hchiam/code-tutor BTW: Can you find all the hidden features? :)


Monday, March 5, 2018

Synthesis of Programming Problem Solving Strategies:

AEIOU

What?

For context: skim/fast-forward through these:

Thing is, when you're already trying to solve a tough problem, you can't mentally keep track of too many steps. But you also don't want to lose out on important considerations. And add on top of that how easy it is to forget* the steps when they're so abstract. Some steps even seem to overlap. 

I like summaries, so I've been playing with a few ideas to optimize for compactness. Some steps can be grouped into larger conceptual chunks. I've tried posting visual mnemonics in my room (think pictionary and infographics), but I found a simpler way to keep a mental checklist.

I came up with:

  • A
  • E
  • I
  • O
  • U

Which stand for:

  • Assumptions
  • Examples
  • Ideas
  • Optimizations
  • Unit tests

Or if you like things in threes:

  • Examples (which you should ask for to clarify assumptions)
  • Ideas (of different possible solutions, and choosing one)
  • Optimizations (which should be done with testing to evaluate your idea(s))
And then you'd just remember the "EIEIO" farmer song.

*Of course, with practice, you don't really need to memorize the steps. You should be internalizing the concepts behind the steps so they become habits of thought. But having a portable checklist (i.e. a mental/paperless way to remember) is helpful for practicing to set up the habits in the first place.

Thursday, February 8, 2018

LUI 4 Update

Lui's back.

Suggestions? Wake-up-words? The voice assistant side-project got upgraded.


"Computer what can you do"

To talk to Lui, start by saying "computer", and then your request. For example: "computer what can you do", or "computer play number guessing game".



"Computer stop/start listening"

You can talk to Lui completely hands-free in Chrome. If you want the voice assistant to stop responding to everything you say, just tell it: "computer stop listening".


"Computer let's program"

One of the newest features is you can get Lui to find code for you. This may come in handy with the feature of programming with your voice (which is still in development). Just say "computer let's program" to see a suggested next action.
 



Links:

Live demo: https://codepen.io/hchiam/full/WOLOJG/



Feedback: https://goo.gl/forms/Nwf8TXvOW2vE2OHA3


 
Release notes: https://github.com/hchiam/language-user-interface/releases



Lui's premier blog post: https://hchiam.blogspot.ca/2017/08/lui.html


_____________________
<This blog post was automatically posted at 12 noon on February 8th, 2018.>
_____________________

Thursday, February 1, 2018

sourcefetch-server: An Interface to Find Code for You*

Live demo*: 


*Please don't blindly copy code. Making use of code you find on Google still requires critical thinking. This interface could be helpful for remembering syntax. But it was made with a bigger project in mind that I've been working on (news coming soon). 
 
_____________________
<This blog post was automatically posted at 12 noon on February 1st, 2018.>
_____________________