source and more @ CounterComplex
or the youtube channel @ Ville-Matias Heikkilä
An interview with Steve Jobs filmed on 2/18/1981 about the future of Apple, Computers, the Home & Personal computer markets, video games, and more.
Max Allen of CBC radio asks over and over how a computer could possibly be useful for thinking and visualizing. He absolutely does not get it.
"We refer to these attacks as typographic attacks. We believe attacks such as those described above are far from simply an academic concern. By exploiting the model’s ability to read text robustly, we find that even photographs of hand-written text can often fool the model. Like the Adversarial Patch,22 this attack works in the wild; but unlike such attacks, it requires no more technology than pen and paper."
paper @ openai.com
One of the useful and rarely mentioned configurations of repo is the use of local manifests.
repo is a powerful tool when you need to deal with a project that uses
several git repositories at the same time, and those are controled by a
manifest file. However, on your local development environment, you will often
want to extend or change something on the environment described on the
manifest, either by removing, adding or more often replacing one of the entries
with a slightly different configuration.
You can do that by using a local manifest, that will be applied on the top of the other manifest files. The CyanogenMod project used to have a pretty nice documentation about this, but that's one of the contents that were not migrated into Lineage OS's wiki, so I decided to make this blog post, reproducing the old wiki's content.
Creating a local manifest allows you to customize the list of repositories
used in your copy of the source code by overriding or supplementing the default
manifest. In this way, you can add, remove, or replace source code in the
official manifest with your own. By including repositories (which need not even
reside on GitHub) in a local manifest, you can continue to synchronize with the
repo sync command just as you would have previously. Only now, both the
official repositories from the default manifest and the additional repositories
you specify will be checked for updates.
To add to the contents of the default manifest, create a folder called
local_manifests under the
.repo directory, then create an XML file (text
file with .xml extension) inside that directory. You can call the XML file
anything you like, as long as it ends in
.xml. The default however is
roomservice.xml. Also, you can create separate XML files for different groups
of repositories. e.g. mako.xml for Google Nexus 4 related repositories and
cat-eater.xml for an unofficial device on which you're working.
Let's start with an example which we can use to describe the syntax:
<?xml version="1.0" encoding="UTF-8"?>
<remote name="omap" fetch="git://git.omapzoom.org/" />
<remove-project name="CyanogenMod/android_hardware_ti_omap3" />
<project path="hardware/ti/omap3" name="platform/hardware/ti/omap3" remote="omap" revision="jb-dev"/>
The first line containing
<?xml version="1.0" encoding="UTF-8"?> is a
standard XML declaration, telling interpreters this is an eXtensible Markup
Language file. Once this is established, the
tags enclose some contents which the
repo command will recognize.
First, a remote for git is declared and given the name "omap". In git, a
remote essentially refers to a place and method for accessing a git repository.
In this case, omapzoom.org is a site that contains special up-to-date
repositories for Texas Instrument's OMAP platform. This is equivalent to the
git remote add omap git://git.omapzoom.org/
The next line removes a project (specifically,
cyanogenmod/android_hardware_ti_omap3) declared in the default manifest.
repo sync, it will no longer be available in the source tree.
The next line defines a new project. In this case, it replaces the removed
android_hardware_ti_omap3 with one from Texas Instruments, using the
"omap" remote that was defined above.
When adding a new project that replaces an existing project, you should always remove that project before defining the replacement. However, not every new project need replace an existing cyanogenmod project. You can simply add a new project to the source code, such as when you want to add your own app to the build.
Note that when adding new projects, there are at least three parts defined:
repo syncwill use the revision specified by the
<default ... />tag in the default manifest.
.repo/local_manifests/your_file.xml, you should be able to
repo sync and the source code will be updated accordingly.
Note: You can use local repositories in the manifest by creating a remote
that points to
file:///path/to/source. For example:
name="local-omap" fetch="file:///home/username/myomap" />
All textual content of the CyanogenMod Wiki was released under the Creative Commons Attribution-Share Alike 3.0 Unported license (CC-BY-SA), and so this blog post should be considered licensed under the same terms.
"It is harder to intervene than not to, but it is vastly harder to choose to do either than to retreat into the scrolling names of one’s contact list, or whatever one’s favorite iDistraction happens to be. Technology celebrates connectedness, but encourages retreat. The phone didn’t make me avoid the human connection, but it did make ignoring her easier in that moment, and more likely, by comfortably encouraging me to forget my choice to do so. My daily use of technological communication has been shaping me into someone more likely to forget others. The flow of water carves rock, a little bit at a time. And our personhood is carved, too, by the flow of our habits."
more @ New York Times
"Forget to turn off the lights before leaving the apartment? No problem. Just raise your hand, finger-swipe the air, and your lights will power down. Want to change the song playing on your music system in the other room? Move your hand to the right and flip through the songs."