summaryrefslogtreecommitdiff
path: root/doc/design
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-02-20 18:31:04 -0400
committerGravatar Joey Hess <joey@kitenet.net>2013-02-20 18:31:04 -0400
commit236a7b14323ca3309562e236b230da50375864c6 (patch)
tree210586b4791244ed9b9c820d3f69b495e13768e4 /doc/design
parent9b9c0d90db545f0e57569af66f7639ff01dfb7d9 (diff)
blog for the day
Diffstat (limited to 'doc/design')
-rw-r--r--doc/design/assistant/blog/day_194__nice_moment.mdwn37
1 files changed, 37 insertions, 0 deletions
diff --git a/doc/design/assistant/blog/day_194__nice_moment.mdwn b/doc/design/assistant/blog/day_194__nice_moment.mdwn
new file mode 100644
index 000000000..1a5ee9b1e
--- /dev/null
+++ b/doc/design/assistant/blog/day_194__nice_moment.mdwn
@@ -0,0 +1,37 @@
+<video controls src="http://downloads.kitenet.net/videos/git-annex-android.ogv" width="100%"></video>
+<a href="http://downloads.kitenet.net/videos/git-annex-android.ogv">video</a>
+
+Today's work:
+
+* Fixed `git annex add` of a modified file in direct mode.
+* Fixed bugs in the inode sentinal file code added yesterday.
+* With some help from Kevin Boone, I now understand how KBOX works and
+ how to use similar techniques to build my own standalone Android app
+ that includes git-annex.
+
+ Kevin is using a cute hack; he ships a tarball and some other stuff
+ as (pseudo-)library files (`libfoo.so`), which are the only files
+ the Android package manager deigns to install. Then the app runs one
+ of these, which installs the programs.
+
+ This avoids needing to write Java code that extracts the programs from
+ one of its assets and writes it to an executable file, which is the
+ canonical way to do this sort of thing. But I noticed it has a benefit too
+ (which KBOX does not yet exploit). Since the pseudo-library file is installed
+ with the X bit set, if it's really a program, such as busybox or git-annex,
+ that program can be run without needing to copy it to an executable file.
+ This can save a lot of disk space. So, I'm planning to include all
+ the binaries needed by git-annex as these pseudo-libraries.
+* Got the Android Terminal Emulator to build. I will be basing my first
+ git-annex Android app on this, since a terminal is needed until there's
+ a webapp.
+* Wasted several hours fighting with `Android.mk` files to include
+ my pseudo shared library. This abuse of Makefiles by the NDK is what CDBS
+ wants to grow up to be.. or is it the other way around? Anyway, it
+ sucks horribly, and I finally found a way to do it without
+ modifying the file at all. Ugh.
+* At this point, I can build a `git-annex.apk` file containing a
+ `libgit-annex.so`, and a `libbusybox.so`, that can both be directly
+ run. The plan from here is to give git-annex the ability to
+ auto-install itself, and the other pseudo-libraries, when it's run as
+ `libgit-annex.so`.