- Nov 2019
-
github.com github.com
-
the abstraction I wished to have was a sort of a pure functional Vim, completely decoupled from terminal UI - where 'vim' is a function of (editor state, input) => (new editor state)
Tags
Annotators
URL
-
-
dplyr.tidyverse.org dplyr.tidyverse.org
-
enquo() uses some dark magic to look at the argument, see what the user typed, and return that value as a quosure
-
-
rubykaigi.org rubykaigi.org
-
www.wildnoodle.com www.wildnoodle.com
-
Online Coding Challenges for Better Programming Skills
-
-
www.wildnoodle.com www.wildnoodle.com
-
Evaluate Talent with Employee Assessment Tools
-
- Oct 2019
-
stackoverflow.blog stackoverflow.blog
-
stackoverflow.blog stackoverflow.blog
-
github.com github.com
-
www.hanselman.com www.hanselman.com
-
If you love Ruby, you'll enjoy CoffeeScript as it makes the JavaScript more like the Ruby.
-
-
itrevolution.com itrevolution.com
-
In 2017, I rewrote it again as a ClojureScript application, and it was only 500 lines of code! Holy cow!!!
going from 3k obj-c to 1,5k js to 0.5k in cljs!
-
-
www.quora.com www.quora.com
-
github.com github.com
-
For example the following pattern: (let [x true y true z true] (match [x y z] [_ false true] 1 [false true _ ] 2 [_ _ false] 3 [_ _ true] 4)) ;=> 4 expands into something similar to the following: (cond (= y false) (cond (= z false) (let [] 3) (= z true) (let [] 1) :else (throw (java.lang.Exception. "No match found."))) (= y true) (cond (= x false) (let [] 2) :else (cond (= z false) 3 (= z true) 4 :else (throw (java.lang.Exception. "No match found.")))) :else (cond (= z false) (let [] 3) (= z true) (let [] 4) :else (throw (java.lang.Exception. "No match found.")))) Note that y gets tested first. Lazy pattern matching consistently gives compact decision trees. This means faster pattern matching. You can find out more in the top paper cited below.
Tags
Annotators
URL
-
- Sep 2019
-
mobx.js.org mobx.js.org
-
reactions bridge reactive and imperative programming
Tags
Annotators
URL
-
-
en.wikipedia.org en.wikipedia.org
-
web.archive.org web.archive.org
-
The problem with the annotation notion is that it's the first time that we consider a piece of data which is not merely a projection of data already present in the message store: it is out-of-band data that needs to be stored somewhere.
could be same, schemaless datastore?
-
many of the searches we want to do could be accomplished with a database that was nothing but a glorified set of hash tables
Hello sql and cloure.set ns! ;P
-
There are objects, sets of objects, and presentation tools. There is a presentation tool for each kind of object; and one for each kind of object set.
very clojure-y mood, makes me think of clojure REBL (browser) which in turn is inspired by the smalltalk browser and was taken out of datomic (which is inspired by RDF, mentioned above!)
-
-
clojure.org clojure.org
-
That said, most Clojure programs begin life as text files, and it is the task of the reader to parse the text and produce the data structure the compiler will see
clojure compiler sees (real) clojure i.e. programs as clojure data structures (we) humans see clojure in their (semi-incidental) representation in text readers bridges the gap
Now, why semi- incidental? It's not necessary for clojure to be text but it is necesserry for it to be represented as some kind of symbolic representations for humans. It's pretty much always text
Tags
Annotators
URL
-
- Aug 2019
-
www.math3ma.com www.math3ma.com
-
Good general theory does not search for the maximum generality, but for the right generality.
Especially true in practical programming
-
-
medium.com medium.com
-
I was so fed up of the mega amounts of boilerplate with Redux and the recommendation of keeping your data loading at view level. It seems to me that things like this, with components being responsible for their own data, is the way to go in the future.
-
-
github.com github.com
-
github.com github.com
-
Null Coalescing Operator
-
- Jun 2019
-
www.kitten-technologies.co.uk www.kitten-technologies.co.uk
-
Entities are the applications, services, and files in the ARGON worldview
smalltalk objects
-
-
mitpressonpubpub.mitpress.mit.edu mitpressonpubpub.mitpress.mit.edu
-
In 1947, a high-flying moth bumped into Harvard’s Mark II Aiken Relay Calculator, was removed by computer operator William Burke, and then taped to the computer log - popularizing the existing term “debugging.”Figure 4: debugging
-
- May 2019
-
www.gowitek.com www.gowitek.com
-
Go Programming Language publicly in 2009 they were also looking to solve certain challenges of the existing Computer languages. Of the many features that it demonstrated (we will get to those soon enough) it was also helpful in addressing the strange dilemma of hardware and software that was emerging.
Golang is a modern computing language, designed especially for modern computing needs.
-
-
danluu.com danluu.com
-
we process millions of transactions per day here and we really need someone with more relevant experience who can handle these things without ramping up
Tags
Annotators
URL
-
-
news.ycombinator.com news.ycombinator.com
-
I want to stop putting comments in my code. I want it to be first-class for my code to be in the left pane and my comments to be in the right pane, always binded together with anchors but always separate so my comments don't have to adhere to the limitations of the code's text area.
emacs--annotate.el
-
- Apr 2019
-
blog.socialcops.com blog.socialcops.com
-
Interesting data science / development / technology blog from an Indian Start up
-
- Mar 2019
-
zeroequalsfalse.press zeroequalsfalse.press
- Feb 2019
-
github.com github.com
-
(if (instance? Throwable ret)
catching both
Throwable
s: Errors and Exceptions
-
-
github.com github.com
-
:ok
nice, return value: keyword!
-
(fn [system] (throw (ex-info "initializer not set, did you call `set-init`?" {}))))
interesting pattern, default function throws kind of like abstract base classes methods in python
-
-
www.theatlantic.com www.theatlantic.com
-
The Women Who Contributed to Science but Were Buried in Footnotes
-
-
en.wikipedia.org en.wikipedia.org
-
for example, comments and identifiers
Some better illustrated examples can be found in UBCx: SoftConst2x - Software Construction: Object Oriented Design's course lecture on Coupling.
-
- Jan 2019
-
courses.edx.org courses.edx.org
-
If one object is part of another object, then we use a diamond at the start of the arrow (next to the containing object), and a normal arrow at the end.
Another way of thinking of this is, if the original owner (source) object and the owned (target) object share the same life cycle -- that is, the owned exists only when the owner does -- we say that the owner aggregates owned object(s). They share a whole-part relationship.
What I did like very much about the video, was when the instructor pointed out that there's a small fallacy: aggregation, in OOD, does not really imply that owned object(s) must be a list.
-
-
www.bitwig.com www.bitwig.com
-
Grid devices can be nested or layered along with other devices and your plug-ins,
Thanks to training for Cycling ’74 Max, had a kind of micro-epiphany about encapsulation, a year or so ago. Nesting devices in one another sounds like a convenience but there’s a rather deep effect on workflow when you start arranging things in this way: you don’t have to worry about the internals of a box/patcher/module/device if you really know what you can expect out of it. Though some may take this for granted (after all, other modular systems have had it for quite a while), there’s something profound about getting modules that can include other modules. Especially when some of these are third-party plugins.
-
-
docs.oracle.com docs.oracle.com
-
after the terminal operation of the stream pipeline commences.
Above is because of the nature of
Stream
s in general: they are lazily executed (or put another way, execution is delayed until the latest convenient method call).
-
- Dec 2018
-
clojureverse.org clojureverse.org
-
Full disclosure: I’m a co-maintainer of clj-time and I’m pretty vocal about encouraging people not to use clj-time when starting a new project: use Java Time instead. Conversion from an existing, clj-time-heavy project is another matter tho’, unfortunately.
sean cornfield co-mainainter of clj-time use Java.Time
-
- Nov 2018
-
evalapply.io evalapply.io
-
Meditation can not only provide a welcome counterweight to this work with abstractions, it also cultives 10 qualities of character (Pali: paramis) that are useful during the practice of programming.
Generosity Morality Renunciation Understanding Effort Patience/tolerance Truthfulness Loving-kindness Equanimity
-
-
www.reddit.com www.reddit.com
-
One thing Component taught me was to think of the entire system like an Object. Specifically, there is state that needs to be managed. So I suggest you think about -main as initializing your system state. Your system needs an http client, so initialize it before you do anything else
software design state on the outside, before anything else lessions from Component
-
For the sweet spot you're looking for, I suggest being clear about if you're designing or developing. If you're designing and at the REPL, force yourself to step away with pen and paper after you've gotten some fast feedback.
designing vs developing!
-
-
rymndhng.github.io rymndhng.github.io
-
Re-open libraries for exploration I use in-ns to jump into library namespaces and re-define their vars. I insert bits of println statements to help understand how data flows through a library. These monkey-patches only exist in the running REPL. I usually put them inside a comment form. On a REPL restart, the library is back at its pristine state. In this example below, I re-open clj-http.headers to add tracing before the header transformation logic: [source] ;; set us up for re-opening libraries (require 'clj-http.headers) (in-ns 'clj-http.headers) (defn- header-map-request [req] (let [req-headers (:headers req)] (if req-headers (do (println "HEADERS: " req-headers) ;; <-- this is my added print (-> req (assoc :headers (into (header-map) req-headers) :use-header-maps-in-response? true))) req))) ;; Go back to to the user namespace to test the change (in-ns 'user) (require '[clj-http.client :as http]) (http/get "http://www.example.com") ;; This is printed in the REPL: ;; HEADERS: {accept-encoding gzip, deflate} An astute observer will notice this workflow is no different from the regular clojure workflow. Clojure gets out of your way and allows you to shape & experiment in the code in the REPL. You can use this technique to explore clojure.core too!
explore library code in the repl in-ns and the redefinition
-
Unmap namespaces during experimentation I use ns-unmap and ns-unalias to remove definitions from my namespace. These are the complementary functions of require and def. While exploring, you namespace will accrue failed experiments, especially around naming. Instead of using a giant hammer [tools.namespace], you can opt for finer-grained tools like these. Example: (require '[clojure.string :as thing]) (ns-unalias *ns* 'thing) ; *ns* refers to the current namespace
cleaning up the namespace fro repl experimentation
-
-
lispcast.com lispcast.com
-
That is using a specific tool for a specific use case. You don’t actually have a table view of your data. Once it’s in a table, man, you’re good. That is the modeling. A sequel database table, you have this amazing high-level language for doing all sorts of cool operations with it.To turn this into some class hierarchy, it’s almost criminal. There, I said it. It’s like you’re throwing away the power that you have.
about a situation when you sometime want an is-a relationship but in most cases just have it as loosely structured (table-like) data format
-
- Oct 2018
-
twitter.com twitter.com
-
A lot of this would be a non issue if we had end user programming. The problem today is that 'configurability' is itself something the programmer needs to implement
acme example rob pike apparently had an elaborate answer as to why he wouldn't allow to change the colorschme
-
Configuration knowledge is anti-knowledge -- learning how to conform to the inessential quirks of a system somebody else made up
good take on configuration
-
1 reply 1 retweet 5 likes Reply 1 Retweet 1 Retweeted 1 Like 5 Liked 5 Direct message Omar Rizwan @rsnous Feb 16 More Copy link to Tweet Embed Tweet Mute @rsnous Unmute @rsnous Block @rsnous Unblock @rsnous Report Tweet Add to other Moment Add to new Moment Replying to @rsnous @disquiet07 files are a weak lowest-common-denominator interface between programs in different languages (C, Python, Ruby, Swift, VB, bash, etc) in ecosystems with one language (iOS, JS, Lisp, Smalltalk), you often don't see files: you just persist the rich native structures of the language 4 replies 2 retweets 16 likes Reply 4 Retweet 2 Retweeted 2 Like 16 Liked 16 Direct message Gordon Brander @gordonbrander 3h3 hours ago More Copy link to Tweet Embed Tweet Mute @gordonbrander Unmute @gordonbrander Block @gordonbrander Unblock @gordonbrander Report Tweet Add to other Moment Add to new Moment Replying to @rsnous @disquiet07 OTOH — lowest common denominator interfaces allow for emergent behavior. They focus all the constraints in one place, leaving the rest of the system definition open-ended. Like defining the LEGO dot, but not what shape pieces may take. 1 reply 0 retweets 3 likes Reply 1 Retweet Retweeted Like 3 Liked 3 Direct message Omar Rizwan @rsnous 2h2 hours ago More Copy link to Tweet Embed Tweet Mute @rsnous Unmute @rsnous Block @rsnous Unblock @rsnous Report Tweet Add to other Moment Add to new Moment Replying to @gordonbrander @disquiet07 With files, imo the lack of structure 1. forces duplication of functions at the app level (de/serialization, cross-links, …) and 2. prevents coordination for higher-level behavior #1 here seems different from LEGO, but I can't quite articulate it in terms of your analogy 1 reply 0 retweets 2 likes Reply 1 Retweet Retweeted Like 2 Liked 2 Direct message Gordon Brander @gordonbrander 2h2 hours ago Follow Follow @gordonbrander Following Following @gordonbrander Unfollow Unfollow @gordonbrander Blocked Blocked @gordonbrander Unblock Unblock @gordonbrander Pending Pending follow request from @gordonbrander Cancel Cancel your follow request to @gordonbrander More Copy link to Tweet Embed Tweet Mute @gordonbrander Unmute @gordonbrander Mute this conversation Unmute this conversation Block @gordonbrander Unblock @gordonbrander Report Tweet Add to other Moment Add to new Moment Replying to @rsnous @disquiet07 I agree. Low-level interop has a high floor, high ceiling. Higher-level interop (like Smalltalk) has lower floors, because deeper system integration. However, that deeper integration often means you end up more entangled with the system’s strengths and weaknesses.
-
-
fqa.9front.org fqa.9front.org
-
Rob Pike has described Plan 9 as "an argument" for simplicity and clarity, while others have described it as "UNIX, only moreso."
idea of a system as an argument pointed out by: https://twitter.com/rsnous/status/1054631468142493696
Tags
Annotators
URL
-
-
-
In computer science and logic, a dependent type is a type whose definition depends on a value. A "pair of integers" is a type. A "pair of integers where the second is greater than the first" is a dependent type because of the dependence on the value.
this is not the most impressive defitnition but it does the job ;) it's more like "relational types" where type definitions include relations between potential values
-
On the flip side, it can go further than mere types, including emulating dependent types and programming-by-contract.
spec though it's used at runtime (not compile time)
- hence: not a replacement for types as such BUT
- enables dependent types
- programming by contract
Tags
Annotators
URL
-
-
www.paulgraham.com www.paulgraham.com
-
Perhaps part of the confusion - and you say this in a different way in your little memo - is that the C/C++ folks see OO as a liberation from a world that has nothing resembling a first-class functions, while Lisp folks see OO as a prison since it limits their use of functions/objects to the style of (9.). In that case, the only way OO can be defended is in the same manner as any other game or discipline -- by arguing that by giving something up (e.g. the freedom to throw eggs at your neighbor's house) you gain something that you want (assurance that your neighbor won't put you in jail).
[9] "Sum-of-product-of-function pattern - objects are (in effect) restricted to be functions that take as first argument a distinguished method key argument that is drawn from a finite set of simple names."
-
Sum-of-product-of-function pattern - objects are (in effect) restricted to be functions that take as first argument a distinguished method key argument that is drawn from a finite set of simple names.
fwiu: the "finte set of simple names" are all the objects defined in the codebase e.g. in java there are no functions as such just methods attached to classes i.e. "their key argument"
-
All you can do is send a message (AYCDISAM) = Actors model - there is no direct manipulation of objects, only communication with (or invocation of) them. The presence of fields in Java violates this.
from what I understand in Java... there are some variables on classes (class instances) that are only acessible through methods and for those the "only send message" paradigm holds but there are also fields which are like attributes in python which you can change directly
-
Parametric polymorphism - functions and data structures that parameterize over arbitrary values (e.g. list of anything). ML and Lisp both have this. Java doesn't quite because of its non-Object types.
generics so you've got a "template" collection e.g. Collectoin<animal> and you parametrise it with the Animal type in this example how is that broken by "non-Object types" in java</animal>
-
Ad hoc polymorphism - functions and data structures with parameters that can take on values of many different types.
does he mean that list in python is polymorphic because it can be list of integers or string or ... ?
-
Encapsulation - the ability to syntactically hide the implementation of a type. E.g. in C or Pascal you always know whether something is a struct or an array, but in CLU and Java you can hide the difference.
is this because:
- interfaces--contextually identical (because satisfy common set of behaviours)?
- or being wrapped in objects (thus blurring the difference)?
Tags
Annotators
URL
-
-
en.wikipedia.org en.wikipedia.org
-
Following Christopher Strachey,[2] parametric polymorphism may be contrasted with ad hoc polymorphism, in which a single polymorphic function can have a number of distinct and potentially heterogeneous implementations depending on the type of argument(s) to which it is applied. Thus, ad hoc polymorphism can generally only support a limited number of such distinct types, since a separate implementation has to be provided for each type.
kind of like clojure multimethods but those can dispatch on arbitary function hence arbitrary "property"
-
In programming languages and type theory, parametric polymorphism is a way to make a language more expressive, while still maintaining full static type-safety. Using parametric polymorphism, a function or a data type can be written generically so that it can handle values identically without depending on their type.[1] Such functions and data types are called generic functions and generic datatypes respectively and form the basis of generic programming.
so essentially this is just a way to escape the contrains of types--overspecifying the type of argument for e.g. append function
I guess the behaviour implement cannot really implement on the type of value
-
-
www.reddit.com www.reddit.com
-
One is the linked list of lines you mention. I believe this is intended to solve a display problem that TECO (the original language in which Emacs was implemented) had solved differently using the "gap" data structure. The fundamental issue was that if you have a buffer represented as a single block of contiguous text, then insertion on a character-by-character basis can be O(n2), each time you insert a character, you have to copy the entire subsequent buffer over one space.
implementation, performence of text entry
-
Lisp macros were also useful for the definition of new control structures, as well as new data structures. In ZWEI, we created a new iterative control structure called charmap, which iterates over characters in an interval. Intervals are stored as doubly-linked lists of arrays, and the starting point might be in the middle of one array and the ending point might be in the middle of another array. The code to perform this iteration was not trivial, and someone reading it might easily not understand the function it was performing, even though that function was the conceptually simple one of iterating over characters. So we created a macro called charmap that expands into the double-loop code to iterate over the characters. It is simple and obvious, and is used in many places, greatly reducing the size of the code and making the functionality obvious at a glance.
use of macros implementing data structures making things more readable!
-
It became policy to avoid abbreviations in most cases. In ZWEI, we made a list of several words that were used extremely often, and established 'official' abbreviations for them, and always used only those abbreviations. ... Words not on this list were always spelled out in full.
abbreviations whitelist - good programming practice!
-
Some paragraphs are devoted to what must have been a novel concept at the time for such a system: that the Lisp Machine was a personal system, not time-shared, and this gave rise to features not viable on time-sharing systems, due to the fact that the user was not contending with other users for resources.
personal computers as novel concept (vs time sharing) and what it enables
-
-
medium.freecodecamp.org medium.freecodecamp.org
-
digitalcommons.library.tmc.edu digitalcommons.library.tmc.edu
-
Wehler et al38 reported that homeless and low-income mothers who experienced sexual assault in childhood were over 4 times more likely to have household level food insecurity than women who had not been abused
Esto es un ejemplo de "Programming" por eventos en la niñez que pueden tener implicaciones en el curso de la vida. Es como un tipo de predisposición, ya que una mujer que ha sido abusada sexualmente está cuatro veces más propensa a tener un hogar con inseguridad alimentaria.
-
-
-
- Sep 2018
-
github.com github.com
-
Use React for ephemeral state that doesn't matter to the app globally and doesn't mutate in complex ways. For example, a toggle in some UI element, a form input state. Use Redux for state that matters globally or is mutated in complex ways. For example, cached users, or a post draft. Sometimes you'll want to move from Redux state to React state (when storing something in Redux gets awkward) or the other way around (when more components need to have access to some state that used to be local).
Tags
Annotators
URL
-
-
www.imn.htwk-leipzig.de www.imn.htwk-leipzig.de
-
Alternativas en Haskell a las listas como contenedores.
-
- Aug 2018
-
gist.github.com gist.github.com
- Jun 2018
-
forumpa-librobianco-innovazione-2018.readthedocs.io forumpa-librobianco-innovazione-2018.readthedocs.io
-
Raccomandazione 3.6g - Definire un modello di governance del dato e progettare automatismi organizzativi e tecnologici
ogni applicativo gestionale in uso nelle Pubbliche Amministrazioni centrali e locali DEVE(!) fare uso di [API (Application Programming Interface)] (https://pianotriennale-ict.readthedocs.io/it/latest/search.html?check_keywords=yes&area=default&q=api) al fine di pubblicare, in modalità automatica, dati tematici aggiornati in tempo reale. Senza l'uso di API pubbliche (e documentate) non ci sarà mai un sistema di dati pubblici in formato aperto su cui poter fare riferimento per creare qualsiasi tipo di riuso costante ed utile alla società e per la nascita di nuove forme di economia. Senza API pubbliche continueranno ad esserci soltanto isolati esercizi di stile di qualche rara Pubblica Amministrazione (nel contesto nazionale) sensibile alla pubblicazione dei dati, soltanto perchè fortunatamente vede al suo interno del personale dirigente/dipendente sensibile culturalmente all'obbligo (non sanzionato in caso di non rispetto) della pubblicazione dei dati.
Oggi (2018) l'uso delle API pubbliche nei software delle PA non va raccomandato, va imposto! Diversamente si continua a giocherellare come si fa per ora. Ma niente dati di qualità e su cui fare riferimento senza API pubbliche nei software della PA!
-
-
racket-lang.org racket-lang.org
-
-
github.com github.com
-
onDragStart
Pass in
onDragStart
and you should be good to go!
Tags
Annotators
URL
-
- May 2018
-
www.toptal.com www.toptal.com
-
This behavior also argues for following the convention of placing an opening curly brace at the end of a line in JavaScript, rather than on the beginning of a new line. As shown here, this becomes more than just a stylistic preference in JavaScript.
I was on the righteous side all those years! Yey!
Tags
Annotators
URL
-
-
hypothes.is hypothes.is
-
hi there please check on the Recent Updated SAS Training and Tutorial Course which can explain about the SAS and its integration with the R as well so please go through the Link:-
Tags
Annotators
URL
-
- Apr 2018
-
rxmarbles.com rxmarbles.com
Tags
Annotators
URL
-
-
play.elevatorsaga.com play.elevatorsaga.com
Tags
Annotators
URL
-
-
typeclasses.com typeclasses.com
-
(== 10)
This confused me. I'm relatively new to Haskell and did not know about sectioning. After learning that detail, this makes sense as a (right) partial application of the
(==)
function.
Tags
Annotators
URL
-
- Mar 2018
-
mobile-process-calculi-for-programming-the-new-blockchain.readthedocs.io mobile-process-calculi-for-programming-the-new-blockchain.readthedocs.io
-
Lucius Gregory Meredith, Mike Stay, and Sophia Drossopoulou. Policy as types. CoRR, 2013. URL: http://arxiv.org/abs/1307.7766.
I think I have my head around this one now.
-
-
homepages.inf.ed.ac.uk homepages.inf.ed.ac.uk
-
C-H for pi calculus
-
-
www.infoworld.com www.infoworld.com
-
type-safe enum pattern
a.k.a. Strongly typed enum pattern
-
-
en.wikipedia.org en.wikipedia.org
-
a mutator method is a method used to control changes to a variable. They are also widely known as setter methods
For example, a method definition in Java would be:
class MyClassDef { public void setProperty(String propertyVal) { .. } }
For above, setProperty(..) method is the mutator
-
-
halide-lang.org halide-lang.orgHalide1
-
-
web-static-aws.seas.harvard.edu web-static-aws.seas.harvard.edu
-
CS 252r: Advanced Topics in Programming Languages by Stephen Chong
-
-
www.gnu.org www.gnu.org
-
In a let expression, the initial values are computed before any of the variables become bound.
let binding 先在当前环境中计算所有 init 表达式的值, 再 bind varible, 最后在扩展的环境中计算 expression
let* 按顺序依次计算 init 并进行 binding
letrec 则先 binding 后再计算 init 允许递归定义
-
-
www.gnu.org www.gnu.org
-
Scheme pairs is the “dotted” notation (c1 . c2)
Scheme 中 pair 的记号
-
-
www.gnu.org www.gnu.org
-
statically scoped language
scheme 是静态作用域编程语言
-
-
mozart.github.io mozart.github.io
-
Oz
-
- Jan 2018
-
12factor.net 12factor.net
-
There is only one codebase per app, but there will be many deploys of the app
Typically Terraform violates the spirit of this principle. Though each deploy may be defined (typically as an environment) in the same repo, the codebase is different. We work around this making heavy use of modules to limit divergence between deploys.
Tags
Annotators
URL
-
-
en.wikipedia.org en.wikipedia.org
-
Dynamic dispatch
a.k.a. Dynamic Method Dispatch
-
- Dec 2017
-
chris.beams.io chris.beams.io
-
picking one and sticking to it is far better than the chaos that ensues when everybody does their own thing
-
-
-
Most of the recent advances in AI depend on deep learning, which is the use of backpropagation to train neural nets with multiple layers ("deep" neural nets).
Neural nets consist of layers of nodes, with edges from each node to the nodes in the next layer. The first and last layers are input and output. The output layer might only have two nodes, representing true or false. Each node holds a value representing how excited it is. Each edge has a value representing strength of connection, which determines how much of the excitement passes through.
The edges in an untrained neural net start with random values. The training data consists of a series of samples that are already labeled. If the output is wrong, the edges are adjusted according to how much they contributed to the error. It's called backpropagation because it starts with the output nodes and works toward the input nodes.
Deep neural nets can be effective, but only for single specific tasks. And they need huge sets of training data. They can also be tricked rather easily. Worse, someone who has access to the net can discover ways of adding noise to images that will make the net "see" things that obviously aren't there.
-
-
blog.prototypr.io blog.prototypr.io
-
A mental map (or cognitive map) is our mental representation of a place. It includes features we consider important, and is likely to exclude features we consider unimportant.
(Urban planner Kevin Lynch, early 1960s)<br> Elements of mental maps
- paths
- edges - boundaries and endings
- nodes - focal points like squares and junctions
- districts
- landmarks
Modern maps could use augmented and virtual reality to help clarify those elements, making a place easier to navigate and use. But they can also add useless noise that makes the place seem more confusing than it actually is.
-
- Nov 2017
-
eecs481.org eecs481.org
-
officially-approvedprogramminglanguagesatGoogle:C++,Java,Python,Go,orJavaScript.Minimizingthenumberofdifferentprogramminglanguagesusedreducesobstaclestocodereuse and programmer collaboration.
Googleの承認済みプログラム言語
-
-
www.datacamp.com www.datacamp.com
-
Data analysis can be a very useful tool in software development.
-
- Oct 2017
-
dmlcentral.net dmlcentral.net
-
Why is all the focus on teaching lay people how to code, and not teaching computer scientists and people who work in tech companies to center empathy and humanity in their work?
. . .
I think there should be an element of infusing discussions of ethics, humanity and social consequences into computer science curricula, and I believe that even human-centered design does not go far enough; I suggest that designers of tech consider more “empathetic and participatory design” where there is some degree of involving people who are not in the tech company as autonomous persons in product design decisions, and not just using them as research/testing subjects.
-
-
wiki.c2.com wiki.c2.com
-
- Sep 2017
-
blog.vinceliu.com blog.vinceliu.com
-
but the true technology of Java is not in the language, but the virtual machine itself. The JVM as it stands today, is a fast, abstract machine that you can plug any languages into, and is able to operate at speeds comparable to natively compiled binaries.
This is something really neat to ponder at... Thank you for your insight!
Tags
Annotators
URL
-
-
github.com github.com
Tags
Annotators
URL
-
-
www.scala-sbt.org www.scala-sbt.org
-
echo "deb https://dl.bintray.com/sbt/debian /" | sudo tee -a /etc/apt/sources.list.d/sbt.list sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2EE0EA64E40A89B84B2DF73499E82A75642AC823 sudo apt-get update sudo apt-get install sbt
-
-
github.com github.com
-
hm. lots of moving parts. Doesn't give the minimal / orthogonal feel of kernel monte + safeScope. No Near / Far refs?
(describe any?) goes to stdout - ambient!
Tags
Annotators
URL
-
-
-
spotter: NG
Tags
Annotators
URL
-
- Aug 2017
-
clojure.org clojure.org
-
Since Clojure uses the Java calling conventions, it cannot, and does not, make the same tail call optimization guarantees. Instead, it provides the recur special operator, which does constant-space recursive looping by rebinding and jumping to the nearest enclosing loop or function frame. While not as general as tail-call-optimization, it allows most of the same elegant constructs, and offers the advantage of checking that calls to recur can only happen in a tail position.
Clojure's answer to the JVM's lack to tail call optimization
-
-
volftp.tiscali.it volftp.tiscali.it
-
purelyfunctional.tv purelyfunctional.tv
-
“Programming is like thinking about thinking. And debugging is a close approximation of learning about learning.” When you program, you translate your thoughts into executable form. Debugging your program is close to debugging your thoughts.
This suggests that programming is a form of metacognition. Others have had similar ideas:
-
The thrill of programming, for me, is found more in the exploration of ideas than in the joy of controlling machines.
This is something that I can relate to. I tend to program as I learn a subject that I eventually want to write real programs for, as an aide to understanding. It helps me grok how things work in the new domain. It also helps me retain the new information.
-
-
cosette.cs.washington.edu cosette.cs.washington.edu
-
Cosette - an automated prover for checking equivalence of SQL queries. From the Database Group at the University of Washington.
Tags
Annotators
URL
-
-
blog.archive.org blog.archive.org
-
codeburst.io codeburst.io
-
Pros and cons of pair programming.
-
- Jul 2017
-
wiki.c2.com wiki.c2.com
-
Other Java Tutorials and Learning Sites
-
-
www.pobonline.com www.pobonline.com
-
there are two different measurements for the length of a foot in the United States: the International Foot (also commonly called the foot) and the U.S. Survey Foot. The International Foot (which we were all taught in school) is defined as 0.3048 meters, whereas the U.S. Survey Foot is defined as 0.3048006096 meters. The difference of the two equates to 2 parts per million.
For example, in a measurement of 10,000 feet, the difference would be 0.02 feet (just less than one-quarter of an inch). In a measurement of 1 million feet, the difference is 2 feet.
-
-
www.edx.org www.edx.org
-
Introduction to R for Data Science
Data analysis course using R
-
-
www.datacamp.com www.datacamp.com
-
Learn Data Science Online
Data analysis courses using R and Python
Tags
Annotators
URL
-
-
runestoneinteractive.org runestoneinteractive.org
-
Runestone Interactive
Interactive textbooks on programming
-
- Jun 2017
-
-
Emergent AI does not suggest that the computer be given rules to follow but tries to set up a system of independent elements within a computer from whose interactions intelligence is expected to emerge. Its sustaining images are drawn, not from the logical, but from the biological. Families of neuron-like entities, societies of anthropomorphized subminds and sub-subminds, are in a simultaneous interaction whose goal is the generation of a fragment of mind. We noted that these models are sometimes theorized in notions of "mind as society," where negotiational processes are placed at the heart of all thinking. Those who espouse and support such models are more inclined to find bricolage acceptable than are classical Piagetians. What concerns us here is not which of these trends in AI is "correct," just as we aren't advocating a choice between the use of icons and the use of textual instructions in computer operating systems. What does concern us is that the new trends -- icons, object-oriented programming, actor languages, society of mind, emergent AI -- all create an intellectual climate in the computational world that undermines the idea that formal methods are the only methods.
-
As it happens, the Macintosh's iconic style may be winning this argument. The designers of computer interfaces might interpret this as final proof of the technical superiority of icons. A psychologist might read it as putting in question the hard/soft split. Perhaps everyone is really "soft" after all, and "hard" is a construct that is dropped when it is not needed for acceptability or prestige or functionality. Others might simply say that icons are "easier." All of the above may be in part true. But from our perspective what is important is that the iconic victories are part of a larger cultural shift towards an acceptance of concrete, relational ways of thinking.
-
Music students live in a culture that, over time, has slowly grown a language and models for close relationships with music machines. The harpsichord, like the visual artists' pencils, brushes, and paints, is "just a tool." And yet we understand that artists' encounters with these can (and indeed, will most probably) be close, sensuous, and relational. And that artists will develop highly personal styles of working with them.
-
The computer presence has provoked a "romantic reaction" in our culture.24 As people take computers seriously as simulated mind, many are in conflict with the mechanistic image that is reflected back to them in the mirror of the machine. They define the specificity of people in terms of what computers cannot do. Simulated thinking may be thinking, but simulated love is never love. Women express this sentiment with particular urgency. We believe this is because a conflict fuels their conviction. A comfortable style of thinking would have them get close to the objects of thought. The computer offers them objects of thought. But the closer they get to this machine, the more anxious they feel. The more they become involved with the computer, the more they insist that it is only a neutral tool. A way out of the impasse would require profound change in the culture that surrounds the computer tool. If the computer is a tool, and of course it is, is it more like a hammer or more like a harpsichord?
-
The development of a new computer culture would require more than technological progress and more than environments where there is permission to work with highly personal approaches. It would require a new and softer construction of the technological, with a new set of intellectual and emotional values more like those we apply to harpsichords than hammers.25 If computers are really the tools we use to write, to design, to play with ideas and shapes and images, they should not be addressed with the language of desktop calculators. Moving out of the impasse also would require the reconstruction of our cultural assumptions about hard logic as the "law" of thought. Addressing this question brings us full circle to where we began, with the assertion that epistemological pluralism is a necessary condition for a more inclusive computer culture.
-
Our central thesis is that equal access to even the most basic elements of computation requires an epistemological pluralism, accepting the validity of multiple ways of knowing and thinking.
-
- May 2017
-
github.com github.com
-
"who's the target of the assignment (LHS)" and "who's the source of the assignment (RHS)".
LHS is looking for the target of that assignment whiel RHS is looking for the source!
-
-
ronaldduncan.wordpress.com ronaldduncan.wordpress.com
-
ASCII was designed with four delimiter characters:<br> 31 Unit Separator<br> 30 Record Separator<br> 29 Group Separator<br> 28 File Separator
-
- Apr 2017
-
www.kickstarter.com www.kickstarter.com
-
A fun, language-less educational robot that teaches the concepts of coding. Arrange the command panels to guide the robot to the goal!
-
-
scripting.com scripting.com
-
Dave Winer points out that interoperability of software is important. Don't shun an existing standard just because you think your way is better. If you hate using some standard technology, find or write a module to convert between the standard and your preferred format.
-
-
medium.freecodecamp.com medium.freecodecamp.com
-
JavaScript's var, let, const, and variable hoisting.
-
-
www.quora.com www.quora.com
-
Alan Kay is on quora.
-
-
emaren84.github.io emaren84.github.io
-
결국 메타언어에 존재하는 정보를 프로그래밍 언어에 합리적으로 추가하면, 더 유용하게 사용할 수 있다.
-
-
-
Eric Elliott on taking, and giving, tech interviews for programmers and web developers.
-
- Mar 2017
-
whynotfireworks.com whynotfireworks.com
-
Suggestion for a programming language in which commands are displayed as comic strip panels, with each one showing the output up to that point.
-
-
awjin.github.io awjin.github.ioHome1
-
Dynamic Programming
Here's another article, with a different point-of-view on this subject.
Tags
Annotators
URL
-
-
programming.guide programming.guide
-
Should I use tabulation or memoization?
A more detailed expansion on which approach to pick (and the reasons thereof) can be found here.
-
-
awjin.github.io awjin.github.io
-
Check out
Some other problems can be found in the quoted works section, for this paper/web page. For example, have a look here.
-
In this solution, we used memoization to recursively calculate the solutions for subproblems which we then used to calculate the solutions to larger problems. Alternatively, tabulation could have been used to build up solutions from the bottom up.
So, from the whole thing I take it that the problem has actually two parts: i.) a pre-processing part in which all paths have been explored (via memoization), and, ii). discover the optimal path to take, given the memoization table.
-
-
monte.readthedocs.io monte.readthedocs.io
-
This is the roadmap for Monte development according to Allen and Corbin.
-
-
introcs.cs.princeton.edu introcs.cs.princeton.edu
-
top-down dynamic programming
This approach is a (sort of) memoization approach.
-
- Jan 2017
-
ericchiang.github.io ericchiang.github.io
-
Building a container from scratch using Linux command line utilities. (For learning purposes.)
-
- Dec 2016
-
datascience.columbia.edu datascience.columbia.edu
-
Shuffler prevents certain hacking exploits by continuously scrambling the code of running programs.
http://www.cs.columbia.edu/~junfeng/papers/shuffler-osdi16.pdf
-
- Nov 2016
-
stephaniehurlburt.com stephaniehurlburt.com
-
A knack for programming can pull someone out of poverty. But first they need a computer. And it helps much more if they are introduced to people in the profession to mentor them and help them find a job.
-
- Oct 2016
-
simplestepscode.com simplestepscode.com
-
Several experts give nice advice on choosing personal projects as you learn Web development.
-
-
en.wikibooks.org en.wikibooks.org
Tags
Annotators
URL
-
- Sep 2016
-
clean-swift.com clean-swift.com
-
Isolate the dependencies Write the test first Draw the boundary Implement the logic
TDD steps
-
- Jul 2016
-
books.google.ca books.google.ca
-
Pages 7-8
Rockwell and Sinclair talk here about developing an “agile hermeneutics” by which they mean an approach to fast/extreme writing. An example of this is that they tried to write a short essay in one day from the initial research but they also do things such as working in pairs with one person typing and the others talking things through.
-
-
neil.fraser.name neil.fraser.name
-
Neil Fraser says Vietnam is doing well with computer science education.
"If grade 5 students in Vietnam are performing at least on par with their grade 11 peers in the USA, what does grade 11 in Vietnam look like? I walked into a high school CS class, again without any advance notice. The class was working on the assignment below (partially translated by their teacher for my benefit afterwards). Given a data file describing a maze with diagonal walls, count the number of enclosed areas, and measure the size of the largest one."
Tags
Annotators
URL
-
-
cdn.cs50.net cdn.cs50.net
-
#registration
same as CSS, # refers to element ID
-
input
which child element do you want to manipulate, separated with a space
-
[name=confirmation]
like an associative array, looking for where the attribute name = confirmation
-
-
cdn.cs50.net cdn.cs50.netWeek 93
-
.
[dot] operator to access elements like structs in C.
-
script src
Point to an external JavaScript file: http://www.w3schools.com/tags/att_script_src.asp
-
onsubmit attribute within our script, which we know is a valid event listener for a form element.
from the list of event listeners
-
-
-
I hear dollar sign underscore GET quote, unquote username.
"username" is the key, what $_GET returns will be the value.
key-value pair
-
- Jun 2016
-
dpcdsb.elearningontario.ca dpcdsb.elearningontario.ca
-
A class method can be called from the class itself.
This makes sense. If you're calling a class method from outside the class, you do the following 1 - Reference the class 2 - Use a dot operator to call the specific method.
-
-
gamedevelopment.tutsplus.com gamedevelopment.tutsplus.com
-
There are alternative ways to implement a game loop in JavaFX. A slightly longer (but more flexible) approach involves the Timeline class, which is an animation sequence consisting of a set of KeyFrame objects. To create a game loop, the Timeline should be set to repeat indefinitely, and only a single KeyFrame is required, with its Duration set to 0.016 seconds (to attain 60 cycles per second). This implementation can be found in the Example3T.java file in the GitHub repo.
-
-
www.apple.com www.apple.com
-
And because it’s built to take full advantage of iPad, it’s a first-of-its-kind learning experience.
Sure, we’ve heard that before. But there’s reason to be cautiously optimistic about this one.
-
-
blog.jessfraz.com blog.jessfraz.com
-
Jessie Frazelle's advice on saying "no" to patch requests for open source projects.
-
- May 2016
-
dpcdsb.elearningontario.ca dpcdsb.elearningontario.ca
-
in a UML diagram
the thing that the arrow goes down to
are those objects that extend the properties of the objects above it?
-
-
dpcdsb.elearningontario.ca dpcdsb.elearningontario.ca
-
How am I able to set the text of my label and the image??
-
-
dpcdsb.elearningontario.ca dpcdsb.elearningontario.ca
-
public void actionPerformed (ActionEvent evt){
What exactly is the action that you're hearing?
-
A static variable is shared by all objects.
Since the static variable odes not change between objects. Static information is available even when you don't have an object.
-
When you design your own classes, you can also include static methods, also called class methods. Class methods are declared with the word static. They can be invoked using the class name, without the need to create instances/objects.
-
-
dpcdsb.elearningontario.ca dpcdsb.elearningontario.ca
-
Why did I need to setVisible(true) after drawing?
-
-
dpcdsb.elearningontario.ca dpcdsb.elearningontario.caContent1
-
//Instance Variables private String name = ""; private String sex = ""; private int max_hit_points = 0; private current_hit_points = 0;
//Constructors Character (String name, String sex, int max_hit_points, int current_hit_points){ this.name = name; this.sex = sex; this.max_hit_points = max_hit_points; this.current_hit_points = current_hit_points; } Character ( ){ this.name = "harvester"; this.sex = "male"; this.max_hit_points = 50; this.current_hit_points = 0; }
The name, sex, and max_hit_points given to the Character constructor won't override what's in the class by default, will it?
-
-
dpcdsb.elearningontario.ca dpcdsb.elearningontario.ca
-
Class - Is the description or the blueprint of an object. Once a class is defined, we can create objects/instances of that class. A class name should be a noun, should begin with an uppercase letter, and each word within the name should also begin with an uppercase letter. Class names may not contain spaces.
Body of a class - The body of a class starts with an opening brace { and ends with a closing brace }. Member variables are declared after the opening brace, and outside of any methods. Class constructors and methods are coded within the opening brace { and closing brace }. Private variables and methods have a local scope ( visibility ), that extends from the opening brace of the class body to the closing brace. (see Encapsulation)
Constructor - A constructor is automatically called when an object is created. The constructor is were variables are initialized.
Getters - Getters or accessor methods are called to determine the value of a variable.
Setters - A setter or a modifier method is called to change the value of a variable.
Other Methods - We can include as many methods in the class as we like. Some useful methods are: toString(), equals(), clone(), draw(), etc.
Client Code - Refers to an application that uses one or more classes. The client can access the methods ot the class, but cannot directly access the data declared private in the class.
-
-
dpcdsb.elearningontario.ca dpcdsb.elearningontario.ca
-
label.repaint();
you cannot access the JFrame from in here esp. using this
-
this.addMouseListener (new MouseAdapter() {
adding a mouse listener to THE WINDOW
-
-
dpcdsb.elearningontario.ca dpcdsb.elearningontario.ca
-
The statements below placed in the main() method runs the GUI (Graphical User Interface) from an event dispatching-thread. GUIs should ve invoked from an event-dispatching thread to ensure that each event-handler finishes executing before the next one executes. Thorough coverage of this topic is beyond the scope of this lesson. However, the code shown is needed in every application that implements a Swing GUI.
-
A Swing timer (an instance of javax.swing.Timer) fires one or more action events after a specified delay. You can use Swing timers to perform a task repeatedly. For example, you might perform animation or update a component that displays progress toward a goal.
Swing timers are very easy to use. You create the timer, and you specify an action listener to be notified when the timer "goes off". The actionPerformed() method in this listener should contain the code for whatever task you need to be performed. To start the timer, call its start() method. In our example, the actionPerformed() method contains a call to the repaint() method. Basically this is how the paint() method is being called. We don't call paint() directly, we call repaint(), and the Java environment will run the paint() method.
-
-
dpcdsb.elearningontario.ca dpcdsb.elearningontario.ca
-
It makes sense that we do "addActionListener(this)" because this object is an action listener (We have implemented it, and made it a child of ActionListener. Someone (who?) calls actionPerformed upon an action event )
-
-
dpcdsb.elearningontario.ca dpcdsb.elearningontario.ca
-
g2.drawString("Hello world", 100, 100)
How does g2 know where to paint? Is it because it is in the JFrame object? And within the paint method?
-
this
this is whoever is drawing the object, in this case it is
this
, which is the panel itselfthe panel itself is the object we are inside of, (the one who called paint)
-
- fill
- setStroke
- setPaint
-
so whenever paint is called, it is passed an argument
g
which we then modify.so it paints based on what we have modified on the next run
-
super acts on the parent object.
So it is calling JFrame's (who is FirstFrame's parent-- FirstFrame inherits JFrame's properties (i.e: parent)) paint method.
-
-
dpcdsb.elearningontario.ca dpcdsb.elearningontario.ca
-
frame.setSize
Calling the object's method
-
super
If your method overrides one of its superclass's methods, you can invoke the overridden method through the use of the keyword super.
Here, we are invoking the superclass's constructor
-
-
stackoverflow.com stackoverflow.com
-
A class can only "implement" an interface. A class only "extends" a class. Likewise, an interface can extend another interface. A class can only extend one other class. A class can implement several interfaces.
Extends makes it a child, inherit the class' methods and shit. You can override its shit if you want.
Implements allows you inherit the constants that are declared, and you can define these constants. The way that works is it provides a bunch of empty methods, and you fill in the gaps
-
-
jasonpark.me jasonpark.me
-
Algorithm visualizations: sorting, binary search, graph search
Tags
Annotators
URL
-
-
blog.ppelgren.se blog.ppelgren.se
-
Tutorial on using Rust to write an interpreter for an invented programming language.
-
-
java.meritcampus.com java.meritcampus.com
-
Java Programming Language was developed by James Gosling, Chris Warth, Patrick Naughton, Mike Sheridan and Ed Frank at Sun Microsystems, Inc in the year 1991. At first Java Programming Language was named as Oak, later that it was renamed to Java in the year 1995. Java Programming is a platform independent language. The Internet (World Wide Web) made Java programming more valuable. Since, Internet is connected to different types of systems which having different CPU's & environments, it must have the programs to run on any OS, CPU and Platform. Since, Java programming obtain platform independence and can able to run on any platform like Unix, Intel, Mac etc., it was widely used. Java language also protects two other major issues of Internet, they are security & portability.
Java Programming Language was developed by James Gosling, Chris Warth, Patrick Naughton, Mike Sheridan and Ed Frank at Sun Microsystems, Inc in the year 1991. At first Java Programming Language was named as Oak, later that it was renamed to Java in the year 1995.
Java Programming is a platform independent language. The Internet (World Wide Web) made Java programming more valuable. Since, Internet is connected to different types of systems which having different CPU's & environments, it must have the programs to run on any OS, CPU and Platform. Since, Java programming obtain platform independence and can able to run on any platform like Unix, Intel, Mac etc., it was widely used. Java language also protects two other major issues of Internet, they are security & portability.
-
- Apr 2016
-
medium.freecodecamp.org medium.freecodecamp.org
-
But decades of abstraction have stacked up like a pile of mattresses, and most of us just roll around on top.
-
-
mitpress.mit.edu mitpress.mit.edu
-
Great Principles of Computing<br> Peter J. Denning, Craig H. Martell
This is a book about the whole of computing—its algorithms, architectures, and designs.
Denning and Martell divide the great principles of computing into six categories: communication, computation, coordination, recollection, evaluation, and design.
"Programmers have the largest impact when they are designers; otherwise, they are just coders for someone else's design."
-
-
blogs.msdn.microsoft.com blogs.msdn.microsoft.com
-
How WSL (Windows Subsystem for Linux) enables native Linux ELF64 binaries to run under Windows.
-
-
bartoszmilewski.com bartoszmilewski.com
-
Category Theory for Programmers<br> Haskell and C++, Bartosz Milewski
-
-
github.com github.com
-
Transcrypt, a Python to JavaScript transpiler.
Tags
Annotators
URL
-
- Mar 2016
-
matt.sh matt.sh
-
Using C11 or the earlier C99, which include some changes that make old C habits obsolete.
-
- Feb 2016
-
matt.aimonetti.net matt.aimonetti.net
-
req.Header.Add("Content-Type", writer.FormDataContentType())
If you're reading this, do not forget the
Content-Type
. It is not on the initial example, but it is important. I don't understand why the author mentions it here but doesn't use it on the initial source.
-
-
bob.cs.sonoma.edu bob.cs.sonoma.edu
-
Introduction to Computer Organization with x86-64 Assembly Language and GNU/Linux, Robert G. Plantz
-
-
benng.me benng.me
-
Tutorial series on distributed systems.
-
-
freedom-to-tinker.com freedom-to-tinker.com
-
f1000research.com f1000research.com
-
Since its start in 1998, Software Carpentry has evolved from a week-long training course at the US national laboratories into a worldwide volunteer effort to improve researchers' computing skills. This paper explains what we have learned along the way, the challenges we now face, and our plans for the future.
http://software-carpentry.org/lessons/<br> Basic programming skills for scientific researchers.<br> SQL, and Python, R, or MATLAB.
http://www.datacarpentry.org/lessons/<br> Managing and analyzing data.
Tags
Annotators
URL
-
- Jan 2016
-
github.com github.com
-
Tutorial on new features of JavaScript in ES6.
Tags
Annotators
URL
-
-
notepad-plus-plus.org notepad-plus-plus.org
-
Notepad++, a free, open source text editor for Windows.
Tags
Annotators
URL
-