democratized hardware design

9.17: news.adds/openware/democratized hardware design:
co.yt#ARMdevices.net Sep 15, 2014:
Google Project Ara Keynote: 
“What if hardware was more like software?
Google’s Project Ara and the
democratization of the hardware ecosystem.”

Code.org`Code Studio

9.12: news.adds/cp4e/Code.org`Code Studio:
Code.org Launches Code Studio,
A Toolset And Curriculum For Teaching Kids Programming
Rather than having kids pick up a language like Python
(as you would in a college or AP Computer Science class),
Code Studio teaches the underlying concepts in programming
through the composition of interlocking graphics,
a lot like MIT’s  Scratch, though Code Studio uses HTML5
(so it can run in most browsers).


robot-human interactions

12.28: summary:
. ideas about robot-human interactions
inspired by the movie Her,
about falling in love with AI .


Chris Granger`programming with Light Table

5.12: news.addx/Chris Granger`programming with Light Table:
chris-granger.com 2014/03:
. the important part of a spreadsheet program
is that it avoids incidental complexity:
if you understand keyboardable math notation
then you are writing equations that are
constantly run as programs .
. every cell accepting values
will have its changes trigger an update
that reruns any equations using it as input .
. a spreadsheet is completely observable;
ie, there are no hidden variables:
when you set up a spreadsheet,
all the calculations are based on
inputs visible to you on the same sheet .
. there are 2 examples of being direct:
a good spreadsheet program will let you
input a math equation as a function definition,
and it will express values graphically;
eg, color codes are given as colors,
and names of objects are replaced with
pictures of the objects .
. the limits of that programming model
is that it represents only a single program
that is a composition of functions .
. we need to intuitively and graphically extend that
to all the control structures people think in terms of .
"we're out to find something better,
something that isn't just for programmers
or non-programmers, but instead
removes that distinction entirely" .
. the author had originally began by
creating a code editor that would make it easier to
use your typical programming language,
but decided that current languages are the problem .
. their code editor featured Clojure
which is basically lisp .
Light Table's general editor capabilities
will work with most languages out there,
but it has deeper language integrations
(things like inline eval) for Clojure,
ClojureScript, Javascript, Python, HTML, and CSS...
More languages can be added via plugins in the future.

Chris Granger`Aurora

5.11: news.adda/lang/Chris Granger`Aurora:
The Aurora language was created by Chris Granger,
who also built the Light Table IDE.
Chris outlines the motivation for Aurora
in his post Toward a better programming:
.some of the goals are to make programming
more observable, direct, and reduce incidental complexity.
For more info, be sure to see Bret Victor's incredible talks:
Inventing on Principle, Media for Thinking the Unthinkable,
and Learnable Programming.


5.10: adda/oop/multi-inheritance:
12.26..27: summary:
. I played around with the idea of mult-inheritance
in 2010/062010/11,  and 2012;
after this latest exploration in 2014/05,
I'm wondering if mult-inheritance is worth it;
because it could easily become confusing
knowing how many roles are affected by assignments .


empirical vs normative uncertainty

5.9: news.phi/empirical vs normative uncertainty:
Will MacAskill @ MIRI:
. with just a bit of Moral philosophy research
we can radically alter the value of our options.
So individuals, philanthropists, and governments
should all spend a lot more resources on
researching and studying ethics .
. picking policy can make use of voting systems .
. when unsure about what we ought to do,
it's due to various sorts of uncertainty:

ibiblio.org #openware #library

5.8: lib.adds/openware/ibiblio.org:
. textbook on electricity .
Welcome to ibiblio!

Home to one of the Internet's largest
“collections of collections”,
ibiblio.org is an online public library with
freely available software and information,


logging to help debug and user experience

4.24: adda/architecture/logging to help debug and user experience:
12.20: summary:
. logging of calls can tell you where an error occurs;
when errors are out of your control .

delegates in obj'c

4.24: adda/oop/delegates/delegates in obj'c:
. in the model-view-controller pattern
the model is acting as a server .
. some servers expect you to
provide as input for their startup
an object that serves as your delegate,
the delegate class provided by the client
conforms to the interface expected by the server
and when the server has to provide
some client-specific processing
it is launching one of the client's delegate's methods .
. this is just like if the server
expected the client to input
a set of pointers to subprograms
but by supplying an object instead,
the included set of subprograms can share some variables
whose state persists between subprogram calls
(instance vars of the obj).

opensourceseedinitiative.org #openware

4.20: news.adds/openware/opensourceseedinitiative.org:
wisc.edu`Open Source Seed Pledge:
. the Open Source Seed Pledge aims to
keep new vegetable and grain varieties
free for all scientists, and farmers .

securing the virtual machine #addm

addm/sec/securing the virtual machine:
4.20: 12.20: summary:
. a virtual machine can provide security
along with some user freedom to develope code
by using a microkernel architecture
and learning from the Chrome browser team:
you can't build a secure app unless you
secure the underlying OS and firmware too .


concurrency ideas inspired by obj'c

4.13: adda/oop/co/concurrency ideas inspired by obj'c:
. obj'c has a callback pattern
where a service provider is customizable
by expecting the clients to provide certain functions
that the service provider will call at special times .
. obj'c's callbacks will have a param indicating
which object is the service provider doing the callback
-- apple calls that the msg sender --
but that is generalizable as the caller:
each call is part of a call stack,
and we don't need to include the caller in the parameter
because the system can provide that as stack(-1),
eg, the adda language could reserve the term:
( however, notice in pure oop, callers are
always obj's, not subprograms .
when a service provider is calling you back,
you don't want to know which of its subprogram's called you back;
you want a way to refer back to the service provider .
. the key to sorting this out is noticing
when there is cross-module communications .
. are all objects to be treated as separate processes?
. is there a distinction between caller and msg sender?
are objects async'ly called ? generally not,
since the call's parameters could be
references to caller's internals;
so, the caller is going to want to
wait for the call to finish .
. even if the callee is not writing to a shared object
the caller has to avoid writing until callee is done,
or it has to be a dynamically updateable type
(2 threads must agree to release as often as possible).
. if not waiting for callee to return,
there must be a lock on the refs target,
when callee is done handling the msg
the system has to notice if any params are pointers
and unlock the targets when the call is done;
the caller usually knows when a call is done,
because it wouldn't be runnable
unless all its callees had returned;
so, during an async call, the caller is still running
until it bumps into a locked resource,
and when the async callee returns,
the system must provide a notification,
and upon notification the caller can unlock the resources
that it had let that callee borrow,
or the system's notification could consist of
auto'ly unlocking what was shared with the callee .
. unlocking means decrementing an [in use by a callee].counter,
since with async calling concurrently,
there could be multiple readers locking out writers .
... may want to review
what's already been written about this;
but generally,
it would be nice to have a way for the caller
to know when an async callee is done
the async syntax could be
has-returned.flag`= async y`= f(x) .


religious science

4.8: adds/doc'ing/religious science:
. I was wondering how the early church decided
which texts to include in the bible;
it seems that after reading them all,
they developed a theory for what most likely happened,
and then included only texts that agreed with that theory .
. so their bible really has become
the early church's theory of Jesus .
. what is needed by good documentation
is a metabible,
that summarizes all the original documents
and why a particular theory would treat that document .
. each document's summary would mention
what other documents it contradicted,
and would offer various theories about
who the authors are and what their motive was .


probability function over naturals

4.3: 12.13: news.math/probability function over naturals:
askamathematician.com 2010:
. can we define a probability distribution on the set of integers
(rather than the real numbers between 0 and 1)
such that they each occur with equal probability
(i.e. does a uniform distribution on the integers exist)?
askamathematician states:
". it can not be the case that
each of the infinity of integers
has the same probability
and the probability density function integrates to 1"

. but intuitively you can see
that the value is non-zero:
it is the infinitesimal defined by 1/infinity .

the good judgement project

4.2: web.adds/crowdsourcing/the good judgement project:
12.13: summary:
. an arm of the usa goverment is investing in
high-risk, high-payoff research programs;
one of which is the The Good Judgment Project
that harnesses crowd-sourced intelligence
to make predictions about global events.



google`AppEngine file system intro

2.20: news.adda/co/google`AppEngine file system intro:
. projects store objects in buckets
which are like folders but non-nestable;
and have names that are unique across
not just the project but all of g'storage .
. immutability applies only to objects
not filenames, [symbolic vs hard links].
Object names can contain
any combination less than 1024 bytes,
of Unicode characters (UTF-8 encoded)
including "/"
so that you can use old pathnames
while google sees the entire path as one filename,
as the only hierarchy is
(g'storage, some-bucket, some-pathname).
For most operations you can use either of
the following URLs to access an object:
www.googleapis.com/storage/v1beta2/b/≺bucket>/o/≺object>?alt=media (JSON API)

the value of constants

2.20: news.adda/co/the value of constants:
11.30: summary:
. in classical programming constants are encouraged
because it simplifies the programming space:
you are no longer concerned with
accidently modifying a constant object
because the compiler or the hardware
will automatically detect that mistake for you .
. constants have even more usefulness
in the context of cloud computing .


euler's number derived from pyramid of additions

2.9: math/euler's number derived from pyramid of additions:
. "( if s#n is the product of the terms in the nth row;
) it shows a pyramid of numbers
but doesn't say how the numbers are generated .
. so there are rows with a list of terms,
and the product means
multiply all numbers in row n to get s#n .
s#(n-1)* s#(n+1) /s#n ^2 = e .
say n=7, s#n = 162000,
s#(n-1) = 2500
s#(n+1) = 26471025 .
(26471025 * 2500) / (162000* 162000) = 2.52
e = 2.7
. I can see how the pyramid is formed:
put 1's down the sides,
then for each adjacent pair in a row,
eg, for 1 2 1
see the pairs (1 2) (2 1)
add the pair and put the result between them
on the row below: 1 3 3 1 .


free textbooks or coarseware

7.23: web.adds/openware/free textbooks or coarseware:
I got this list from knowledgeoftoday.org and tested links: 
. when a site offered a catalog of subjects,
sometimes I would try the CS or software development .


multi-object modifications

1.15: 6.12: adda/oop/multi-object modifications:
. the object notation: "( object`operation )
is saying that the given object is modifying itself;
whereas, if no modification was expected,
the preferred syntax would be  "( operation(object) ).


flatworldknowledge.com's college textbooks #openware

6.1: adds/openware/flatworldknowledge.com's college textbooks:
flatworldknowledge.com's intro for authors:
Who is Flat World Knowledge?:
. it was started by long-time publishing execs
driven by their conviction that the
old model was broken,
and that there was a better way to serve
authors, faculty, and students
based on the open textbook:
it is the same high-quality, peer-reviewed,
professionally edited & developed book,
with supplements such as test banks,
instructor manuals, and lecture slides,
but published under a Creative Commons license:


differentiate parameters under the integral sign

16: math/differentiate parameters under the integral sign:
"Surely You're Joking, Mr. Feynman!", p72:
That book [Woods`Advanced Calculus]
also showed how to
differentiate parameters under the integral sign
--it's a certain operation. It turns out
that's not taught very much in the universities;
they don't emphasize it.
But I caught on how to use that method,
and I used that one damn tool again and again.
So because I was self-taught using that book,
I had peculiar methods of doing integrals.