recentpopularlog in

robertogreco : programming   394

« earlier  
Brent Jackson on Twitter: "New phone who dis… "
“New phone who dis [image: "iPad Pro connected to Raspberry Pi 4 running Gatsby develop with Theme UI docs site open"]

Basic setup:
- iPad Pro 11" (with USB-C)
- Raspberry Pi 4 (ssh + power via USB-C)
- Blink Shell for SSH
- Raspian with Node.js, Git, Vim, etc.

The most frustrating part is that I know the iPad’s hardware is fully capable of what the Raspberry Pi is doing here

To run Gatsby develop and view in it iOS, I use the `--host 0.0.0.0` flag and open the dev server at `raspberrypi.local:8000`– webpack hot reload works most of the time but sometimes needs a hard refresh

To install Node.js, I use `wget` to download the tar from http://nodejs.org , extract it and manually move it to /usr/local/bin

Setting up the RPi4 to run in OTG gadget mode, the steps are very similar to how you do it for the Pi Zero (there’s a few guides out there)

Download the image from http://raspberrypi.org and write to an SD card.
- Add dtoverlay=dwc2 to /boot/config.txt
- Add modules-load=dwc2,g_ether to /boot/cmdline.txt (after rootwait)
- touch /boot/ssh to enable ssh

For vim, I cloned the repo from github and built locally according to the instructions in the readme

I tried to build Zeit Now CLI, but it didn’t work and I couldn’t find any relevant documentation

Also ran into issues where some USB-C cables just did not work at all (sounds like an issue with the RPi), so if you don’t see a light, try another cable. Currently using the Apple MacBook USB-C charge cable (iPad cable was a no-go)”

[via: https://www.are.na/block/4577252 ]
ipad  ipadpro  programming  coding  whatisacomputer  2019  brentjackson  raspberrypi  gatsby  node.js  vim  usb-c  git  ios  ipados 
6 weeks ago by robertogreco
The Pedagogy of Design in the Age of Computation: Panel Discussion - YouTube
“I wish y’all could teach designers without using any Adobe products.” —@tchoi8 (9:11)

“Michael Rock, would say that ideally the things that you are learning in a school setting should stick with you […] throughout your entire career. […] I think critical thinking, historical references, […] space, time, community — that’s much more valuable.” —@mind_seu (12:48)

In response to “Can you teach curiosity?” @mind_seu: “…this sinking feeling that the more that I learn, the less that I know. On the one hand, it’s exciting & it makes you more curious to go into this worm holes, but on the other side it brings you into this state of insecurity”

In response to the same @tchoi8: “… curiosities can be stolen away from an individual when there’s a discouragement or peer pressure in a toxic way. I think people, including myself, lose curiosity when I feel I can’t do it or I feel less equipped than a student next to me. In technical courses, it’s very easy to create a dynamic in which the start student, who probably has done the technical exercises before, end up getting most attention or most respect from the class. We [at @sfpc] try to revert that [discouragement] by creating homeworks that are equally challenging for advanced and beginner students and that opens up dialogues between students. For example, [goes on to explain an assignment that involves transfer of knowledge (at 22:22)]”

In response to “Can you teach autonomy?” @mind_seu: “Whether you can teach someone autonomy or not, again is maybe not the right question. Why do we want to solve problems by ourselves? I think it’s trying to work with people around you who know more than you do and vice versa, so you can work together to create whatever project you’re trying to implement. But going into a tutorial hole online to do something on your own? I don’t know if we actually need to do that. These tools… we’re trying to build collectives and communities, I think, and maybe that’s more meaningful than trying to do something on your own, even if it’s possible.” [YES]

[See also:

Mindy Seu
https://www.youtube.com/watch?v=ZM9mRYpnD7E

Taeyoon Choi
https://www.youtube.com/watch?v=AfThnEo5xgE

Atif Akin
https://www.youtube.com/watch?v=c-URUDBItB8

Rik Lomas
https://www.youtube.com/watch?v=2uk_XYIkyZM ]
towatch  mindseu  design  computation  2019  atifakin  riklomas  coding  publishing  digital  history  education  adobe  designeducation  howweteach  art  creativity  programming  decolonization  tools  longview  longgame  ellenullman  accessibility  access  inclusivity  inclusion  craft  curiosity  imagination  learning  howwelearn  insecurity  exposure  humility  competition  unschooling  deschooling  comparison  schools  schooliness  resistance  ethics  collaboration  cooperation  community  conversation  capitalism  studentdebt  transparency  institutions  lcproject  openstudioproject  emancipation  solidarity  humanrights  empowerment  activism  precarity  curriculum  instruction 
may 2019 by robertogreco
Generative Knitting – fathominfo – Medium
[loaded with images]

"I personally have long been fascinated by textile arts, and as a studio we are always looking for ways to explore data-driven designs beyond the computer screen. The 1:1 comparison of pixels to stitches has been widely explored, but it wasn’t until recently that our studio had the means to explore it ourselves.

Coding and textile arts share a close bond. Some of the earliest programmable machines were Jacquard looms — weavers used a series of punch cards to make more complex patterns and produce textiles more quickly.

Since a full Jacquard loom was a little out of scope for a side project, we started looking into other machines. An embroidery machine was promising, but was unsuited for a project of a larger scale.

Then I stumbled upon Claire Williams‘s data knits work. I was so intrigued by the complexity of patterns she was able to knit using a hacked 90‘s electronic knitting machine that I started looking into how it was done. Turns out, she has instructions on how to get started with connecting these kinds of machines to a computer. While Anisha looked into the parts we would need for the electronics, I began my search for a knitting machine. I ended up finding a woman in western Massachusetts who works with these machines and had a nicely refurbished one that we were able to purchase. She even came to the studio and gave us a full tutorial on how to the machine works.

While we waited for the electronic interface to get up and running, Martha and I tested different techniques and patterns with the machine.

During that time, we also went to the Bauhaus exhibit at the Harvard Art Museums, and I was completely blown away by Anni Albers’s and Gunta Stölzl’s work. That led me to pick up Albers’s book On Weaving.

In particular, Albers’s piece “Pasture” stuck with me, and I began thinking about using photographs of places and objects to generate palettes for textiles. That led to an exploration using various software sketches to generate palettes and patterns and build assistive knitting tools.

Generating palettes
First, I was interested in seeing what you could pull from just a photo. I began with photos that had a great balance of colors, hoping that reapplying those same ratios in different orientations could create new works with a similar mood.

In making mistakes, I also got some cool results.

Generating patterns

I then started to think more about the limitations of our machine (with an eye towards actually knitting something). In theory, our machine can use as many colors as you want, but only 2 can be loaded in at a time. Some accessories allow four colors at a time, so I set my sights on four-color patterns.

I didn’t have any knitting patterns handy, so I drew a few “pattern pieces” in Photoshop, and used those as the blueprints onto which I could map new colors. I wrote a few sketches in Processing to map the photo colors onto these pieces, and also generate different combinations of the pieces to create different patterns.

The program also worked by passing in a set palette, and having it randomly select four colors to apply to a pattern.

Moving into Knitting
With those patterns in place, it was time to see if I could actually produce them with the machine.

I printed out a small sample of all my generated palettes to bring to the store and see which colors were available.

From far away, this also started to look like its own giant pattern…

It only took five hours…but I did knit one pattern I had generated, and I am really excited by the results. My knitting and finishing techniques need some work, but the colors and texture that resulted are lovely.

I struggle to keep track of where I’m at in a pattern, so I threw together a little Processing sketch to help me. One thing I didn’t realize while making this tool is that the machine knits patterns upside down! Oh well: I’ve been told there are no mistakes in knitting.

With more of the automation in place (and more practice!), we‘ll be able to explore the more irregular, glitchy, and tapestry-like patterns.

There’s also so much more to experiment with on the physical side that moves beyond color and its arrangement — like the different textures and sheen of the yarn (maybe we could use four different black yarns with different textures!), or different types of stitches. I’m also looking forward to exploring more meaningful data relationships between the data generating the colors and the patterns themselves."
oliviaglennon  knitting  generative  textiles  looms  jacquardlooms  codign  programming  processing  art  glvo 
april 2019 by robertogreco
Welcome to Unfold Studio — Unfold Studio 0.4.1 documentation
"Unfold Studio is an online community for interactive storytelling powered by a programming language called Ink. Interactive storytelling brings together the power of programming with the ability of stories to represent and explore our lived realities. Free and open-source, Unfold Studio was developed as part of my PhD research on youth computational literacy practices.

Unfold Studio is used in schools, clubs, and by many individual writers. Interactive storytelling can be a way to integrate Computer Science into English, Social Studies, or other subjects. It can also be an excellent way to introduce Computer Science as a subject relevant to questions of identity, culture, and social justice. (We are currently doing research with a school which uses Unfold Studio for several months as part of its core CS curriculum.)

This documentation is meant for several audiences. If you need help using Unfold Studio or writing interactive stories, see the User Guide. (If you’re impatient, try the Quickstart.) If you are interested in using Unfold Studio with students, see Teaching Guide. And if you’re interested in Unfold Studio’s back story or research on transliteracies, CS education, etc. please see Research. We welcome questions, feedback, and random ideas. Please see Contact to get in touch.

The documentation is also available in PDF form in case you prefer to read it that way or want to print out any pages (such as the worksheets in the Teaching Guide section) for classroom use.

-Chris Proctor
PhD candidate, Stanford Graduate School of Education
Unfold Studio creator and lead researcher"
chrisproctor  if  interactivefiction  storytelling  ink  opensource  free  onlinetoolkit  compsci  education  identity  culture  socialjustice  unfoldstudio  transliteracies  multiliteracies  coding  programming  writing  twine  classideas  via:hayim  teaching 
october 2018 by robertogreco
These ain't no books […]
"These ain't no books [...]
Realized projects lectures / talks / workshops
[...] But aesthetic investigations
these ain’t no books (…)

(…) But pro­jects in di­gi­tal and hy­brid pu­blis­hing.

*******

MISSION

We work at the in­ter­sec­tion of de­sign and tech­no­logy, crea­ting and de­si­gning in­di­vi­dual di­gi­tal and hy­brid pu­blis­hing work­flows.

Take a set of en­cy­clo­pe­dias and ask, “how do i make this di­gi­tal?” you get a Mi­cro­soft En­carta CD. Take the phi­lo­so­phy of en­cy­clo­pe­dia-ma­king and ask, “how does di­gi­tal ch­ange our en­ga­ge­ment with this?” you get wi­ki­pe­dia.

Post-artifact books and publishing – digital’s effect on how we produce, distribute and consume content.

“Most people are tal­king about a 1:1 Text trans­fer to di­gi­tal. Much more in­te­res­ting is the ques­tion: What lies bey­ond that bor­der? how do new ways of books look like? how can they be dis­played on di­gi­tal de­vices?” —Leander Wattig

*******

DESIGN

The de­ve­lop­ment of an in­di­vi­dual, cha­rac­te­ris­tic vi­sual lan­guage for every pu­blis­hing pro­ject is the main goal in our pro­cess.

By ex­pe­ri­men­ting, using tools dif­fer­ently and con­nec­ting lose ends in a new way, we try to find our own me­thods and work­flows.

*******

TECHNOLOGY

Pro­gramming and de­si­gning at the same time al­lows us to take ad­van­tage of the cur­rent tech­no­lo­gi­cal pos­si­bi­li­ties, thus co­m­ing up with uni­que so­lu­ti­ons.

“I don’t know… pro­gramming and de­si­gning is the same thing…” —Erik van Blokland

“We live in a tech­ni­cal rea­lity.” —Mercedes Bunz

“How ex­actly does the tech­no­logy we use to read ch­ange the way we read?” —Ferris Jabr

*******

ABOUT

“These ain’t no books (…)” is a pro­ject by John­son / Kings­ton, emer­ging from the en­ga­ge­ment with the fu­ture of the book and rea­ding on screens.

Tech­no­lo­gi­cal pro­gress has a big im­pact on so­ciety – it is our duty to take part in sha­ping these ch­an­ges.

*******

These ain't no books [...]
is a project by
Johnson / Kingston
Ivan Weiss / Michael Kryenbühl
Bern / Luzern

Contact us:
info@theseaintnobooks.com
www.johnsonkingston.ch"
books  bookfuturism  digital  screens  print  leanderwattig  publishing  technology  design  programming  erikvanblokland  mercedezbunz  ferrisjabr  ivanweiss  michaelkryenbühl  microsoftencarta  encarta  multimedia  encyclopedias  projectideas  howweread  reading  howwewrite  writing 
august 2018 by robertogreco
Rabbit Ear, origami and creative code
"Rabbit Ear is a creative coding javascript library for designing origami."

[See also: https://origami.pw/docs/ ]
software  origami  folding  classideas  foreden  computation  geometry  javascript  programming 
june 2018 by robertogreco
Paper Programs
[via: https://twitter.com/andy_matuschak/status/967807879892709376 ]

"Paper ProgramsPaper Programs is a browser-based system for running Javascript programs on pieces of paper.

You set up a projector and camera aimed at a wall, table, or floor, and print out papers that are recognised and executed by the system.

[tutorial video: https://www.youtube.com/watch?v=pkwSoJrVWAY ]

FAQ

Who created Paper Programs? And why?
Hi, I’m JP. There are lots of reasons I could list for building Paper Programs, such as having worked on interactive tools for many years, a background in programming education, and having experimented with different representations of program execution. But the truth is, I was just unreasonably excited after trying Dynamicland for the first time, and wanted to explore their interaction model more.

Much thanks to everyone who helped testing Paper Programs. Special thanks to Omar Rizwan for sort-of instigating this project, and offering tons of ideas and feedback.

How is Paper Programs related to Dynamicland?
Paper Programs is inspired by the projector and camera setup of the 2017 iteration of Dynamicland. I liked how you could physically hold a program in your hands, and then put on any surface in the building, where it would start executing, as if by magic. And I liked how people naturally started collaborating, writing programs that interact with each other.

In contrast, Dynamicland is a community space designed around Realtalk. Realtalk is a research operating system (in development for several years) designed to bring computation into the physical world. It is more general than papers, projectors, and cameras. Dynamicland is intended as a new medium of human communication, and is designed to be learned and used by a community of people interacting face-to-face, not over the internet.

Paper Programs is not a clone of Dynamicland. To learn more about their system and vision, be sure to visit Dynamicland in Oakland.

How does Paper Programs work?
Programs are stored on a server (using Node.js and PostgreSQL), hosted on paperprograms.org. Each program has a number, and the dots on the paper encode that number. Currently each corner is uniquely identified with 5 dots of 5 possible colours, which means you can have about 600 unique papers currently (this is a significant limitation).

A camera detects the dots and retrieves the program associated with each paper. This is done in a browser, using OpenCV compiled to WebAssembly, and some custom Javascript code. Calibration happens manually, using a UI built in React. Program code and configuration are stored in the browser’s local storage.

Projection and execution of programs happens in a separate browser window. Each program runs asynchronously in a Web Worker, and can request access to a canvas, coordinates of other programs, and so on.

Then there is an editor page, which anyone in the space with a laptop or tablet can use to edit programs, using Monaco. When having created a new program, you can click a print button to print out a new paper that runs that program. It has the program text printed on the paper itself. Any edited program can be reverted to its original state.

How can I help?
If you’re interested in contributing to Paper Programs, feel free to submit PRs, bugs, and suggestions at the Github repo. And please tag any posts in social media with #paperprograms."
javascript  programming  paper  art  projectors  dynamicland 
february 2018 by robertogreco
Podcast, Nick Seaver: “What Do People Do All Day?” - MIT Comparative Media Studies/Writing
"The algorithmic infrastructures of the internet are made by a weird cast of characters: rock stars, gurus, ninjas, wizards, alchemists, park rangers, gardeners, plumbers, and janitors can all be found sitting at computers in otherwise unremarkable offices, typing. These job titles, sometimes official, sometimes informal, are a striking feature of internet industries. They mark jobs as novel or hip, contrasting starkly with the sedentary screenwork of programming. But is that all they do? In this talk, drawing on several years of fieldwork with the developers of algorithmic music recommenders, Seaver describes how these terms help people make sense of new kinds of jobs and their positions within new infrastructures. They draw analogies that fit into existing prestige hierarchies (rockstars and janitors) or relationships to craft and technique (gardeners and alchemists). They aspire to particular imaginations of mastery (gurus and ninjas). Critics of big data have drawn attention to the importance of metaphors in framing public and commercial understandings of data, its biases and origins. The metaphorical borrowings of role terms serve a similar function, highlighting some features at the expense of others and shaping emerging professions in their image. If we want to make sense of new algorithmic industries, we’ll need to understand how they make sense of themselves.

Nick Seaver is assistant professor of anthropology at Tufts University. His current research examines the cultural life of algorithms for understanding and recommending music. He received a masters from CMS in 2010 for research on the history of the player piano."

[direct link to audio: https://soundcloud.com/mit-cmsw/nick-seaver-what-do-people-do-all-day ]

[via: https://twitter.com/allank_o/status/961382666573561856 ]
nickseaver  2016  work  labor  algorithms  bigdata  music  productivity  automation  care  maintenance  programming  computing  hierarchy  economics  data  datascience 
february 2018 by robertogreco
Harvard EdCast: Lifelong Kindergarten | Harvard Graduate School of Education
"The concept of kindergarten — as a place for young children to learn by interacting with materials and people around them — has existed for over 200 years, but never has the approach been so suited to the way the world works as it is today, says Mitchel Resnick, the LEGO Papert Professor of Learning Research at the MIT Media Lab.

“That approach to kindergarten is really aligned with the needs of today’s society," says Resnick, citing the need to adapt to the speed at which things change in the world. "As kids in the traditional kindergarten were playfully designing and creating things, they were developing as creative thinkers…. That’s exactly what we need.”

Being given the room to explore, experiment, and express oneself is vital to becoming a creative thinker — and to the learning process as a whole — says Resnick, author of Lifelong Kindergarten: Cultivating Creativity through Projects, Passion, Peers, and Play. If people aren't encouraged in their creativity at an early age, and if this isn't nutured throughout their schooling, then they aren't as prepared to deal with the unexpected when it arises.

“We’re trying to spread that approach to learners of all ages," says Resnick, who also leads the Lifelong Kindergarten research group at MIT. "We want to take what’s worked best in kindergarten and here at the Media Lab and provide opportunities for all kids of all ages to be able to explore and experiment and express themselves in that same spirit.”

In this edition of the Harvard EdCast, Resnick talks about the importance of nurturing creativity in learning and explains why kindergarten is the greatest invention of the last millennium."

[See also:
"Mitchel Resnick - MIT Media Lab: Lifelong Kindergarten" (2014)
https://www.youtube.com/watch?v=uRxD-pe3PN0

"Helping Kids Develop as Creative Thinkers" (2017)
https://vimeo.com/244986026 ]
mitchresnick  lifelongkindergarten  mitmedialab  2017  interviews  kindergarten  play  projects  projectbasedlearning  passion  collaboration  experimentation  creativity  medialab  scratch  making  pbl  teaching  sfsh  learning  howweteach  howwelearn  risks  risktaking  education  schools  lcproject  openstudioproject  curiosity  schooling  unschooling  deschooling  mindstorms  writing  coding  programming  leaning  creating  lego  reasoning 
december 2017 by robertogreco
Erase All Kittens - A game that inspires girls to code by Erase All Kittens — Kickstarter
"An epic adventure game that inspires girls to code and teaches them professional coding languages."



"Girls need to learn digital skills!

The vast majority of girls say that learning digital skills is ‘too difficult’, 'boring' or ‘more for boys’.

Since 65% of school children will be in jobs that have yet to be created - most likely involving tech skills - this is a massive, and growing issue for the economies of the future...

We need to do more to inspire girls to code, if don't want them to get left behind.

A new way to learn

We want to take on this problem, so we decided to create an epic Mario-style adventure game to make learning to code easy and fun.

Erase All Kittens teaches professional languages via quirky characters and an original storyline, centred around saving kittens in a fantasy internet universe."



"How it works

We carried out eighteen months of research, interviewing hundreds of students aged 8-13 and immersing ourselves in their culture, to discover the best ways to teach young children - especially girls - digital skills.

As a result, we spent over two years developing a code education tool which is first and foremost a game - where the educational elements are woven into the core fabric of high quality gameplay, rather than a few gaming features or characters being bolted on at the end.

In Erase All Kittens, players build and fix real levels using practical coding skills to save the Earth's kittens (displayed as kitten gifs) which have been captured in the internet universe.

Our prototype teaches basic HTML and how to create links, through Mario-style gameplay and interactive dialogue with strange and fantastical creatures - such as Tarquin Glitterquiff, a half-unicorn, half-mermaid serial entrepreneur, and Boris J. Buttstacks, the self-appointed mayor of PonyHead Bay."
girls  coding  games  gaming  videogames  programming  howto  education 
november 2017 by robertogreco
Ellen Ullman: Life in Code: "A Personal History of Technology" | Talks at Google - YouTube
"The last twenty years have brought us the rise of the internet, the development of artificial intelligence, the ubiquity of once unimaginably powerful computers, and the thorough transformation of our economy and society. Through it all, Ellen Ullman lived and worked inside that rising culture of technology, and in Life in Code she tells the continuing story of the changes it wrought with a unique, expert perspective.

When Ellen Ullman moved to San Francisco in the early 1970s and went on to become a computer programmer, she was joining a small, idealistic, and almost exclusively male cadre that aspired to genuinely change the world. In 1997 Ullman wrote Close to the Machine, the now classic and still definitive account of life as a coder at the birth of what would be a sweeping technological, cultural, and financial revolution.

Twenty years later, the story Ullman recounts is neither one of unbridled triumph nor a nostalgic denial of progress. It is necessarily the story of digital technology’s loss of innocence as it entered the cultural mainstream, and it is a personal reckoning with all that has changed, and so much that hasn’t. Life in Code is an essential text toward our understanding of the last twenty years—and the next twenty."
ellenullman  bias  algorithms  2017  technology  sexism  racism  age  ageism  society  exclusion  perspective  families  parenting  mothers  programming  coding  humans  humanism  google  larrypage  discrimination  self-drivingcars  machinelearning  ai  artificialintelligence  literacy  reading  howweread  humanities  education  publicschools  schools  publicgood  libertarianism  siliconvalley  generations  future  pessimism  optimism  hardfun  kevinkelly  computing 
october 2017 by robertogreco
Tech's push to teach coding isn't about kids' success – it's about cutting wages | Technology | The Guardian
"Today’s hi-tech wages threaten Silicon Valley’s bottom line. What better way to drive down coders’ pay than by investing in a new generation of cheap labor?"
labor  coding  economics  2017  edtech  education  programming  siliconvalley 
september 2017 by robertogreco
Stephanie Hurlburt on Twitter: "A bunch of people are asking what resources I recommend to start learning graphics programming. So you get a thread on it!"
"A bunch of people are asking what resources I recommend to start learning graphics programming. So you get a thread on it!

I really enjoy giving beginner-level workshops. Here are two that focus on graphics:
https://docs.google.com/presentation/d/1yJSQy4QtcQxcMjr9Wj6kjMd2R1BLNA1mUebDtnaXDL8/edit
https://www.slideshare.net/StephanieHurlburt/graphics-programming-workshop

If you're a graphics coder reading this wondering how you can host a workshop too, I've written about that:
http://stephaniehurlburt.com/blog/2016/11/1/guide-to-running-technology-workshops

I also wrote my own little writeup on graphics, notes from when Rich & I were helping Sophia learn graphics.
http://stephaniehurlburt.com/blog/2016/10/28/casual-introduction-to-low-level-graphics-programming

One more graphics workshop-- this one includes a raytracing and particle demo for you to play with.
https://docs.google.com/presentation/d/1d0StEQMEdz4JUEHXfTPbwKIGYex2p5Mko1Rj66e5M80/edit

I love @baldurk 's blog series, "Graphics in Plain Language" https://renderdoc.org/blog/Graphics-in-Plain-Language/

For those ready to wade into advanced waters, "A trip through the graphics pipeline" by @rygorous is great
https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics-pipeline-2011-index/

This online book is just an amazing introduction to shaders, by @patriciogv and @_jenlowe_ https://thebookofshaders.com/

Prepare yourself for a monster list of graphics resources on this site! My favorite is the SIGGRAPH papers. http://kesen.realtimerendering.com/

I'm a big fan of Cinder and OpenFramworks, both C++/graphics. They are what I started from.
https://libcinder.org/docs/guides/opengl/index.html
http://openframeworks.cc/learning/

BGFX is also great!
https://github.com/bkaradzic/bgfx

For a more beginner friendly library, Processing is simply lovely. https://processing.org/tutorials/

Shaders! GLSLSandbox is more beginner-friendly, Shadertoy if you want to see some crazy shit
http://glslsandbox.com/
https://www.shadertoy.com/

Can't go without mentioning @CasualEffects 's Graphics Codex-- excellent and comprehensive graphics resource. http://graphicscodex.com/

I stand by this advice on how to approach learning graphics programming.
[image with screenshot of chat]

Since we're now on the topic of getting jobs, do mock interviews and get mentors and talk to people. https://twitter.com/sehurlburt/status/872919452718727168 ["Attn coders who struggle w these, or jr coders:

It is your homework to set up a mock interview w one of these folks"]

My mentor list is FULL of graphics programmers. They all love helping you. I do need to update it with more.
http://stephaniehurlburt.com/blog/2016/11/14/list-of-engineers-willing-to-mentor-you

People ask me about learning math and I point them to @EricLengyel 's book
https://www.amazon.com/Foundations-Game-Engine-Development-Mathematics/dp/0985811749/

GPU Performance for Game Artists by @keithoconor
http://fragmentbuffer.com/gpu-performance-for-game-artists/

There are more resources I didn't mention. Check out the last two slides of this https://www.slideshare.net/StephanieHurlburt/graphics-programming-workshop , and http://www.realtimerendering.com

This is a good little collection of resources on advanced GPU optimization and documentation.
https://github.com/g-truc/sdk/tree/master/documentation/hardware/amd/Southern%20Islands

Destiny's Multithreaded Rendering Architecture by @mirror2mask
http://www.gdcvault.com/play/1021926/Destiny-s-Multithreaded-Rendering

An important point: The vast majority of graphics coders I know don't know math very well. Don't be scared away if you aren't a math person.

I say this as someone who adores math, was expecting to use it all the time, & only ever needed basic linear algebra for my graphics work.

Someone made a Slack chat for graphics programming learning/development! Both experienced folks + newbies welcome. https://twitter.com/iFeliLM/status/884801828696805377 ["Great idea. We have a Slack group here:

Invite link here: https://join.slack.com/gfxprogramming/shared_invite/MjExMTIxOTc4NjkwLTE0OTk3ODgxNDYtYTRkNzQ2OGIxOQ "]"
graphics  programming  howto  tutorials  stephaniehurlburt  via:datatelling  math  mathematics  coding 
july 2017 by robertogreco
15 Sorting Algorithms in 6 Minutes - YouTube
"Visualization and "audibilization" of 15 Sorting Algorithms in 6 Minutes.
Sorts random shuffles of integers, with both speed and the number of items adapted to each algorithm's complexity.

The algorithms are: selection sort, insertion sort, quick sort, merge sort, heap sort, radix sort (LSD), radix sort (MSD), std::sort (intro sort), std::stable_sort (adaptive merge sort), shell sort, bubble sort, cocktail shaker sort, gnome sort, bitonic sort and bogo sort (30 seconds of it).

More information on the "Sound of Sorting" at http://panthema.net/2013/sound-of-sorting/ "

[via: https://boingboing.net/2017/06/28/15-sorting-algorithms-visualiz.html ]
algorithms  programming  sorting  visualization  sound  video  timobingmann  computing  classideas 
june 2017 by robertogreco
Glitch
"Glitch is the friendly community where you'll build the app of your dreams

With working example apps to remix, a code editor to modify them, instant hosting and deployment - anybody can build a web app on Glitch, for free."

[See also: https://medium.com/glitch/the-web-was-supposed-to-be-a-thing-we-make-c023b6e7f56a ]
collaboration  programming  classideas  fogcreek  html  webdev  coding  glitch  webapps  webdesign 
april 2017 by robertogreco
Minecraft Club - Free, safe, moderated server
"Our mission is to build a global online community where kids build, code, play, and learn from one another. We tap the power of youth tech experts to teach and mentor, and have served thousands of kids through our online and community-based programs.

Connected Camps was catalyzed by three girl geeks with a passion for education and the positive potential of technology. Mimi is an educational researcher and advocate for connected learning, on a decades-long hunt to bridge education and entertainment. Katie is a game designer, educator and force behind the creation of Institute of Play and its partner school Quest to Learn. Tara is a technologist and entrepreneur who founded LA Makerspace so kids can make and learn in her local community.

Our approach is backed by lots of research and testing in practice, and is part of the Connected Learning Alliance, dedicated to mobilizing new technology in the service of equity, access and opportunity for all young people."
education  kids  programming  minecraft  coding  mimiito  katiesalen  sfsh  games  gaming  play  videogames 
february 2017 by robertogreco
42: Tuition Free Coding University in the Silicon Valley
[See also: https://en.wikipedia.org/wiki/42_(school)
https://www.youtube.com/watch?v=9OKfktv3k-0
http://www.42.fr/
https://twitter.com/42born2codeUS/
https://twitter.com/42born2code
https://twitter.com/studios_42 ]

"Goals

According to The Boston Consulting Group, the United States is the leading economic power in the world and the sixth in terms of the digital economy. The quality of a country’s digital environment helps to support strong economic growth. If the United States wishes to maintain its place, it will need to continue developing its digital economy.

The future economic growth of the United States is specifically related to its innovative capacity and to the digital transformation of its businesses. The shortage of competent developers delays the transformation of these projects, which may also become the sources of other jobs.

On top of this, studies in the United States are very expensive and do not allow everyone to receive an education. 42 is a high quality, computer-programming training program, which provides its curriculum completely free-of-charge to its students.

The United States has always been the country of entrepreneurship and innovation. Thanks to the prevailing open-minded spirit, Americans allow for differing solutions and for innovative thought, notably in the field of education."



"Worldwide

Since its creation in France in 2013, 42 has received more than 150,000 applications worldwide. Today, 42 welcomes 2,500 students that train themselves every day to become the best developers of tomorrow.

Thus far, we have welcomed international students hailing from a wide array of countries around the globe:

– from the Americas: (United States, Mexico, Bolivia, Ecuador and Brazil)
– from Asia: (Singapore, China, and Japan)
– from the Middle East: (Israel),
– from Europe: (Belgium, Switzerland, Italy, and Sweden)
– from Africa: (Morocco, Senegal, and South Africa).

These students come to 42’s French and American campuses in order to have access to a free, top-level training in computer programming.

42 allows students who have successfully completed the selection tests to continue their training at the Paris or Silicon Valley campuses (provided that they have the necessary immigration visa for their campus choice. Please note: All visa formalities must be completed by the student. For any applicants in need of visas: 42 is prevented by law from providing you with this service, so please do not request it. (This would include any paperwork pertaining to verification of attendance.)

42‘s Paris campus offers students nothing but the best in terms of pedagogy, technical resources (the best infrastructure in Europe), as well as top-notch logistical resources. We feature an attractive and sizable physical plant— with a 4,242 m² building called “the Heart of Code.” The facility is open to our students 24/7.

The American site, situated in the Silicon Valley city of Fremont, includes a state-of-the-art coder development training facility, featuring a space of approximately 10,960m² building called “the Soul of Code” housing 1024 workstations. As with our Paris campus, this campus is open to our students 24/7. The nearby dormitory facility and cafeteria support 42’s goal of delivering high-quality living & learning experiences to our diverse, international student population."



"Tuition Free

An NPO and contrary to nearly all other universities in the United States, 42 proposes a unique training program, which is completely free-of-charge for all of its students.

Tuition fees are neither required before, during nor after attending 42. All of the student tuition fees are covered up-front by the private investment of Xavier Niel for a combined total of $100 million.

University studies in the United States are very expensive and prevent some students from receiving a top-rate education.

- As of the end of 2014, the total of U.S. student loans amounts to 1,160 billion dollars (6.6% of the U.S. GDP), which is greater than the collective American credit card debt. (source: New York Federal Reserve)

- Approximately 40 million Americans have contracted a student loan for an average sum of $30,000; this staggering figure is resulting from the dramatic increase in higher education tuition costs. (These costs overall are up more than 440% in 25 years/an increase of more than 1,225% since 1978). (source: U.S. Department of Education)

- Almost three quarters of all college graduates have had to contract a loan. (source: Forbes magazine)

The increase of the student debt bears a huge percentage of the financial burden of these students and on their credit capabilities. It can have negative consequences on their spending abilities and on their housing budgets. Consequently, this debt can also have a delaying influence on some of these students who seek to start new families."



"Pedagogical Innovation

42’s directors have proven that a rigorous, open curriculum, one that actively involves students in passionate and collaborative projects, is the type of training method that forms the most inspired developers and computer scientists.

42 implements a particular training method that is different than most traditional educational institutions. Our commitment to this unique pedagogy stems from twenty plus years of research and experimentation in France in the field of programming education by Nicolas Sadirac and his team. 42’s pedagogy represents the quintessence of this peer-to-peer methodology and the integration of our determined and continuous efforts to perfect it over time.

42 attracts and accepts the best-of-the-best students who acquire a variety of abilities, while inventing new solutions when faced with new obstacles. Students practice and learn to work efficiently in teams as well as individually. Acquiring programming and problem-solving skills, which are highly in-demand in today’s technology-driven workplace, allows these students to be fully prepared for their careers upon completion of their studies.

PEER-TO-PEER LEARNING
There are no classes and no professors: at 42, the students are the ones in charge of their success and the success of their classmates. In order to progress on the projects that are offered to them, they must rely on the strength of the group, giving and receiving information while alternating between training and learning. This dynamic, removes the subordinate relationship of students as each student within the group is responsible for a part of the project’s completion and success within the group just as it would be in the workplace.

PROGRESS GAMIFICATION
Collecting grades has never been the best form of motivation. Progress at 42 is accounted for using experience points, (which was inspired by the way this happens in video games). Students develop their competencies through each of the proposed projects and receive experience in exchange for this. Each completed project unlocks the next project(s); each successive project is increasingly more substantial and more highly-rewarded. This gamification mindset allows all learning to be fun, while enhancing students’ passion, persistence, and motivation to get to the next level.

REMOVING TIME BARRIERS
Each student advances at his or her own pace. Some concepts are instinctively easier to develop, while others will require additional effort. Based on these observation, the education received at 42 is nearly void of time barriers. This means that each students are not restricted to progressing at the same rhythm as the rest of their graduating class where the student who is the furthest behind slows down the rest of the group; rather, they are able to proceed at their own pace.

When following 42’s educational curriculum, it is difficult to fall behind because the pace of the curriculum is adaptable and individualized to the extreme."
education  computerscience  free  edg  srg  programming  coding  fremont  paris  peerlearning  siliconvalley 
december 2016 by robertogreco
Gomix
"Gomix is the easiest way to build the app or bot of your dreams

[video]

Start by remixing

You never have to start from a blank slate. Remix a full, working app to personalize it for your needs, or build on the most popular and powerful developer frameworks to create your app.

Real collaboration

You don’t have to deal with the complexity of version control or tracking changes — the built-in editor allows multiple people to edit code at once and undo mistakes as they happen, just like working together in Google Docs.

It's not training wheels

Gomix is not a limited "toy" version of a real developer environment — your Gomix app is hosted on the exact same industry standard infrastructure that the best developers use to run their apps.

We handle the mess

While you work with Gomix, we seamlessly upgrade your servers and cloud infrastructure in the background. There’s no deployment or server provisioning because it all happens automatically.

Backed by a real company

Gomix is made by Fog Creek, one of the most influential small tech companies in the world. We made Trello, FogBugz and co-created Stack Overflow.

Why Did We Make Gomix?

In some ways, Gomix is a throwback to an older era of software or the internet, when there were simpler ways to get started making cool stuff. For people who were around at that time, they'll understand Gomix easily: We’re bringing “View Source” back. Of course, they didn't literally take “View Source” out of web browsers, but the ability to just look at the code behind something, and tweak it, and make your own thing, was essential to making the Internet fun, and weird, and diverse, in its early days. And that has sadly disappeared.

Similarly, in even earlier eras, tools like HyperCard on the Mac and Visual Basic on Windows democratized software creation, letting regular individuals or casual business users create useful apps to meet their needs. During development, Gomix was even called “HyperDev”, as a nod to this history — and its early-90s aesthetic subtly nods to that heritage, too.

Whether we look at simple issues like being able to do fun things with an Amazon Echo, or hugely complex issues like trying to make tech and programming more inclusive, Gomix has a role to play in solving problems that matter. And we’re going to have fun doing it!"
webdev  bots  gomix  slack  alexa  fogcreek  remixing  programming  webdesign 
december 2016 by robertogreco
Lauren Ipsum
"A story about com­put­er sci­ence and other im­prob­able th­ings.

Laurie is lost in User­land. She knows where she is, or where she's going, but maybe not at the same time. The only way out is through Jargon-infested swamps, gates guar­ded by per­fect logic, and the per­ils of break­fast time at the Philosop­her's Diner. With just her wits and the help of a li­zard who thinks he's a di­nosaur, Laurie has to find her own way home.

“In­spir­ing students to be­come the de­velop­ers, en­gine­ers, and in­novators who will create sol­u­tions to some of the Nation's toug­hest chal­lenges."
— The White House"
carlosbueno  books  education  kids  classideas  fiction  compsci  computerscience  programming  children  toread 
september 2016 by robertogreco
Hello Ruby
"Hello Ruby is the world's most whimsical way to learn about computers, technology and programming. The story started with a book, and now Ruby continues her adventures in exercises, games and apps. It’s suited for kids age 5 years and older (but even adults might learn something new)."
ruby  books  education  programming  lindaliukas  kids  children 
july 2016 by robertogreco
Turtle
"A Library by Leah Buechley for the Processing programming environment. The Turtle library provides an implementation of a LOGO Turtle for Processing.

Turtle Geometry (see the fabulous book of the same name by Hal Abelson and Andrea diSessa) provides a different way of thinking about geometry. You draw by driving around a "turtle". Programs are written from the point of view of this turtle, which enables you to take an embodied approach to geometry.

LOGO, a turtle-based programming language, was developed by Seymour Papert and a group of collaboraters in the late 1960s. It was presented as a novel way to introduce children to computer programming and mathematics. LOGO and Turtle Geometry remain strongly associated with children and education, but are full of beautiful tools and ideas that adult artists and programmers can fruitfully explore.

A previous turtle library for Processing, Terrapin, is great, but somewhat limited in functionality. This library provides a more full-featured implementation, including "push" and "pop" functionality as well as high-resolution drawing capabilities.

DOWNLOAD

Download Turtle version 1.0.0 (1) in .zip format."
leahbuechley  logo  processing  programming  geometry  2016 
july 2016 by robertogreco
Remarks at the SASE Panel On The Moral Economy of Tech
"I am only a small minnow in the technology ocean, but since it is my natural habitat, I want to make an effort to describe it to you.

As computer programmers, our formative intellectual experience is working with deterministic systems that have been designed by other human beings. These can be very complex, but the complexity is not the kind we find in the natural world. It is ultimately always tractable. Find the right abstractions, and the puzzle box opens before you.

The feeling of competence, control and delight in discovering a clever twist that solves a difficult problem is what makes being a computer programmer sometimes enjoyable.

But as anyone who's worked with tech people knows, this intellectual background can also lead to arrogance. People who excel at software design become convinced that they have a unique ability to understand any kind of system at all, from first principles, without prior training, thanks to their superior powers of analysis. Success in the artificially constructed world of software design promotes a dangerous confidence.

Today we are embarked on a great project to make computers a part of everyday life. As Marc Andreessen memorably frames it, "software is eating the world". And those of us writing the software expect to be greeted as liberators.

Our intentions are simple and clear. First we will instrument, then we will analyze, then we will optimize. And you will thank us.

But the real world is a stubborn place. It is complex in ways that resist abstraction and modeling. It notices and reacts to our attempts to affect it. Nor can we hope to examine it objectively from the outside, any more than we can step out of our own skin.

The connected world we're building may resemble a computer system, but really it's just the regular old world from before, with a bunch of microphones and keyboards and flat screens sticking out of it. And it has the same old problems.

Approaching the world as a software problem is a category error that has led us into some terrible habits of mind.

BAD MENTAL HABITS

First, programmers are trained to seek maximal and global solutions. Why solve a specific problem in one place when you can fix the general problem for everybody, and for all time? We don't think of this as hubris, but as a laudable economy of effort. And the startup funding culture of big risk, big reward encourages this grandiose mode of thinking. There is powerful social pressure to avoid incremental change, particularly any change that would require working with people outside tech and treating them as intellectual equals.

Second, treating the world as a software project gives us a rationale for being selfish. The old adage has it that if you are given ten minutes to cut down a tree, you should spend the first five sharpening your axe. We are used to the idea of bootstrapping ourselves into a position of maximum leverage before tackling a problem.

In the real world, this has led to a pathology where the tech sector maximizes its own comfort. You don't have to go far to see this. Hop on BART after the conference and take a look at Oakland, or take a stroll through downtown San Francisco and try to persuade yourself you're in the heart of a boom that has lasted for forty years. You'll see a residential theme park for tech workers, surrounded by areas of poverty and misery that have seen no benefit and ample harm from our presence. We pretend that by maximizing our convenience and productivity, we're hastening the day when we finally make life better for all those other people.

Third, treating the world as software promotes fantasies of control. And the best kind of control is control without responsibility. Our unique position as authors of software used by millions gives us power, but we don't accept that this should make us accountable. We're programmers—who else is going to write the software that runs the world? To put it plainly, we are surprised that people seem to get mad at us for trying to help.

Fortunately we are smart people and have found a way out of this predicament. Instead of relying on algorithms, which we can be accused of manipulating for our benefit, we have turned to machine learning, an ingenious way of disclaiming responsibility for anything. Machine learning is like money laundering for bias. It's a clean, mathematical apparatus that gives the status quo the aura of logical inevitability. The numbers don't lie.

Of course, people obsessed with control have to eventually confront the fact of their own extinction. The response of the tech world to death has been enthusiastic. We are going to fix it. Google Ventures, for example, is seriously funding research into immortality. Their head VC will call you a "deathist" for pointing out that this is delusional.

Such fantasies of control come with a dark side. Witness the current anxieties about an artificial superintelligence, or Elon Musk's apparently sincere belief that we're living in a simulation. For a computer programmer, that's the ultimate loss of control. Instead of writing the software, you are the software.

We obsess over these fake problems while creating some real ones.

In our attempt to feed the world to software, techies have built the greatest surveillance apparatus the world has ever seen. Unlike earlier efforts, this one is fully mechanized and in a large sense autonomous. Its power is latent, lying in the vast amounts of permanently stored personal data about entire populations.

We started out collecting this information by accident, as part of our project to automate everything, but soon realized that it had economic value. We could use it to make the process self-funding. And so mechanized surveillance has become the economic basis of the modern tech industry.

SURVEILLANCE CAPITALISM

Surveillance capitalism has some of the features of a zero-sum game. The actual value of the data collected is not clear, but it is definitely an advantage to collect more than your rivals do. Because human beings develop an immune response to new forms of tracking and manipulation, the only way to stay successful is to keep finding novel ways to peer into people's private lives. And because much of the surveillance economy is funded by speculators, there is an incentive to try flashy things that will capture the speculators' imagination, and attract their money.

This creates a ratcheting effect where the behavior of ever more people is tracked ever more closely, and the collected information retained, in the hopes that further dollars can be squeezed out of it.

Just like industrialized manufacturing changed the relationship between labor and capital, surveillance capitalism is changing the relationship between private citizens and the entities doing the tracking. Our old ideas about individual privacy and consent no longer hold in a world where personal data is harvested on an industrial scale.

Those who benefit from the death of privacy attempt to frame our subjugation in terms of freedom, just like early factory owners talked about the sanctity of contract law. They insisted that a worker should have the right to agree to anything, from sixteen-hour days to unsafe working conditions, as if factory owners and workers were on an equal footing.

Companies that perform surveillance are attempting the same mental trick. They assert that we freely share our data in return for valuable services. But opting out of surveillance capitalism is like opting out of electricity, or cooked foods—you are free to do it in theory. In practice, it will upend your life.

Many of you had to obtain a US visa to attend this conference. The customs service announced yesterday it wants to start asking people for their social media profiles. Imagine trying to attend your next conference without a LinkedIn profile, and explaining to the American authorities why you are so suspiciously off the grid.

The reality is, opting out of surveillance capitalism means opting out of much of modern life.

We're used to talking about the private and public sector in the real economy, but in the surveillance economy this boundary doesn't exist. Much of the day-to-day work of surveillance is done by telecommunications firms, which have a close relationship with government. The techniques and software of surveillance are freely shared between practitioners on both sides. All of the major players in the surveillance economy cooperate with their own country's intelligence agencies, and are spied on (very effectively) by all the others.

As a technologist, this state of affairs gives me the feeling of living in a forest that is filling up with dry, dead wood. The very personal, very potent information we're gathering about people never goes away, only accumulates. I don't want to see the fire come, but at the same time, I can't figure out a way to persuade other people of the great danger.

So I try to spin scenarios.

THE INEVITABLE LIST OF SCARY SCENARIOS

One of the candidates running for President this year has promised to deport eleven million undocumented immigrants living in the United States, as well as block Muslims from entering the country altogether. Try to imagine this policy enacted using the tools of modern technology. The FBI would subpoena Facebook for information on every user born abroad. Email and phone conversations would be monitored to check for the use of Arabic or Spanish, and sentiment analysis applied to see if the participants sounded "nervous". Social networks, phone metadata, and cell phone tracking would lead police to nests of hiding immigrants.

We could do a really good job deporting people if we put our minds to it.

Or consider the other candidate running for President, the one we consider the sane alternative, who has been a longtime promoter of a system of extrajudicial murder that uses blanket surveillance of cell phone traffic, email, and social media to create lists of people to be tracked and killed with autonomous aircraft. … [more]
culture  ethics  privacy  surveillance  technology  technosolutionism  maciegceglowski  2016  computing  coding  programming  problemsolving  systemsthinking  systems  software  control  power  elonmusk  marcandreessen  siliconvalley  sanfrancisco  oakland  responsibility  machinelearning  googlevntures  vc  capitalism  speculation  consent  labor  economics  poland  dystopia  government  politics  policy  immortality 
june 2016 by robertogreco
The Minecraft Generation - The New York Times
"Seth Frey, a postdoctoral fellow in computational social science at Dartmouth College, has studied the behavior of thousands of youths on Minecraft servers, and he argues that their interactions are, essentially, teaching civic literacy. “You’ve got these kids, and they’re creating these worlds, and they think they’re just playing a game, but they have to solve some of the hardest problems facing humanity,” Frey says. “They have to solve the tragedy of the commons.” What’s more, they’re often anonymous teenagers who, studies suggest, are almost 90 percent male (online play attracts far fewer girls and women than single-­player mode). That makes them “what I like to think of as possibly the worst human beings around,” Frey adds, only half-­jokingly. “So this shouldn’t work. And the fact that this works is astonishing.”

Frey is an admirer of Elinor Ostrom, the Nobel Prize-­winning political economist who analyzed the often-­unexpected ways that everyday people govern themselves and manage resources. He sees a reflection of her work in Minecraft: Running a server becomes a crash course in how to compromise, balance one another’s demands and resolve conflict.

Three years ago, the public library in Darien, Conn., decided to host its own Minecraft server. To play, kids must acquire a library card. More than 900 kids have signed up, according to John Blyberg, the library’s assistant director for innovation and user experience. “The kids are really a community,” he told me. To prevent conflict, the library installed plug-ins that give players a chunk of land in the game that only they can access, unless they explicitly allow someone else to do so. Even so, conflict arises. “I’ll get a call saying, ‘This is Dasher80, and someone has come in and destroyed my house,’ ” Blyberg says. Sometimes library administrators will step in to adjudicate the dispute. But this is increasingly rare, Blyberg says. “Generally, the self-­governing takes over. I’ll log in, and there’ll be 10 or 15 messages, and it’ll start with, ‘So-and-so stole this,’ and each message is more of this,” he says. “And at the end, it’ll be: ‘It’s O.K., we worked it out! Disregard this message!’ ”

Several parents and academics I interviewed think Minecraft servers offer children a crucial “third place” to mature, where they can gather together outside the scrutiny and authority at home and school. Kids have been using social networks like Instagram or Snapchat as a digital third place for some time, but Minecraft imposes different social demands, because kids have to figure out how to respect one another’s virtual space and how to collaborate on real projects.

“We’re increasingly constraining youth’s ability to move through the world around them,” says Barry Joseph, the associate director for digital learning at the American Museum of Natural History. Joseph is in his 40s. When he was young, he and his friends roamed the neighborhood unattended, where they learned to manage themselves socially. Today’s fearful parents often restrict their children’s wanderings, Joseph notes (himself included, he adds). Minecraft serves as a new free-­ranging realm.

Joseph’s son, Akiva, is 9, and before and after school he and his school friend Eliana will meet on a Minecraft server to talk and play. His son, Joseph says, is “at home but still getting to be with a friend using technology, going to a place where they get to use pickaxes and they get to use shovels and they get to do that kind of building. I wonder how much Minecraft is meeting that need — that need that all children have.” In some respects, Minecraft can be as much social network as game.

Just as Minecraft propels kids to master Photoshop or video-­editing, server life often requires kids to acquire complex technical skills. One 13-year-old girl I interviewed, Lea, was a regular on a server called Total Freedom but became annoyed that its administrators weren’t clamping down on griefing. So she asked if she could become an administrator, and the owners said yes.

For a few months, Lea worked as a kind of cop on that beat. A software tool called “command spy” let her observe records of what players had done in the game; she teleported miscreants to a sort of virtual “time out” zone. She was eventually promoted to the next rank — “telnet admin,” which allowed her to log directly into the server via telnet, a command-­line tool often used by professionals to manage servers. Being deeply involved in the social world of Minecraft turned Lea into something rather like a professional systems administrator. “I’m supposed to take charge of anybody who’s breaking the rules,” she told me at the time.

Not everyone has found the online world of Minecraft so hospitable. One afternoon while visiting the offices of Mouse, a nonprofit organization in Manhattan that runs high-tech programs for kids, I spoke with Tori. She’s a quiet, dry-­witted 17-year-old who has been playing Minecraft for two years, mostly in single-­player mode; a recent castle-­building competition with her younger sister prompted some bickering after Tori won. But when she decided to try an online server one day, other players — after discovering she was a girl — spelled out “BITCH” in blocks.

She hasn’t gone back. A group of friends sitting with her in the Mouse offices, all boys, shook their heads in sympathy; they’ve seen this behavior “everywhere,” one said. I have been unable to find solid statistics on how frequently harassment happens in Minecraft. In the broader world of online games, though, there is more evidence: An academic study of online players of Halo, a shoot-’em-up game, found that women were harassed twice as often as men, and in an unscientific poll of 874 self-­described online gamers, 63 percent of women reported “sex-­based taunting, harassment or threats.” Parents are sometimes more fretful than the players; a few told me they didn’t let their daughters play online. Not all girls experience harassment in Minecraft, of course — Lea, for one, told me it has never happened to her — and it is easy to play online without disclosing your gender, age or name. In-game avatars can even be animals.

How long will Minecraft’s popularity endure? It depends very much on Microsoft’s stewardship of the game. Company executives have thus far kept a reasonably light hand on the game; they have left major decisions about the game’s development to Mojang and let the team remain in Sweden. But you can imagine how the game’s rich grass-roots culture might fray. Microsoft could, for example, try to broaden the game’s appeal by making it more user-­friendly — which might attenuate its rich tradition of information-­sharing among fans, who enjoy the opacity and mystery. Or a future update could tilt the game in a direction kids don’t like. (The introduction of a new style of combat this spring led to lively debate on forums — some enjoyed the new layer of strategy; others thought it made Minecraft too much like a typical hack-and-slash game.) Or an altogether new game could emerge, out-­Minecrafting Minecraft.

But for now, its grip is strong. And some are trying to strengthen it further by making it more accessible to lower-­income children. Mimi Ito has found that the kids who acquire real-world skills from the game — learning logic, administering servers, making YouTube channels — tend to be upper middle class. Their parents and after-­school programs help them shift from playing with virtual blocks to, say, writing code. So educators have begun trying to do something similar, bringing Minecraft into the classroom to create lessons on everything from math to history. Many libraries are installing Minecraft on their computers."
2016  clivethompson  education  videogames  games  minecraft  digitalculture  gaming  mimiito  robinsloan  coding  computationalthinking  stem  programming  commandline  ianbogost  walterbenjamin  children  learning  resilience  colinfanning  toys  lego  wood  friedrichfroebel  johnlocke  rebeccamir  mariamontessori  montessori  carltheodorsorensen  guilds  mentoring  mentorship  sloyd  denmark  construction  building  woodcrafting  woodcraft  adventureplaygrounds  material  logic  basic  mojang  microsoft  markuspersson  notch  modding  photoshop  texturepacks  elinorostrom  collaboration  sethfrey  civics  youtube  networkedlearning  digitalliteracy  hacking  computers  screentime  creativity  howwelearn  computing  froebel 
april 2016 by robertogreco
How to Think About Bots | Motherboard
"Who is responsible for the output and actions of bots, both ethically and legally? How does semi-autonomy create ethical constraints that limit the maker of a bot?"



"Given the public and social role they increasingly play—and whatever responsibility their creators assume—the actions of bots, whether implicitly or explicitly, have political outcomes. The last several years have seen a rise in bots being used to spread political propaganda, stymie activism and bolster social media follower lists of public figures. Activists can use bots to mobilize people around social and political causes. People working for a variety of groups and causes use bots to inject automated discourse on platforms like Twitter and Reddit. Over the last few years both government employees and opposition activists in Mexico have used bots in attempts to sway public opinion. Where do we draw the line between propaganda, public relations and smart communication?

Platforms, governments and citizens must step in and consider the purpose, and future, of bot technology before manipulative anonymity becomes a hallmark of the social bot."
bots  robots  ethics  ai  artificialintelligence  twitter  bot-ifesto  programming  coding  automation  samuelwoolley  danahboyd  meredithbroussard  madeleineelish  lainnafader  timhwang  alexislloyd  giladlotan  luisdanielpalacios  allisonparrish  giladrosner  saiphsavage  smanthashorey  socialbots  oliviataters  politics  policy 
march 2016 by robertogreco
Liberal Arts Degree to Software Industry — Medium
"1. get comfortable using linux …

2. get comfortable using a version control system …

3. learn to use a command line text/code editor …

4. learn a high-level, dynamic, interpreted programming language …

5. learn a low-level, statically typed, compiled programming language (without a garbage collector) …

6. build your own (static) website from scratch …

7. contribute to an open source project …

8. get familiar with test driven development (TDD) …

9. understand how to use a (relational) database …

10. go deep in one particular technology stack"
liberarts  coding  software  linux  programming  2016  paulcarduner 
february 2016 by robertogreco
Sha Hwang - Keynote [Forms of Protest] - UX Burlington on Vimeo
"Let’s close the day by talking about our responsibilities and opportunities as designers. Let’s talk about the pace of fashion and the promise of infrastructure. Let’s talk about systematic failure — failure without malice. Let’s talk about the ways to engage in this messy and complex world. Let’s throw shade on fame and shine light on the hard quiet work we call design."
shahwang  2015  design  infrastructure  fashion  systemsthinking  complexity  messiness  protest  careers  technology  systems  storytelling  scale  stewartbrand  change  thehero'sjourney  founder'sstory  politics  narrative  narratives  systemsdesign  blame  control  algorithms  systemfailure  healthcare.gov  mythmaking  teams  purpose  scalability  bias  microaggressions  dignity  abuse  malice  goodwill  fear  inattention  donellameadows  leveragepoints  making  building  constraints  coding  code  programming  consistency  communication  sharing  conversation  government  ux  law  uxdesign  simplicity  kindness  individuals  responsibility  webdev  web  internet  nava  codeforamerica  18f  webdesign 
january 2016 by robertogreco
Apparatus: A hybrid graphics editor and programming environment for creating interactive diagrams
"Apparatus is a hybrid graphics editor and programming environment for creating interactive diagrams.

The Apparatus Editor runs in the browser and interactive diagrams created with Apparatus can be shared and embedded on the web (coming soon).

Apparatus is free, open-source software."



"Apparatus is under active development. Discuss how Apparatus should evolve on the Apparatus Google Group.

Source code is available on Github under the MIT license. Contributions are very welcome! Big thanks to all who have contributed code to Apparatus.

Apparatus was originally developed by Toby Schachman as a research project within the Communications Design Group (CDG) sponsored by SAP Labs. Thanks to Bret Victor, Paula Te, Matthias Graf, Michael Nagle, Chaim Gingold, Robert Ochshorn, Glen Chiacchieri, Joshua Horowitz, Ian Johnson, Simon Last, Ivan Zhao, Emily Eiffler, Vi Hart, and Monique DeSalvo for design discussions, beta testing, and encouragement!"

[via: http://roomthily.tumblr.com/post/136019466687/apparatus-a-hybrid-graphics-editor-and ]
graphics  visualization  software  opensource  onlinetoolkit  interactive  programming  classideas  tobyschachman  communicationsdesigngroup  brettvictor  paulate  matthiasgraf  vihart  moniquedesalvo  joshuahorowitz  ianjohnson  simonlast  ivanzhao  michaelnagle  chaimgingold  robertochshorn  glenchiacchieri  drawing  edg  srg 
december 2015 by robertogreco
A Simulation In Emoji
"Howdy! 🌻 This (prototype) is a tool that lets you simulate systems of the world. In emoji.

My hope is that this can help people make more stuff like Parable of the Polygons, interactives that help people understand the complex systems of the world we live in. Also, emoji.

In this simulation, you can edit EVERYTHING. Draw on the grid, modify the rules, even change these very words you're reading! And at the end, you can save and share your creation. That's the cool thing: there is *no* difference between playing & making, between reading & writing.

That's the Forest Fire model to your left. Pretty, isn't it? Scroll down, and you'll find the rules for it, exposed for you to play with. Have fun!"

[See also:
https://github.com/ncase/emoji-prototype
http://ncase.me/emoji-prototype/?remote=-K3ztgWwxXOUb9-QVRGe ]
simulations  classideas  emoji  programming  cellularautomata  simulation  conwaysgameoflife 
december 2015 by robertogreco
The Jacob’s Ladder of coding — Medium
"Anecdotes and questions about climbing up and down the ladder of abstraction: Atari, ARM, demoscene, education, creative coding, community, seeking lightness, enlightenment & strange languages"



"With only an hour or two of computer time a week, our learning and progress was largely down to intensive trial & error, daily homework and learning to code and debug with only pencil and paper, whilst trying to be the machine yourself: Playing every step through in our heads (and on paper) over and over until we were confident, the code did as we’d expect, yet, often still failing because of wrong intuitions. Learning this analytical thinking is essential to successful debugging, even today, specifically in languages / environments where no GUI debugger is available. In the late 90s, John Maeda did similar exercises at MIT Media Lab, with students role-playing different parts of a CPU or a whole computer executing a simple process. Later at college, my own CS prof too would often quote Alan Perlis:
“To understand a program you must become both the machine and the program.” — Alan Perlis

Initially we’d only be using the machine largely to just verify our ideas prepared at home (spending the majority of the time typing in/correcting numbers from paper). Through this monastic style of working, we also learned the importance of having the right tools and balance of skills within the group and were responsible to create them ourselves in order to achieve our vision. This important lesson stayed with me throughout (maybe even became) my career so far… Most projects I worked on, especially in the past 15 years, almost exclusively relied on custom-made tooling, which was as much part of the final outcome as the main deliverable to clients. Often times it even was the main deliverable. On the other hand, I’ve also had to learn the hard way that being a largely self-sufficient generalist often is undesired in the modern workplace, which frequently still encourages narrow expertise above all else…

After a few months of convincing my parents to invest all of their saved up and invaluable West-german money to purchase a piece of “Power Without the Price” (a much beloved Atari 800XL) a year before the Wall came down in Berlin, I finally gained daily access to a computer, but was still in a similar situation as before: No more hard west money left to buy a tape nor disk drive from the Intershop, I wasn’t able to save any work (apart from creating paper copies) and so the Atari was largely kept switched on until November 10, 1989, the day after the Berlin Wall was opened and I could buy an XC-12 tape recorder. I too had to choose whether to go the usual route of working with the built-in BASIC language or stick with what I’d learned/taught myself so far, Assembly… In hindsight, am glad I chose the latter, since it proved to be far more useful and transportable knowledge, even today!"



"Lesson learned: Language skills, natural and coded ones, are gateways, opening paths not just for more expression, but also to paths in life.

As is the case today, so it was back then: People tend to organize around specific technological interests, languages and platforms and then stick with them for a long time, for better or worse. Over the years I’ve been part of many such tool-based communities (chronologically: Asm, C, TurboPascal, Director, JS, Flash, Java, Processing, Clojure) and have somewhat turned into a nomad, not being able to ever find a true home in most of them. This might sound judgemental and negative, but really isn’t meant to and these travels through the land of languages and toolkits has given me much food for thought. Having slowly climbed up the ladder of abstraction and spent many years both with low & high level languages, has shown me how much each side of the spectrum can inform and learn from the other (and they really should do more so!). It’s an experience I can highly recommend to anyone attempting to better understand these machines some of us are working with for many hours a day and which impact so much of all our lives. So am extremely grateful to all the kind souls & learning encountered on the way!"



"In the vastly larger open source creative computing demographic of today, the by far biggest groups are tight-knit communities around individual frameworks and languages. There is much these platforms have achieved in terms of output, increasing overall code literacy and turning thousands of people from mere computer users into authors. This is a feat not be underestimated and a Good Thing™! Yet my issue with this siloed general state of affairs is that, apart from a few notable exceptions (especially the more recent arrivals), there’s unfortunately a) not much cross-fertilizing with fundamentally different and/or new ideas in computing going on and b) over time only incremental progress is happening, business as usual, rather than a will to continuously challenge core assumptions among these largest communities about how we talk to machines and how we can do so better. I find it truly sad that many of these popular frameworks rely only on the same old imperative programming language family, philosophy and process, which has been pre-dominant and largely unchanged for the past 30+ years, and their communities also happily avoid or actively reject alternative solutions, which might require fundamental changes to their tools, but which actually could be more suitable and/or powerful to their aims and reach. Some of these platforms have become and act as institutions in their own right and as such also tend to espouse an inward looking approach & philosophy to further cement their status (as owners or pillars?) in their field. This often includes a no-skills-neccessary, we-cater-all-problems promise to their new users, with each community re-inventing the same old wheels in their own image along the way. It’s Not-Invented-Here on a community level: A reliance on insular support ecosystems, libraries & tooling is typical, reducing overall code re-use (at least between communities sharing the same underlying language) and increasing fragmentation. More often than not these platforms equate simplicity with ease (go watch Rich Hickey taking this argument eloquently apart!). The popular prioritization of no pre-requisite knowledge, super shallow learning curves and quick results eventually becomes the main obstacle to later achieve systemic changes, not just in these tools themselves, but also for (creative) coding as discipline at large. Bloatware emerges. Please do forgive if that all sounds harsh, but I simply do believe we can do better!

Every time I talk with others about this topic, I can’t help but think about Snow Crash’s idea of “Language is a virus”. I sometimes do wonder what makes us modern humans, especially those working with computing technology, so fundamentalist and brand-loyal to these often flawed platforms we happen to use? Is it really that we believe there’s no better way? Are we really always only pressed for time? Are we mostly content with Good Enough? Are we just doing what everyone else seems to be doing? Is it status anxiety, a feeling we have to use X to make a living? Are we afraid of unlearning? Is it that learning tech/coding is (still) too hard, too much of an effort, which can only be justified a few times per lifetime? For people who have been in the game long enough and maybe made a name for themselves in their community, is it pride, sentimentality or fear of becoming a complete beginner again? Is it maybe a sign that the way we teach computing and focus on concrete tools too early in order to obtain quick, unrealistically complex results, rather than fundamental (“boring”) knowledge, which is somewhat flawed? Is it our addiction to largely focus on things we can document/celebrate every minor learning step as an achievement in public? This is no stab at educators — much of this systemic behavior is driven by the sheer explosion of (too often similar) choices, demands made by students and policy makers. But I do think we should ask ourselves these questions more often."

[author's tweet: https://twitter.com/toxi/status/676578816572067840 ]
coding  via:tealtan  2015  abstraction  demoscene  education  creativecoding  math  mathematics  howwelearn  typography  design  dennocoil  alanperlis  johnmaeda  criticalthinking  analyticalthinking  basic  programming  assembly  hexcode  georgedyson  computing  computers  atari  amiga  commodore  sinclair  identity  opensource  insularity  simplicity  ease  language  languages  community  communities  processing  flexibility  unschooling  deschooling  pedagogy  teaching  howweteach  understanding  bottomup  topdown  karstenschmidt 
december 2015 by robertogreco
Forget Story Mode, where's Minecraft Advanced Editor Mode?
"Rather than turning Minecraft into a guided Choose Your Own Adventure, when will they flesh out the rollback features for people who like to build their own Minecraft adventures?

Your opinion of Minecraft Story Mode is probably determined by how you use Minecraft. If you see it primarily as an open world survival game then you might be happy to go on further adventures with someone holding your hand. But if you view Minecraft more as a platform for building and sharing worlds, like my family does, then you'd perhaps prefer the developers worked to grant you more freedom rather than less.

One of Minecraft's major shortcomings as a creation platform is the lack of a simple rollback/reset feature. For example, my son uses Creative mode to build exotic worlds with puzzles and traps for others to play. He can use the console to switch the world to Adventure mode, which limits what kind of damage players can do, but there's no simple way to rollback the world for the next player without manually resetting the traps.

The idea isn't just for players to respawn in the same spot, or to wipe everything clean as if you'd deleted the world and generated it from a seed. The idea is to create and manage save points in order to undo recent changes and put everything back where it was before the current player entered the world.

Thinking of it like reverting to the previous version of a document rather than manually undoing all your recent changes. Even a simple way to duplicate worlds from the server console would be helpful, so you could play the copies and keep the original intact.

There are workarounds for this problem, but they can be a little clunky. Firstly you can manually move worlds in and out of the save folder on the server, but this is rather cumbersome. Secondly you can use the rollback/restore features built into some Minecraft hosting services, but they're more designed for disaster recovery than creating and managing save points.

Another solution is to switch from the standard Minecraft server to a custom Minecraft server like Bukkit which is designed with modding in mind. Running Bukkit you can install a plugin like CoreProtect to rollback a world, but straying beyond a vanilla Minecraft server can present a steep learning curve and it would be great if they could build at least a simple version of this into the standard Minecraft server.

Just to make life more complicated, my son tends to split his efforts between standard Minecraft and Minecraft Pocket Edition running on the iPad. To bring these together we're experimenting with running a PocketMine hosted server with plugins to support desktop Minecraft clients along with rollback features – hopefully creating a one-stop shop for building and sharing Minecraft worlds for desktops and handheld devices. Another option is Dragonet. It's likely to be a bumpy road, we'll see how it goes.

UPDATE: It looks like I picked a bad time to develop an interest in the PocketMine server because we're still waiting on stable versions to run with the latest update to the Minecraft Pocket Edition iOS app. Unlike the desktop Minecraft software, once you upgrade the iOS app there's no easy way to switch back to a previous version – which is incredibly frustrating when you're trying to connect to older servers. There are other Minecraft Pocket Edition server options around, but I can't vouch for any of them.

It's great to see that Minecraft is keen to help get kids interested in programming, but it would be even better if they could add a few more advanced editing features to make Minecraft more user-friendly for people who want to build their own worlds rather than just play along."
minecraft  edg  srg  programming  kids  children  coding  2015  adamturner 
november 2015 by robertogreco
Vidcode
"Learn to code by creating music videos, motion graphics, and fun video effects.

Vidcode teaches JavaScript through lessons built around creative video projects. Learn about if-else statements while making videos about robots shooting lasers, variables through making your own old-movie intro, and objects while manipulating pixels! The possibilities are endless.

Vidcode's drag and drop interface turns effects and JavaScript concepts into actual code when you drop them into the editor. The way the code changes the video is visible right away.

Vidcode also has an active community, where users share their videos, code, and ideas!

Users post videos to their portfolios, and can show off what they've made.


Organizations and schools use our software within their programs."

[via: Alexandra Diracles’s Eyeo 2015 Ignite! talk:
https://vimeo.com/136017297 ]
girls  coding  video  videoproduction  programming  classideas  education  vidcode 
august 2015 by robertogreco
The Humane Representation of Thought on Vimeo
"Closing keynote at the UIST and SPLASH conferences, October 2014.
Preface: http://worrydream.com/TheHumaneRepresentationOfThought/note.html

References to baby-steps towards some of the concepts mentioned:

Dynamic reality (physical responsiveness):
- The primary work here is Hiroshi Ishii's "Radical Atoms": http://tangible.media.mit.edu/project/inform/
- but also relevant are the "Soft Robotics" projects at Harvard: http://softroboticstoolkit.com
- and at Otherlab: http://youtube.com/watch?v=gyMowPAJwqo
- and some of the more avant-garde corners of material science and 3D printing

Dynamic conversations and presentations:
- Ken Perlin's "Chalktalk" changes daily; here's a recent demo: http://bit.ly/1x5eCOX

Context-sensitive reading material:
- http://worrydream.com/MagicInk/

"Explore-the-model" reading material:
- http://worrydream.com/ExplorableExplanations/
- http://worrydream.com/LadderOfAbstraction/
- http://ncase.me/polygons/
- http://redblobgames.com/pathfinding/a-star/introduction.html
- http://earthprimer.com/

Evidence-backed models:
- http://worrydream.com/TenBrighterIdeas/

Direct-manipulation dynamic authoring:
- http://worrydream.com/StopDrawingDeadFish/
- http://worrydream.com/DrawingDynamicVisualizationsTalk/
- http://tobyschachman.com/Shadershop/

Modes of understanding:
- Jerome Bruner: http://amazon.com/dp/0674897013
- Howard Gardner: http://amazon.com/dp/0465024335
- Kieran Egan: http://amazon.com/dp/0226190390

Embodied thinking:
- Edwin Hutchins: http://amazon.com/dp/0262581469
- Andy Clark: http://amazon.com/dp/0262531569
- George Lakoff: http://amazon.com/dp/0465037712
- JJ Gibson: http://amazon.com/dp/0898599598
- among others: http://en.wikipedia.org/wiki/Embodied_cognition

I don't know what this is all about:
- http://worrydream.com/ABriefRantOnTheFutureOfInteractionDesign/
- http://worrydream.com/ABriefRantOnTheFutureOfInteractionDesign/responses.html

---

Abstract:

New representations of thought — written language, mathematical notation, information graphics, etc — have been responsible for some of the most significant leaps in the progress of civilization, by expanding humanity’s collectively-thinkable territory.

But at debilitating cost. These representations, having been invented for static media such as paper, tap into a small subset of human capabilities and neglect the rest. Knowledge work means sitting at a desk, interpreting and manipulating symbols. The human body is reduced to an eye staring at tiny rectangles and fingers on a pen or keyboard.

Like any severely unbalanced way of living, this is crippling to mind and body. But it is also enormously wasteful of the vast human potential. Human beings naturally have many powerful modes of thinking and understanding.

Most are incompatible with static media. In a culture that has contorted itself around the limitations of marks on paper, these modes are undeveloped, unrecognized, or scorned.

We are now seeing the start of a dynamic medium. To a large extent, people today are using this medium merely to emulate and extend static representations from the era of paper, and to further constrain the ways in which the human body can interact with external representations of thought.

But the dynamic medium offers the opportunity to deliberately invent a humane and empowering form of knowledge work. We can design dynamic representations which draw on the entire range of human capabilities — all senses, all forms of movement, all forms of understanding — instead of straining a few and atrophying the rest.

This talk suggests how each of the human activities in which thought is externalized (conversing, presenting, reading, writing, etc) can be redesigned around such representations.

---

Art by David Hellman.
Bret Victor -- http://worrydream.com "

[Some notes from Boris Anthony:

"Those of you who know my "book hack", Bret talks about exactly what motivates my explorations starting at 20:45 in https://vimeo.com/115154289 "
https://twitter.com/Bopuc/status/574339495274876928

"From a different angle, btwn 20:00-29:00 Bret explains how "IoT" is totally changing everything
https://vimeo.com/115154289
@timoreilly @moia"
https://twitter.com/Bopuc/status/574341875836043265 ]
bretvictor  towatch  interactiondesign  davidhellman  hiroshiishii  softrobotics  robots  robotics  kenperlin  jeromebruner  howardgardner  kieranegan  edwinhutchins  andyclark  jjgibson  embodiedcognition  cognition  writing  math  mathematics  infographic  visualization  communication  graphics  graphicdesign  design  representation  humans  understanding  howwelearn  howwethink  media  digital  dynamism  movement  conversation  presentation  reading  howweread  howwewrite  chalktalk  otherlab  3dprinting  3d  materials  physical  tangibility  depth  learning  canon  ui  informationdesign  infographics  maps  mapping  data  thinking  thoughts  numbers  algebra  arithmetic  notation  williamplayfair  cartography  gestures  placevalue  periodictable  michaelfaraday  jamesclerkmaxell  ideas  print  printing  leibniz  humanism  humanerepresentation  icons  visual  aural  kinesthetic  spatial  tactile  symbols  iot  internetofthings  programming  computers  screens  computation  computing  coding  modeling  exploration  via:robertogreco  reasoning  rhetoric  gerrysussman  environments  scale  virtualization 
march 2015 by robertogreco
Consider the Boolean - Learning - Source: An OpenNews project
"Ultimately though, I think the confusing thing about Boolean logic to most people is its strict precision in a world that is anything but. If I asked you “Are you interested in this essay or not?” and you answered “Yes,” that response is genuinely annoying, even though that is technically always the correct answer according to Boolean algebra. Ultimately, what things in this world are absolutely and precisely true? Not as many as we might think. This is a journalism tutorial and not a philosophical treatise, but the point still stands. As programmers, we often use Boolean values to represent conditional elements in our databases, but sometimes the ways we use them obscure and confuse the nuances of reality."
jacobharris  databases  design  news  boolean  booleanlogic  logic  code  coding  programming  journalism  data 
february 2015 by robertogreco
The All-Women Hacker Collective Making Art About the Post-Snowden Age | Motherboard
““There is something about the internet that isn’t working anymore,” is the line that opens filmmaker Jonathan Minard’s short documentary on Deep Lab—a group of women hackers, artists, and theorists who gathered at Carnegie Mellon University in December to answer the question of what, exactly, that disquieting “something” is. The film premieres on Motherboard today.

What Deep Lab represents is just as hard to pin down as the “something” invoked in the opening minutes of Minard’s short film. Is it a book, a lecture series, or Minard’s documentary—all of which were put together in under a month? Is it an ethos? Is it feminist? Is Deep Lab a charrette, a dugnad, or a “congress,” as its participants called it?

It’s hard to say what Deep Lab is in part because of its scattershot nature, both in terms of its products and its focus. The Deep Lab book—available for free online—is a 242-page collection of essays, fragments, and reflections on everything from encryption to cyberfeminism penned by a dozen different authors with divergent interests.
Deep Lab’s interdisciplinary approach is perhaps necessary to parse the complicated realities of the post-Snowden age. Since Snowden’s revelations regarding the scope of the US government’s online surveillance program broke in 2013, it seems as though the internet has taken on a new, dark, and confusing identity.

Larger-than-life interests in the form of corporate and governmental surveillance are now at play in our daily interactions on the internet, and interpreting those outsized realities so we can understand them is no small challenge.

“As an artist, I want to reinterpret culture in a way that society can parse.” said Addie Wagenknecht, the multimedia artist who organized Deep Lab during her ongoing fellowship at the STUDIO for Creative Inquiry at Carnegie Mellon. “You take these big events and try to encapsulate them in a way that you can present them concisely and quickly so that it’s defined for people who experience that piece or exhibition.”

A chapter in the book compiled by data artist Ingrid Burrington is comprised of 20 pages listing objects pulled from the Pentagon’s 1033 program—which has supplied military hardware to local police for decades—in plain black text. After four solid pages of “5.56 MILLIMETRE RIFLE,” it becomes clear that Deep Lab is not only artistically compelling and tantalizingly oblique in how it approaches issues of life and death, but deadly serious.

According to Wagenknecht, Deep Lab is also a medium for women to do more than just participate in digital culture—the tech world has been notoriously resistant to opening its ranks to women—but to interpret and define it, and to share and create tools and techniques for survival within it.

“Maybe for women, we’re more aware of protecting ourselves online because it’s always been a social problem,” Wagenknecht told me. “Think of contacting friends before you leave a party late at night so people can make sure you got home safe—men maybe don’t think about that and women always do. And it’s those same roles on the web. How do you protect yourself from a hack or doxing? The power shifts to the person with more knowledge.”

Deep Lab member Harlo Holmes, who works as the head of metadata for the Guardian Project, designed a system for victims of cyber bullying on Twitter to easily and painlessly map the digital connections between harassers called Foxy Doxxing.

There were also men present at Deep Lab, including Minard, though they weren’t collaborators per se. Multimedia artist Golan Levin is the director of STUDIO, where Deep Lab congregated. Playing host to Deep Lab, Levin—along with Wagenknecht, who was the group’s chief mastermind and organizer—was part of Deep Lab’s development from the very beginning.

“I’m enormously proud,” Levin said. “You’re looking at a book, a documentary, and a lecture series that was put together by a dozen people in a month. I think they’re side-effects of what Deep Lab actually was.”

So, to return to the question that started this article—what is Deep Lab?—Levin provided his own answer: “It’s punk.”

But even more than punk—more than a book, a documentary, a gathering, or a lecture series—Deep Lab is a beginning, according to Allison Burtch, a resident at the Brooklyn-based Eyebeam Art and Technology Center and Deep Lab member.

I don’t think Deep Lab has ended; it was the beginning of a camaraderie,” Burtch said. “Yeah, we did this thing and did some talks, but it’s not ending. This is the beginning of different affiliations with people. It was awesome. “

According to Wagenknecht, a Deep Lab lecture series is planned for later in 2015, and will take place at venues in New York City. Until then, we have a book, several lectures, and a documentary to contemplate what Deep Lab is, and what it all means.​"
2015  deeplab  art  digitalart  infrastructure  2014  ingridburrington  jenlowe  technology  data  jonathanminard  jordanpearson  cyberfeminism  enryption  interdisciplinary  coding  code  programming  surveillance  golanlevin  harloholmes  allisonburtch  hackercollectives  collectives  culture  addiewagenknecht  punk  documentary  poer  subversion  deepweb  freedom  privacy  security  socialmedia  facebook  google  socialnorms  safety 
january 2015 by robertogreco
sferik/active_emoji · GitHub
"A collection of emoji aliases for core Ruby methods. Makes Ruby code easier to read and write, especially for children and people who don't know English.

This project is named with the goal of eventually being merged into Ruby on Rails. Stranger things have happened."
emojo  coding  ruby  rubyonrails  programming  children  kids 
january 2015 by robertogreco
Radical Computer Science — )
"It was such an honor and pleasure exploring the limits of computation with you all this semester. You are all brilliant, talented, and brave people. Together, we all asked and answered questions that most computer science and art programs avoid for a variety of reasons. That was only possible because of your consistent hard work and presence, and I thank you for that.

Endings are just beginnings. As Zan said on our last day together, we’re still in the cave painting era of programming languages. What little actual magic is inside these tools has been revealed to you, and you’ve wielded it well. All that’s left is to think about people, thought, society, politics, and how all those manifest themselves as code, and how code steers them in return. The important questions are human questions, not technical ones.

This blog will live until tumblr shuts down or the current internet stops resolving URLs, whichever comes first. Until then, you have access to the videos, homework, and articles whenever you want. I will continue to post links to this blog as I come across relevant things in my practice, and may use it in the future for a rerun of the same class. This blog is yours forever. Use it.

My final bits of advice will be in the form of a list (lisp hackers amirite):

• You can learn to do anything in this field. I mean this literally. Between online resources, academic papers, and free tools, the only things impeding your ability to code is the amount of time you have available and your drive to keep learning. This is not true of e.g. brain surgery.

• Don’t ever stop asking questions. I also mean this literally. I cannot count the number of times that “accepted wisdom” or “best practices” or “just the way it’s done” has turned out to be horseshit. Question everything. Adopt what makes sense to you, reinvent everything else.

• Don’t ever let anyone tell you your questions are anything but crucially important. Those people are toxic. There are no bad questions, only toxic people.

• Value the process of learning programming as much as (or as more than) the knowledge itself. If you can take joy in the feeling of being bad at something then slowly getting better at it, you will be unstoppable.

• Being really superhumanly good at one particular tool is overrated. It’s great to have something you are fluent in, and it’s a decent goal to have, but certainly not the be-all-and-end-all of programming. See previous point.

• Have fun and be silly. I brought this up in class but it bears repeating. If you are working on something and its not fun, take that as a sign that you should try something else.

• Be kind to one another. The world is a shitty place, and the tech world in particular tends to be racist and sexist, but you can change that just by being yourselves, being kind, and being visible. Often, code speaks louder than words, and code that generates code (compilers!) can be super loud.

• Teach someone what you know. Pass on the torch of knowledge. Its one of the most important ways you can give back, and one of the most gratifying experiences you can have.

That’s all I got.
Change the world, you crazy kids.
R"
ramneynasser  advice  art  life  programming  teaching  learning  howweteach  howwelearn  compsci  computerscience  sfpc  kindness  sharing  coding  time  bestpractices  questioning  schoolforpoeticcomputation 
december 2014 by robertogreco
6, 35: Moonlight
"Things I wish someone had explained to me sooner…

• To people who don’t love you, your intentions don’t matter. If you hurt them accidentally, you’ve hurt them.

• Broadly, experts get that way because they care about what they do. Because they care about it, they want to tell you about what they know. It’s easy for them to leave out what they don’t know. And so, accidentally, they tend to make their fields sound more boring than they are. On either side of an expert–layperson relationship, remember to talk about the mysteries and frontiers.



• In any complicated situation, what people can tell you about why they came to their conclusions is virtually unrelated to the truth, effectiveness, or worthwhileness of those conclusions. We’re right for the wrong reasons, and vice versa, all the time.



• Argument from origins – etymology, philosophical genealogy, institutional history – takes special humility. It’s easy to make a point that’s only a complicated, smart-sounding version of “Hitler was a vegetarian, so vegetarianism is evil”.

• Programming is more like writing than like working an algebra problem.

• Your attention is the most valuable thing you can give. It’s what lets you do anything intentionally. Put some aside to spend where it might be badly needed. That’s usually not on anything that a million people are already attending to. It might be, but more often it will be something that most people around you, with perspectives like yours, are not thinking about."



"Earlier today, a moment in the presence of the systemic sublime while drinking Yirgacheffe coffee and watching Ethiopian kids singing while sorting coffee beans – Wote, Yirgacheffe. And watching Typhoon Hagupit/Ruby crawl up on the Philippines: this tweet, my word. Not only can I track the typhoon half-hourly in infrared, I have access to two separate instruments that can see it in visible wavelengths by moonlight: VIIRS and astronauts with DSLRs. Moonlight. A lot of my life is lived as part of this stringy confederation of nerds interested in perception over distance and mediated by algorithms, in the river rapids where culture flows around protuberant lumps of technology, in volition and encoding, in the connections, separations, and flavors of the network itself, in scale, in long chains of molecules and routes of IP packets and corten containers and coffee beans, and in the submerged cathedrals and unmapped data halls that they build. And I make fun of us, our rhizome or distributed pocket, with jokes about James C. Scott and so forth. But I feel the weight when I wonder whether the children who sorted the beans I’m drinking were singing. Moonlight."
charlieloyd  2014  systems  systemsthinking  systemicsublime  coffee  jamescscott  certainty  uncertainty  programming  coding  writing  attention  experts  mystery  frontiers  unknown  intentions  love 
december 2014 by robertogreco
The Dads of Tech - The Baffler
"The master’s tools will never dismantle the master’s house,” Audre Lorde famously said, but let Clay Shirky mansplain. It “always struck me as a strange observation—even the metaphor isn’t true,” the tech consultant and bestselling author said at the New Yorker Festival last autumn in a debate with the novelist Jonathan Franzen. “Get ahold of the master’s hammer,” and you can dismantle anything. Just consider all the people “flipping on the ‘I’m gay’ light on Facebook” to signal their support for marriage equality—there, Shirky declared, is a prime example of the master’s tools put to good use.

“Shirky invented the Internet and Franzen wants to shut it down,” panel moderator Henry Finder mused with an air of sophisticated hyperbole. Finder said he was merely paraphrasing a festival attendee he’d overheard outside—and joked that for once in his New Yorker editing career, he didn’t need fact-checkers to determine whether the story was true. He then announced with a wink that it was “maybe a little true.” Heh.

Shirky studied fine art in school, worked as a lighting designer for theater and dance companies; he was a partner at investment firm The Accelerator Group before turning to tech punditry. Now he teaches at NYU and publishes gung-ho cyberliberation tracts such as Here Comes Everybody and Cognitive Surplus while plying a consulting sideline for a diverse corps of well-paying clients such as Nokia, the BBC, and the U.S. Navy—as well as high-profile speaking gigs like the New Yorker forum, which was convened under the stupifyingly dualistic heading “Is Technology Good for Culture?”

And that’s tech punditry for you: simplification with an undercurrent of sexism. There are plenty of woman academics and researchers who study technology and social change, but we are a long way from the forefront of stage-managed gobbledygook. Instead of getting regaled with nods and winks for “inventing the Internet,” women in the tech world typically have to overcome the bigoted suspicions of an intensively male geek culture—when, that is, they don’t face outright harassment in the course of pursuing industry careers."



"No wonder, then, that investors ignore coders from marginalized communities who aspire to meet real needs. With an Internet so simple even your Dad can understand it as our guiding model, the myriad challenges that attend the digital transformation, from rampant sexism, racism, and homophobia to the decline of journalism, are impossible to apprehend, let alone address. How else could a white dude who didn’t know that a “bustle” is a butt-enhancing device from the late nineteenth century raise $6.5 million to start a women’s content site under that name? Or look at investors racing to fund the latest fad: “explainer” journalism, a format that epitomizes our current predicament. Explainer journalism is an Internet simple enough for Dad to understand made manifest. Nate Silver’s FiveThirtyEight, the New York Times’ The Upshot, and Ezra Klein’s Vox (which boasts a “Leadership Team” of seventeen men and three women) all champion a numbers-driven model that does not allow for qualification or uncertainty. No doubt, quantification can aid insight, but statistics shouldn’t be synonymous with a naive, didactic faith that numbers don’t lie or that everything worth knowing can be rendered in a series of quickly clickable virtual notecards. Plenty of news reports cry out for further explanation, because the world is complex and journalists often get things wrong, but like Internet punditry before it, these explainer outlets don’t explain, they simplify."



"Most of all, the dominance of the Dad’s-eye-view of the world shores up the Internet’s underlying economic operating system. This also means a de facto free pass for corporate surveillance, along with an increasing concentration of wealth and power in the coffers of a handful of advertising-dependent, privacy-violating info-monopolies and the men who run them (namely Google and Facebook, though Amazon and Apple are also addicted to sucking up our personal data). Study after study shows that women are more sensitive to the subject of privacy than men, from a Pew poll that found that young girls are more prone than boys are to disabling location tracking on their devices to another that showed that while women are equally enthusiastic about technology in general, they’re also more concerned about the implications of wearable technologies. A more complicated Internet would incorporate these legitimate apprehensions instead of demanding “openness” and “transparency” from everyone. (It would also, we dare to hope, recognize that the vacuous sloganeering on behalf of openness only makes us more easily surveilled by government and big business.) But, of course, imposing privacy protections would involve regulation and impede profit—two bête noires of tech dudes who are quite sure that Internet freedom is synonymous with the free market.

The master’s house might have a new shape—it may be sprawling and diffuse, and occupy what is euphemistically referred to as the “cloud”—but it also has become corporatized and commercialized, redolent of hierarchies of yore, and it needs to be dismantled. Unfortunately, in the digital age, like the predigital one, men don’t want to take it apart."
astrataylor  joannemcneil  2014  sexism  technology  culture  siliconvalley  dads  nodads  patriarchy  paternalism  gender  emotionallabor  hisotry  computing  programming  complexity  simplification  nuance  diversity  journalism  clayshirky  polarization  exclusion  marcandreessen  ellenchisa  julieannhorvath  github  careers  audrelorde  punditry  canon  inequality 
november 2014 by robertogreco
The Hypercard Legacy — Medium
"This type of plain-language programming makes sense, particularly in an application that was designed specifically for non-programmers. I have been teaching programming to designers and artists for nearly a decade, and I find the largest concern for learners to be not with the conceptual hurdles involved in writing a program, but with obscure and confusing syntax requirements. I would love to be able to teach HyperTalk to my students, as a smooth on-road to more complex languages like JavaScript, Java or C++.

HyperTalk wasn’t just easy, it was also fairly powerful. Complex object structures could be built to handle complicated tasks, and the base language could be expanded by a variety of available externdal commands and functions (XCMDs and XFCNs, respectively), which were precursors to the modern plug-in.

This combination of ease of use and power resonated with the HyperCard user base, who developed and shared thousands of unique stacks (all in a time before the web). A visit to a BBS in the late 80s and early 90s could give a modem-owner access to thousands of unique, often home-made tools and applications. Stacks were made to record basketball statistics, to teach music theory, and to build complex databases. The revolutionary non-linear game Myst first appeared as a HyperCard stack, and the Beatles even got into the scene, with an official stack for A Hard Days Night."



"In new media, practitioners are often identified with the specific tools that they use. I started out as a ‘Flash guy’ and over the last few years have been connected more and more with the open source software project Processing. Though I originally came to Processing to escape the Flash Player’s then sluggish performance, I value the platform as much for its ease of use and its teachability as I do for its ability to quickly add floating point numbers. Lately, I’ve been asked the same question, over and over again:

‘Why don’t you move to OpenFrameworks? It’s much faster!’

It is true that projects built in OF run faster than those built in Processing. This question, though, seems to be missing a key point: faster does not always equal better. Does every pianist want to play the pipe organ because it has more keys? Is a car better than a bicycle?

In my case, choosing a platform to work with involves as much consideration to simplicity as it does to complexity. I am an educator, and when I work on a project I am always thinking about how the things that are learned in the process can be packaged and shared with my students and with the public.

Which brings us to the broader concept of accessibility. HyperCard effectively disappeared a decade a go, making way for supposedly bigger and better things. But in my mind, the end of HyperCard left a huge gap that desperately needs to be filled – a space for an easy to use, intuitive tool that will once again let average computer users make their own tools. Such a project would have huge benefits for all of us, wether we are artists, educators, entrepreneurs, or enthusiasts."



"I could imagine a new version of HyperCard being built from the ground up around its core functional properties: HyperTalk, easy to use UI elements, and a framework for extensions. It’s the kind of open source project that could happen, but with so much investment already existing in other initiatives such as Processing and OpenFrameworks, it might not be the best use of resources. So, let’s forget for now about a resurrection. Instead of thinking bigger, let’s think smaller.

HyperCard for the iPhone?
It might not be as crazy as you think. Imagine having a single, meta app that could be used to make smaller ones. This ‘App-Builder App’, like HyperCard, could combine easy to use, draggable user interface elements with an intuitive, plain language scripting language. As a quick visit to the App Store will show you, many or most of the apps available today could be built without complex coding. You don’t need Objective C to make a stock ticker, or a unit converter, or a fart machine. These home-made apps could be shared and adapted, cross-bred and mutated to create generation after generation of useful (and not so useful programs).

By putting the tools of creation into the hands of the broader userbase, we would allow for the creation of ultra-specific personalized apps that, aside from a few exceptions, don’t exist today. We’d also get access to a vastly larger creative pool. There are undoubtedly many excellent and innovative ideas out there, in the heads of people who don’t (yet) have the programming skills to realize them. The next Myst is waiting to be built, along with countless other novel tools and applications.

With the developer restrictions and extreme proprietism of the iPhone App Store, it’s hard to remember the Apple of the 80s. Steve Jobs, Bill Atkinson and their team had a vision to not only bring computers to the people, but also to bring computer programming to the public – to make makers out of the masses. At Apple, this philosophy, along with HyperCard seems to have mostly been lost. In the open source community, though, this ideal is alive and well – it may be that by reviving some ideas from the past we might be able to create a HyperCard for the future."
jerthorp  2009  2014  hypercard  apple  history  programming  toolmaking  billatkinson  myst  accessibility  tilestack  hypertalk  coding 
november 2014 by robertogreco
Ruxpin. / Airbag Intl.
"So now we live in a world where children, unable to read, are able to create robust content for the web. And people a bit older than 5 are able to interact--edit/add files--with web servers using nothing more than a tablet. If you are in the business of making websites, you need to pay attention to these developments because they are going to very likely going to have an impact on your career path.

People, we are living in science fiction times right now. Next year, it will all start to feel like a family sitcom."
gregstory  content  contentcreation  webdesign  webdev  programming  coding  communication  websites  2014  children  scratch  scratchjr  ipad 
october 2014 by robertogreco
Sonic Pi
"Audible Computing.

A free sound synthesiser for live coding designed to support computing and music lessons within schools.

Use code to compose and perform in classical and contemporary styles ranging from Canons to Dubstep."
music  code  coding  sound  audio  raspberrypi  mac  osx  synthesizer  edg  classideas  learning  education  teaching  children  programming 
september 2014 by robertogreco
This is Our Moment - YouTube
[See also: http://www.inventtolearn.com/moment/

"Abstract - In this plenary address, the speaker will share three societal trends that validate and vindicate decades of leadership by the constructionism community. The growing acceptance of learning-by-making represented by the maker movement, a newfound advocacy for children learning computer programming, and even the global education crisis, real or imagined, are evidence of predictions and efforts made by constructionists being realized. This conference offers a brief opportunity for celebration before returning to the “hard fun” required to harness the momentum of these trends and improve the learning ecology." ]
constructionism  math  mathematics  education  programming  making  2014  garystager  howweteach  cv  tcsmnmy  teachablemoments  turtleart  art  children  schools  learning  learningbydoing  projectbasedlearning  pedagogy  schoolreform  seymourpapert  policy  politics  via:audreywatters  makermovement  makerfaires  coding  pbl 
august 2014 by robertogreco
gSchool — Galvanize
"Learn from the best and launch a new path through gSchool's immersive developer training programs, or gain an edge with a gSchool workshop."



"We turn smart, driven beginners into marketable, contributing members of development teams over the course of our 24-week long developer training programs. Our full stack curriculum includes Ruby on Rails, Sinatra, Javascript, CSS3, HTML5, Responsive Design, Database, APIs, Version Control, and Test Driven Development - but our main focus is Rails."

[via: https://vimeo.com/103559084 ]
colorado  sanfrancisco  coding  education  gschool  ruby  rubyonrails  javascript  css3  html5  responsivedesign  development  programming  responsivewebdesign 
august 2014 by robertogreco
Jennifer Eliuk - Apprenticeships - I implore you! - Burlington Ruby Conference 2014 on Vimeo
"The increase in web development vocational programs means a steady supply of junior developers, but are we prepared to help them become productive members of our teams?

These programs were created in response to the need for more developers, but I fear without apprenticeships to bridge the gap, we’re simply moving the bottleneck upstream.

In the absence of an established, structured program, I’ve had to figure out what it means to be a software apprentice and ensure I’m building skills and learning best practices daily. Conversely, the senior developers have had to think about how to integrate apprentices and provide purposeful learning opportunities.

In this talk, I’ll share my experience coming from a vocational web development school and the apprenticeship program we’re developing at Democracy Works, Inc."
apprenticeships  education  learning  jennifereliuk  employment  mentorship  coding  ruby  teambuilding  teams  via:nicolefenton  2014  teaching  howwelearn  howweteach  programming  mentorships  intangibles  fulfillment 
august 2014 by robertogreco
Learn to code while playing Minecraft | University of California
"A team of computer scientists at the University of California, San Diego, has developed a software package that allows users to learn how to program while playing the popular video game Minecraft."

[See also: http://www.wired.com/2014/08/learntomod/ ]
srg  edg  minecraft  coding  2014  learntomod  mods  programming  learning  children  education 
august 2014 by robertogreco
Seymour Papert (1972)
Alan Kay cited in comments: "The ability to “read” a medium means you can access materials and tools created by others. The ability to “write” in a medium means you can generate materials and tools for others. You must have both to be literate. In print writing, the tools you generate are rhetorical; they demonstrate and convince. In computer writing, the tools you generate are processes; they simulate and decide."
learning  literacy  math  computer  programming  1970s  alankay  seymourpapert  literacies  multiliteracies  communication  reading  howweread  howwewrite  writing  media  via:Taryn 
august 2014 by robertogreco
ScratchJr on the App Store on iTunes
"With ScratchJr, young children (ages 5-7) learn important new skills as they program their own interactive stories and games.

By snapping together graphical programming blocks, children can make characters move, jump, dance, and sing. In the process, children learn to solve problems, design projects, and express themselves creatively on the computer. They also use math and language in a meaningful and motivating context, supporting the development of early-childhood numeracy and literacy. With ScratchJr, children don’t just learn to code, they code to learn.

ScratchJr was inspired by the popular Scratch programming language (http://scratch.mit.edu), used by millions of people (ages 8 and up) around the world. The ScratchJr interface and programming language were redesigned to make them appropriate for younger children’s cognitive, personal, social, and emotional development.

ScratchJr is a collaboration between the Lifelong Kindergarten research group at the MIT Media Lab, the Developmental Technologies research group at Tufts University, and the Playful Invention Company. The ScratchJr project has received generous financial support from the National Science Foundation (NSF DRL-1118664), Code-to-Learn Foundation, LEGO Foundation, and British Telecommunications.

If you enjoy using this free app, please consider making a donation to the Code-to-Learn Foundation (www.codetolearn.org), a nonprofit organization that provides ongoing support for ScratchJr. We appreciate donations of all sizes, large and small."

[See also: http://www.scratchjr.org/
http://newsoffice.mit.edu/2014/scratchjr-coding-kindergarten ]
children  programming  scratch  scratchjr  2014  ios  ios7  application  ipad  coding  computationalthinking  thinking  computing 
july 2014 by robertogreco
Learn JavaScript & jQuery - a book about interactive front-end web development
"This is not your average programming book.
We understand that all kinds of people build websites these days (and that they don’t all have a degree in computer science).

So, if you want to use JavaScript to make your web pages more interactive, interesting, and usable, we can help. Even if you have never done any programming."
books  javascript  coding  webdev  jquery  howto  programming  via:maxfenton  webdesign 
july 2014 by robertogreco
Is Coding the New Literacy? | Mother Jones
"Not every cook is a David Chang, not every writer is a Jane Austen, and not every computational thinker is a Guido van Rossum, the inventor of the influential Python programming language. But just as knowing how to scramble an egg or write an email makes life easier, so too will a grasp of computational thinking. Yet the "learn to code!" camp may have set people on the uphill path of mastering C++ syntax instead of encouraging all of us to think a little more computationally.

The happy truth is, if you get the fundamentals about how computers think, and how humans can talk to them in a language the machines understand, you can imagine a project that a computer could do, and discuss it in a way that will make sense to an actual programmer. Because as programmers will tell you, the building part is often not the hardest part: It's figuring out what to build. "Unless you can think about the ways computers can solve problems, you can't even know how to ask the questions that need to be answered," says Annette Vee, a University of Pittsburgh professor who studies the spread of computer science literacy."



"Or take Adopt-a-Hydrant. Under the hood, it isn't a terribly sophisticated piece of software. What's ingenious is simply that someone knew enough to say: Here's a database of hydrant locations, here is a universe of people willing to help, let's match them up. The computational approach is rooted in seeing the world as a series of puzzles, ones you can break down into smaller chunks and solve bit by bit through logic and deductive reasoning. That's why Jeannette Wing, a VP of research at Microsoft who popularized the term "computational thinking," says it's a shame to think CT is just for programmers. "Computational thinking involves solving problems, designing systems, and understanding human behavior," she writes in a publication of the Association for Computing Machinery. Those are handy skills for everybody, not just computer scientists.

In other words, computational thinking opens doors. For while it may seem premature to claim that today every kid needs to code, it's clear that they're increasingly surrounded by opportunities to code—opportunities that the children of the privileged are already seizing. The parents of Facebook founder Mark Zuckerberg got him a private computer tutor when he was in middle school. Last year, 13,000 people chipped in more than $600,000 via Kickstarter for their own limited-edition copy of Robot Turtles, a board game that teaches programming basics to kids as young as three. There are plenty of free, kid-oriented code-learning sites—like Scratch, a programming language for children developed at MIT—but parents and kids in places like San Francisco or Austin are more likely to know they exist."



"The 1980s made computers personal, and today it's impossible not to engage in conversations powered by code, albeit code that's hidden beneath the interfaces of our devices. But therein lies a new problem: The easy interface creates confusion around what it means to be "computer literate." Interacting with an app is very different from making or tweaking or understanding one, and opportunities to do the latter remain the province of a specialized elite. In many ways, we're still in the "scribal stage" of the computer age.

But the tricky thing about literacy, Vee says, is that it begets more literacy. It happened with writing: At first, laypeople could get by signing their names with an "X." But the more people used reading and writing, the more was required of them."



"It may be hard to swallow the idea that coding could ever be an everyday activity on par with reading and writing in part because it looks so foreign (what's with all the semicolons and carets)? But remember that it took hundreds of years to settle on the writing conventions we take for granted today: Early spellings of words—Whan that Aprille with his shoures soote—can seem as foreign to modern readers as today's code snippets do to nonprogrammers. Compared to the thousands of years writing has had to go from notched sticks to glossy magazines, digital technology has, in 60 years, evolved exponentially faster.

Our elementary-school language arts teachers didn't drill the alphabet into our brains anticipating Facebook or WhatsApp or any of the new ways we now interact with written material. Similarly, exposing today's third-graders to a dose of code may mean that at 30 they retain enough to ask the right questions of a programmer, working in a language they've never seen on a project they could never have imagined."



"It's no surprise, then, that the AP computer science course is among the College Board's least popular offerings; last year, almost four times more students tested in geography (114,000) than computer science (31,000). And most kids don't even get to make that choice; only 17 percent of US high schools that have advanced placement courses do so in CS. It was 20 percent in 2005.

For those who do take an AP computer science class—a yearlong course in Java, which is sort of like teaching cooking by showing how to assemble a KitchenAid—it won't count toward core graduation requirements in most states. What's more, many counselors see AP CS as a potential GPA ding, and urge students to load up on known quantities like AP English or US history. "High school kids are overloaded already," says Joanna Goode, a leading researcher at the University of Oregon's education department, and making time for courses that don't count toward anything is a hard sell.

In any case, it's hard to find anyone to teach these classes. Unlike fields such as English and chemistry, there isn't a standard path for aspiring CS teachers in grad school or continuing education programs. And thanks to wildly inconsistent certification rules between states, certified CS teachers can get stuck teaching math or library sciences if they move. Meanwhile, software whizzes often find the lure of the startup salary much stronger than the call of the classroom, and anyone who tires of Silicon Valley might find that its "move fast and break things" mantra doesn't transfer neatly to pedagogy.

And while many kids have mad skills in movie editing or Photoshopping, such talents can lull parents into thinking they're learning real computing. "We teach our kids how to be consumers of technology, not creators of technology," notes the NSF's Cuny.

Or, as Cory Doctorow, an editor of the technology-focused blog Boing Boing, put it in a manifesto titled "Why I Won't Buy an iPad": "Buying an iPad for your kids isn't a means of jump-starting the realization that the world is yours to take apart and reassemble; it's a way of telling your offspring that even changing the batteries is something you have to leave to the professionals."

But school administrators know that gleaming banks of shiny new machines go a long way in impressing parents and school boards. Last summer, the Los Angeles Unified School District set aside a billion dollars to buy an iPad for all 640,000 children in the district. To pay for the program, the district dipped into school construction bonds. Still, some parents and principals told the Los Angeles Times they were thrilled about it. "It gives us the sense of hope that these kids are being looked after," said one parent.2"



""Our curriculum doesn't lead with programming or code," says Jane Margolis, a senior researcher at UCLA who helped design the ECS curriculum and whose book Stuck in the Shallow End: Education, Race, and Computing provides much of the theory behind the lesson plans. "There are so many stereotypes associated with coding, and often it doesn't give the broader picture of what the field is about. The research shows you want to contextualize, show how computer science is relevant to their lives." ECS lessons ask students to imagine how they'd make use of various algorithms as a chef, or a carpenter, or a teacher, how they could analyze their own snack habits to eat better, and how their city council could use data to create cleaner, safer streets."



"IT WAS A LITTLE MORE THAN a century ago that literacy became universal in Western Europe and the United States. If computational skills are on the same trajectory, how much are we hurting our economy—and our democracy—by not moving faster to make them universal?

There's the talent squeeze, for one thing. Going by the number of computer science majors graduating each year, we're producing less than half of the talent needed to fill the Labor Department's job projections. Women currently make up 20 percent of the software workforce, blacks and Latinos around 5 percent each. Getting more of them in the computing pipeline is simply good business sense.

It would also create a future for computing that more accurately reflects its past. A female mathematician named Ada Lovelace wrote the first algorithm ever intended to be executed on a machine in 1843. The term "programmer" was used during World War II to describe the women who worked on the world's first large-scale electronic computer, the ENIAC machine, which used calculus to come up with tables to improve artillery accuracy 3. In 1949, Rear Adm. Grace Hopper helped develop the UNIVAC, the first general-purpose computer, a.k.a. a mainframe, and in 1959 her work led to the development of COBOL, the first programming language written for commercial use.

Excluding huge swaths of the population also means prematurely killing off untold ideas and innovations that could make everyone's lives better. Because while the rash of meal delivery and dating apps designed by today's mostly young, male, urban programmers are no doubt useful, a broader base of talent might produce more for society than a frictionless Saturday night. 4

And there's evidence that diverse teams produce better products. A study of 200,000 IT patents found that "patents invented by mixed-gender teams are cited [by other inventors] more often than patents … [more]
tasneemraja  coding  computationalthinking  programming  education  development  learning  gender  girls  teaching  blackgirlscode  codeforamerica  thinking  criticalthinking  problemsolving  literacy  race  diversity  janemargolis  ipads  ipad 
june 2014 by robertogreco
A Whole New World — Destroy All Software Talks
"This talk announces the most ambitious software project I've ever undertaken, then considers why its existence is so surprising (and in some cases frustrating) to people."
presentation  programming  software  speculativefiction  garybernhardt  strangeloop  infrastructure  slow  shipping  sethgodin  business  2013  howtolie  keynote  thinking  terminal 
april 2014 by robertogreco
How one college went from 10% female computer-science majors to 40% – Quartz
"Yes, we know there aren’t enough women in tech. Yes, we know we need to change the ratio.

One college has found the answer.

With a three-step method, Harvey Mudd College in California quadrupled its female computer science majors. The experiment started in 2006 when Maria Klawe, a computer scientist and mathematician herself, was appointed college president. That year only 10% of Harvey Mudd’s CS majors were women. The department’s professors devised a plan.

They no longer wanted to weed out the weakest students during the first week of the semester. The new goal was to lure in female students and make sure they actually enjoyed their computer science initiation in the hopes of converting them to majors. This is what they did, in three steps.

1. Semantics count

They renamed the course previously called “Introduction to programming in Java” to “Creative approaches to problem solving in science and engineering using Python.” Using words like “creative” and “problem solving” just sounded more approachable. Plus, as Klawe describes it, the coding language Python is more forgiving and practical.

As part of this first step, the professors divided the class into groups—Gold for those with no coding experience and Black, for those with some coding experience. Then they implemented Operation Eliminate the Macho Effect: guys who showed-off in class were taken aside in class and told, “You’re so passionate about the material and you’re so well prepared. I’d love to continue our conversations but let’s just do it one on one.”

Literally overnight, Harvey Mudd’s introductory CS course went from being the most despised required course to the absolute favorite, says Klawe.

But that was just the beginning.

2. Visualize success

After successfully completing the introductory class, how to ensure female students voluntarily signed up for another CS class? The female professors packed up the students and took them to the annual Grace Hopper Conference, which bills itself as a celebration of women in technology. Klawe says the conference is a place for students to visualize women in technology; humans who happened to be female who love computers. Not everyone looks like the dudes in the trailer for HBO’s Silicon Valley.

3. Make it matter

Finally, the college offered a summer of research between freshman and sophomore years so female students could apply their new skills and make something. “We had students working on things like educational games and a version of Dance Dance Revolution for the elderly. They could use computer technology to actually work on something that mattered,” says Klawe.

The three-step strategy resulted in a domino effect. Female students loved the CS introductory course. They loved going to the conference. So they took “just one more course” and they loved that.

Before they knew it, women were saying, “‘I could be a computer science major, I guess.’ And so they are!” says Klawe.

By the time the first four-year experiment was over the college had gone from 10% female computer science majors to 40% female. UC Berkeley, Duke, Northwestern have had some success with similar tactics."
education  gender  women  girls  programming  coding  compsci  computers  computerscience  harveymuddcollege  semantics  support  learning  mariaklawe  manoushzomorodi  2014  via:sha 
march 2014 by robertogreco
The Year of Code's neoliberal agenda - Adrian Short
"Dexter gives us a glimmer of understanding how the world works but the central message here is stamped through her speech like the writing in a stick of rock: modern day economy, skills, labour markets, “getting by”, jobs, new economy, workforce, earnings potential, start your own business.

Why has our education system been captured by people who wouldn’t look out of place on The Apprentice? Lottie Dexter is a slightly more polished version of Katie Hopkins and her Year of Code backers are the “you’re fired” bosses of the supposedly new but actually very retro Victorian economy: giants such as Google (send the tax bill to our Bermuda office, please), private investors like Index Ventures and a motley crew of funky Shoreditch startup addicts with crap job titles like “commander in chief of product”.

Imagine my thorough lack of surprise when I discovered that Lottie Dexter’s other job is running the Million Jobs Campaign, a Tory front group that advocates scrapping employers' National Insurance contributions for younger workers (the workers themselves would still pay it), repealing “harsh discrimination laws” that bother bosses like the Equalities Act 2010, and that supports the very same DWP workfare policies that Cait Reilly of Poundland fame challenged successfully in the courts. Naturally, the Million Jobs Campaign is a Year of Code backer. Previously, Dexter was communications manager at the Centre for Social Justice, the neoliberal think tank set up by Iain Duncan Smith to give poor people who don’t know what’s good for them a bit of state-funded, corporately-delivered tough love. IDS is specially advised at the DWP by the Centre for Social Justice’s former director Philippa Stroud, a failed Tory candidate whose Christian-flavoured “pray away the gay” antics probably cost her a very winnable seat in parliament back in 2010. By her own admission, Lottie Dexter doesn’t know how to program, but she’s an expert in corporate welfare and that’s all that’s required for a job like hers.

So the Year of Code isn’t about doing fun stuff with JavaScript, Python and Ruby. It’s about building another element of a society where those that don’t work don’t eat, and where the rewards of work are skewed ever further towards a tiny minority at the top of the pile. Read Dickens and Orwell if you want to know how much fun that is. It’s about creating childhoods overshadowed by adult anxieties about work and economic survival. It’s about replacing the broad expanse of education – with all the exploration, creativity and genuine freedom that implies – with the narrow tunnel of schooling. It’s training children to have “relevant” employer-friendly skills and the right attitudes and politics to go with them. All social concerns are subordinated to a particular kind of economic settlement. The state is reduced to a vehicle for expanding and defending private property. This is neoliberalism."
adrianshort  coding  neoliberalism  careers  children  yearofcode  education  purpose  work  labor  economics  2014  teaching  programming 
february 2014 by robertogreco
Philip Guo - Silent Technical Privilege
"Okay that entire paragraph was a lie. Did you believe me? If so, why? Was it because I looked like a kid programming whiz?

When that photo was taken, I didn't even know how to touch-type. My parents were just like, “Quick, pose in front of our new computer!” (Look closely. My fingers aren't even in the right position.) My parents were both humanities majors, and there wasn't a single programming book in my house. In 6th grade, I tried teaching myself BASIC for a few weeks but quit because it was too hard. The only real exposure I had to programming prior to college was taking AP Computer Science in 11th grade, taught by a math teacher who had learned the material only a month before class started. Despite its shortcomings, that class inspired me to major in Computer Science in college. But when I started freshman year at MIT, I felt a bit anxious because many of my classmates actually did have over ten years of childhood programming experience; I had less than one.

SILENT TECHNICAL PRIVILEGE
Even though I didn't grow up in a tech-savvy household and couldn't code my way out of a paper bag, I had one big thing going for me: I looked like I was good at programming. Here's me during freshman year of college:



As an Asian male student at MIT, I fit society's image of a young programmer. Thus, throughout college, nobody ever said to me:

• “Well, you only got into MIT because you're an Asian boy.”

• (while struggling with a problem set) “Well, not everyone is cut out for Computer Science; have you considered majoring in bio?”

• (after being assigned to a class project team) “How about you just design the graphics while we handle the backend? It'll be easier for everyone that way.”

• “Are you sure you know how to do this?”

Although I started off as a complete novice (like everyone once was), I never faced any micro-inequities to impede my intellectual growth. Throughout college and grad school, I gradually learned more and more via classes, research, and internships, incrementally taking on harder and harder projects, and getting better and better at programming while falling deeper and deeper in love with it. Instead of doing my ten years of deliberate practice from ages 8 to 18, I did mine from ages 18 to 28. And nobody ever got in the way of my learning – not even inadvertently – because I looked like the sort of person who would be good at such things.

Instead of facing implicit bias or stereotype threat, I had the privilege of implicit endorsement. For instance, whenever I attended technical meetings, people would assume that I knew what I was doing (regardless of whether I did or not) and treat me accordingly. If I stared at someone in silence and nodded as they were talking, they would usually assume that I understood, not that I was clueless. Nobody ever talked down to me, and I always got the benefit of the doubt in technical settings.

As a result, I was able to fake it till I made it, often landing jobs whose postings required skills I hadn't yet learned but knew that I could pick up on the spot. Most of my interviews for research assistantships and summer internships were quite casual – I looked and sounded like I knew what I was doing, so people just gave me the chance to try. And after enough rounds of practice, I actually did start knowing what I was doing. As I gained experience, I was able to land more meaningful programming jobs, which led to a virtuous cycle of further improvement.

This kind of privilege that I – and other people who looked like me – possessed was silent, manifested not in what people said, but rather in what they didn't say. We had the privilege to spend enormous amounts of time developing technical expertise without anyone's interference or implicit discouragement. Sure, we worked really hard, but our efforts directly translated into skill improvements without much loss due to interpersonal friction. Because we looked the part."
programming  technology  privilege  gender  culture  compsci  computers  2014  philipguo  bias  micro-inequities  sterotypethreat 
january 2014 by robertogreco
SNAP! (Build Your Own Blocks)
"SNAP! (formerly BYOB) is a visual, drag-and-drop programming language. It is an extended reimplementation of Scratch (a project of the Lifelong Kindergarten Group at the MIT Media Lab) that allows you to Build Your Own Blocks. It also features first class lists, first class procedures, and continuations. These added capabilities make it suitable for a serious introduction to computer science for high school or college students.

SNAP! runs in your browser. It is implemented using Javascript, which is designed to limit the ability of browser-based software to affect your computer, so it's safe to run even other people's projects, even if you don't trust our competence or good intentions.

SNAP! is presented by the University of California at Berkeley. It was developed by Jens Mönig at MioSoft Corporation, with design input and documentation by Brian Harvey at Berkeley, and contributions by students at Berkeley and elsewhere.

This material is based partly upon work supported by the National Science Foundation under Grant No. 1138596. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation."
scracth  byob  coding  programming  edg  srg 
november 2013 by robertogreco
Choc - Bret Victor's 'Learnable Programming' implemented in Javascript
"Choc is a tool for thinking powerful thoughts by stepping through code. It is an implementation of several ideas found in Bret Victor's Learnable Programming."
javascript  learning  programming  teaching  js  via:tealtan  edg  srg  coding  bretvictor  natemurray  arilerner 
september 2013 by robertogreco
1 | This Fun Tool Teaches Kids To Program With Pictures | Co.Design: business + innovation + design
"What’s brilliant about Isla is that its toylike simplicity--natural language, simple shapes, clear instructions, instant feedback--co-exists with a spartan respect for the realities of grown-up coding. Like the fact that, with all due respect to Scratch and Kodu, most programming still happens in plain text. The box where you type instructions into Isla looks just like a command line, and acts like an IDE (integrated development environment): If you get some syntax wrong, it’ll reject your code with an error message. The difference is that the error messages are in plain english, and gently invite you to think about what you need to change in order to get it right."

[Isla: http://islalanguage.org/ ]
isla  coding  programming  children  johnpavlus  2013  ncmideas  teaching 
august 2013 by robertogreco
DIRTI for iPad, World's first tapioca interface | USER STUDIO
"a 570cm3 dish that contains about 8.600 seeds of dry tapioca grains

Our research led us to wonder if and how we could change the relationship that humans have with tangible controllers: at the time (2011) we were working on trying to control thousands of particles on the screen in the most natural, intuitive fashion possible. We figured there was no better way than by actually controlling real world particles! So when creating this new "DIRTInterface", we set our minds on making something a little less accurate, while a lot more subtle, constantly adapting, almost alive. Tackling the cold, abrupt interaction that traditional controllers impose on us... It was all about interaction design politics ;)

Ok, so what's DIRTI in the first place?

It's the World's first tapioca interface! No really, it enables you to control your computer or your iPad with tapioca or anything else that's semi-transparent and that you can mold, like vanilla ice cream for example. Any non-opaque material that's either granular or liquid will do just fine. It's kind of a real-world interface. And the acronym stands for Dirty Tangible Interface. Tacky? Yeaaaah, we love tacky!

You, the user, interact with your machine by moving the material around in a sand-blasted dish. Anything that you're going to produce from within the Dirty Tangible Interface can not be 100% accurate, but it's infinitely refined, expressive and subtle. And you can't cancel any action or go back to a previous, default position, but you can control any graphics or sounds coming out of your machine with amazing expressivity, just like with real world instruments. Say, a violin. Not even kidding. And who wouldn't like plunging their hands in ice cream?!"
dirti  interface  tactile  touch  ncmideas  particles  texture  software  programming  installation  tangiblecontrollers  controllers  input  via:markllobrera  userstudio  glvo  maisondepetits  centquatre  rolandcahen  diemoschwarz  ircam  raspeberrypi  ios  ipad  destronics  topophonie 
july 2013 by robertogreco
OpenTechSchool – OpenTechSchool
"OpenTechSchool is a community initiative offering free programming workshops and meetups to technology enthusiasts of all genders, backgrounds, and experience levels. It supports volunteer coaches in setting up events by taking care of the organizational details, encouraging coaches to create original teaching material. This material is then openly shared online and can be further developed by contributions from the global OTS community. OTS’ main goal is to create a friendly learning environment where no one feels shy about asking any question. Everyone is invited to participate, whether as a coach or a learner, and get in contact to organize OTS events anywhere in the world."
opentechschool  open  free  learning  programming  teaching  coding 
july 2013 by robertogreco
Infovore » Toca Builders, and the spirit of Seymour Papert
"Toca Builders takes the abstract building of Minecraft – tools attached to a disembodied perspective (albeit one hindered by some degree of personhood – factors such as gravity, and so forth) – and embodies them to help younger children answer the question which tool would you use to place a block where you need to? Or sometimes backwards: which block shall we place next? It is not quite as freeform as Minecraft, but it actually forces the user to think a little harder about planning ahead, lining up his builders, and which builders go together well. Measure twice, cut once.

To that end, it’s much more like real-world building.

Papert was very clear about one particular point: the value of this is not to think in mechanical ways; it’s actually the opposite. By asking children to think in a mechanical way temporarily, they end up thinking about thinking more: they learn that there are many ways to approach a problem, and they can choose which way to think about things; which might be most appropriate.

And so Toca Builders is, in many ways, like all good construction toys: it’s about more than just building. It’s about planning, marshalling, making use of a limited set of tools to achieve creative goals. And all the while, helping the user understand those tools by making them appear in the world, taking up space in it, colliding with one another, and needing moving. All so that you can answer the question when you’re stuck: well, if you were Blox the Hammer, what would you do?

Some of what looks like clunkiness, then, is actually a subtle piece of design.

If you’re interested in the value of using computers to teach – not using computers to teach about computers, but using computers to teach about the world, then Mindstorms is a must-read. It’s easy to dismiss LOGO for its simplicity, and to forget the various paradigms it bends and breaks (more so than many programming languages) – and it’s remarkable to see just how long ago Papert and his collaborators were touching on ideas that are still fresh and vital today."
via:blackbeltjones  computation  edtech  education  games  gaming  minecraft  tocabuilders  tocaboca  seymourpapert  constructivism  logic  thinking  criticalthinking  2013  objectsforthinking  mindstorms  logo  computationallogic  computing  constructiontoys  planning  problemsolving  debugging  troubleshooting  ios  applications  iphone  ipad  coding  children  programming  teaching 
june 2013 by robertogreco
An Ill-Advised Personal Note about "Media for Thinking the Unthinkable"
"Right now, today, we can't see the thing, at all, that's going to be the most important 100 years from now.

We cannot see the thing. At all. But whatever that thing is -- people will have to think it. And we can, right now, today, prepare powerful ways of thinking for these people. We can build the tools that make it possible to think that thing.

We cannot see the thing. At all. My job is to make sure our children can."

[See also:https://vimeo.com/67076984 ]
thinking  future  tools  toolsforthinking  systems  bretvictor  2013  systemsthinking  computing  programming  circuits  signalprocessing  representation  howwethink  toolmaking  visualization  coding  carvermead  software  engineering  time 
june 2013 by robertogreco
« earlier      
per page:    204080120160

Copy this bookmark:





to read