The way on is always longer than the way back. It's insufferable. Once the circle done you know, not all, maybe a little, but enough.
The trip from high to low-level is strange, often difficult. Those who dive deep enough to see the atoms, and get back up will see the combinations.
Creating requires this loop, from ideal to real. Providing the loop is what matters. Iterating will distort it as needed.
As intended.
lundi 2 septembre 2013
samedi 31 août 2013
--Failed(update not anymore)-- attempt at dumping a rtsp:// stream - Alan Kay 2011 talk #1
The .smil is originally hosted by tele-talk.de
Found through http://permalink.gmane.org/gmane.comp.lang.smalltalk.fonc/2179 that I can just read the .smil through HTTP.
$ wget http://stream.hpi.uni-potsdam.de:8080/Archive/HPIK_SS11/HPIK_2011_07_21_01_hd.smil
Giving :
Found through http://permalink.gmane.org/gmane.comp.lang.smalltalk.fonc/2179 that I can just read the .smil through HTTP.
$ wget http://stream.hpi.uni-potsdam.de:8080/Archive/HPIK_SS11/HPIK_2011_07_21_01_hd.smil
Giving :
<?xml version="1.0"?>
<smil xmlns="http://www.w3.org/2001/SMIL20/Language">
<head>
<layout>
<root-layout width="1344" height="768" background-color="#ffffff"/>
<region id="video" top="0" left="0" width="320" height="180" z-index="2"
fit="fill"/>
<region id="desktop" top="0" left="320" width="1024" height="768"
z-index="1" fit="fill"/>
<region id="toc" top="180" left="0" width="320" height="478" z-index="2"
fit="fill"/>
<region id="logo" top="658" left="0" width="320" height="110"
z-index="2" fit="fill"/>
<!-- region id="cutright" top="0" left="1339" width="05"
height="768" z-index="2" fit="fill"/ -->
<!-- region id="cutbottom" top="758" left="320" width="1024" height="10"
z-index="2" fit="fill"/ -->
</layout>
</head>
<body>
<par>
<video region="video"
src="rtsp://stream.hpi.uni-potsdam.de:554/Archive/HPIK_SS11/HPIK_2011_07_21_01_STREAM_video.rm"/>
<video region="desktop"
src="rtsp://stream.hpi.uni-potsdam.de:554/Archive/HPIK_SS11/HPIK_2011_07_21_01_STREAM_desktop.rm"/>
<img region="logo" fit="fill"
src="http://www.tele-task.de/images/logo_teletask_110.jpg"/>
<textstream region="toc"
src="http://stream.hpi.uni-potsdam.de:8080/Archive/HPIK_SS11/HPIK_2011_07_21_01_hd_TOC.rt"/>
<!-- img region="cutright"
src="http://www.tele-task.de/images/white.gif"/ -->
<!-- img region="cutbottom"
src="http://www.tele-task.de/images/white.gif"/ -->
</par>
</body>
</smil>
As said in the mailing list post, these :
rtsp://stream.hpi.uni-potsdam.de:554/Archive/HPIK_SS11/HPIK_2011_07_21_01_STREAM_video.rm
rtsp://stream.hpi.uni-potsdam.de:554/Archive/HPIK_SS11/HPIK_2011_07_21_01_STREAM_desktop.rm
are the two URLs for the talk (one for the slides, one for the speaker).
Unfortunately, I couldn't get the content on disk. ffmpeg, [c]vlc, openRSTP, rtmpdump all failed.
The weirdest part is that I can "play" both streams, so the bytes are there, but I couldn't find
a way to replicate that in the shell to persist them.
Update: I didn't notice it, but vlc does indeed dump the raw video stream in a file as required.
I was fooled by the fact that it doesn't display any signs of activity by default. You can monitor
the file in your FS (watch, inotify) or open vlc statistics dialog to witness the data size increase.
jeudi 29 août 2013
org-mode 201308xx recompile needed
Had a weird issue with emacs 24 and org-mode. The vanilla package refuse to `org-clock-in` with a "can't find library: org" (I was already in org mode, but maybe some lazy loading and wrong namespace was at cause). Installed marmalade 201308.. version. Now it can't find org-with-silent... macro or other functions. Opened the source files and forced byte-compile-file. and now it work ok-ish. I can clock-in but if I delete the time-line of an open clock org-mode will lose its head and stop displaying clocks altogether. Or maybe there's a force-rewrite-clocks function but that's left for the next time to be searched.
mercredi 21 août 2013
I though I'd like Clojure ...
I've been following this language and community from a distance, with wide open loving eyes. It had nice abstraction underneath, far less mutation than vintage~ Lisps, some ~syntactic niceties (words like first, rest instead of acronyms).
But coding in it felt had too much. I guess that's what Rich Hickey said, it's on the pragmatic side of things. All it brings has value on day to day problem solving. And I'm still fresh out college scheme/ml courses. But that's the thing, if I had to iterate on the lisp idea, I'd bring it closer to ML, not closer to ruby/perl (that's how I felt for the last few days). Using sml I felt my mind was constrained just enough to find abstract recursive solutions. In clojure I'm floating in a river of gems in brownian motion.
It's shallow criticism, not even criticism, just firsthand expression. I'm probably not smart enough to dive in it in 3 days and understand its idioms. This dialect different enough from lisp/schemes that my brain needs more time (says more about my brain than clojure vs others) . When finished with other things (SICP, 4clojure) I'll do a medium-- sized project in it (something I've never done on my own actually). Hoping the function based, mutation free idioms will lift me above my current limitations, whereas other languages feels comfortable doing one liners, I can never write systems in them. Maybe clojure shines at helping your mind scale above non-trivial exercises.
(lambda (k) ...)
But coding in it felt had too much. I guess that's what Rich Hickey said, it's on the pragmatic side of things. All it brings has value on day to day problem solving. And I'm still fresh out college scheme/ml courses. But that's the thing, if I had to iterate on the lisp idea, I'd bring it closer to ML, not closer to ruby/perl (that's how I felt for the last few days). Using sml I felt my mind was constrained just enough to find abstract recursive solutions. In clojure I'm floating in a river of gems in brownian motion.
It's shallow criticism, not even criticism, just firsthand expression. I'm probably not smart enough to dive in it in 3 days and understand its idioms. This dialect different enough from lisp/schemes that my brain needs more time (says more about my brain than clojure vs others) . When finished with other things (SICP, 4clojure) I'll do a medium-- sized project in it (something I've never done on my own actually). Hoping the function based, mutation free idioms will lift me above my current limitations, whereas other languages feels comfortable doing one liners, I can never write systems in them. Maybe clojure shines at helping your mind scale above non-trivial exercises.
(lambda (k) ...)
mardi 20 août 2013
The loop/recur constructs in clojure are really nasty, and not in a good way. Let's say it will force your brain to re-evaluate its knowledge on recursive processes.
(fn [n]
(loop [i 0
a [1 1]]
(cond (< n 3) a
(= i (- n 2)) a
:else (recur (inc i)
(conj a (apply + (drop i a))))))
Blame it on Sun's JVM.
ps: this is probably the ugliest guess-fested fibonacci function I've ever seen (and written). So far.
(fn [n]
(loop [i 0
a [1 1]]
(cond (< n 3) a
(= i (- n 2)) a
:else (recur (inc i)
(conj a (apply + (drop i a))))))
Blame it on Sun's JVM.
ps: this is probably the ugliest guess-fested fibonacci function I've ever seen (and written). So far.
vendredi 16 août 2013
ubuntu docker.io : docker.sock permission denied issue #163
If you experience this :
$ docker images
2013/08/16 19:05:13 dial unix /var/run/docker.sock: permission denied
Then just use this temporary fix (as suggested here https://github.com/progrium/dokku/issues/163):
$ sudo chmod 777 /var/run/docker.sock
and enjoy your containers again
$ docker images
REPOSITORY TAG ID CREATED SIZE
(empty list because I started from scratch again)
$ docker images
2013/08/16 19:05:13 dial unix /var/run/docker.sock: permission denied
Then just use this temporary fix (as suggested here https://github.com/progrium/dokku/issues/163):
$ sudo chmod 777 /var/run/docker.sock
and enjoy your containers again
$ docker images
REPOSITORY TAG ID CREATED SIZE
(empty list because I started from scratch again)
lundi 22 juillet 2013
Y U NO Y
After finally watching the 1986 SICP HP sessions, and many other videos building languages from nothing but lambdas, I can say I'm almost there for the Y-combinator. This choregraphy of bouncing `objects` (functions or whatever) is a thing of beauty. Wikipedia page on the matter includes some lazy functional example in Haskell :
dummy@x60s_GPT ~ [master *]
± % ghci
GHCi, version 7.6.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> let fix f = f (fix f)
Prelude> (fix (\f n -> if n == 0 then 1 else (f (n - 1)) * n)) 5
120
Prelude> -- amazed
dummy@x60s_GPT ~ [master *]
± % ghci
GHCi, version 7.6.3: http://www.haskell.org/ghc/ :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Prelude> let fix f = f (fix f)
Prelude> (fix (\f n -> if n == 0 then 1 else (f (n - 1)) * n)) 5
120
Prelude> -- amazed
Inscription à :
Articles (Atom)