1. pheriday 2: termcasting overview

    pheriday 2: termcasting overview (2012-08-03) from Paul Ivanov on Vimeo.

    paul's habitual errant ramblings (on Fr)idays (2012-08-03)

    show notes:
    http://pirsquared.org/blog/2012/08/04/termcasting/
    gopher://sdf.org/1/users/ivanov/pheridays/2012-08-03 (yes, gopher!)

    1. try to not say "uuuuhhhhmmnn"

    BAM/PFA Summer Cinema on Center Street http://bampfa.berkeley.edu/filmseries/summercinema

    1. SciPy 2012 videos up, go check them out! (I have!) http://www.youtube.com/nextdayvideo (removed nextdayvideo internal box url, by request)

    Software Carpentry: Record and Playback post http://software-carpentry.org/2012/07/record-and-playback/

    1. termcasting: a review of what's out there.

    http://termcast.org and http://alt.org/nethack/ mostly nethack stuff, both just use telnet protocol, only live sessions (though there are "TV" scripts to re-run sets of ttyrec files).

    (playterm vs ascii.io vs shelr.tv)

    tldr: playterm.org supports ttyrec files, but has the most primitive player. Players on ascii.io and shelr.tv can both seek. shelr.tv can also speed up playback! Downside is both of those have their own recorder programs (though at least shelr leverages script or ttyrec)

    http://playterm.org/ - supports ttyrec files, outgoing links for author and related article, comments. - most primitive player (https://github.com/encryptio/jsttyplay/) - Pause only - only terminal sized of 80x24 or 120x35 - supports tags and comments - service only (code for playterm.org does not seem to be available, though jsttyplay is doing the hardest part of actual playback)

    http://ascii.io/ - supports non-standard terminal size - player can seek. - aesthetic thumbnail previews - login via github or twitter credentials (for uploads) - code for website available (ruby and javascript) https://github.com/sickill/ascii.io - code for recorder available (python) https://github.com/sickill/ascii.io-cli

    http://shelr.tv/ - supports non-standard terminal size - player can seek. - player playback speed can be increased (currently up to 10x of real time) - supports tags, comments and voting up/down on a video - shelr can playback from command line ("shelr play http://shelr.tv/records/4f8f30389660802671000012.json") - code for website available (ruby and javascript) [AGPLv3] https://github.com/shelr/shelr.tv - code for recorder available (ruby) [GPLv3] https://github.com/shelr/shelr

    1. my wanted list for termcasting
    2. should support ttyrec files (upload and download)
    3. live-streaming (like ustream - but for coding)
    4. termcast.org has ttrtail which does just this
    5. quick "encrypt" switch - to keep streaming, but start GPG encrypting the stream as it goes out - so you can still look at it later. This would make it easy to leave the streaming on all the time
    6. a .tty editor that's like a video editor cut out portions [i.e. dead time]

    This is a low-bandwidth way of capturing what I'm working on and thinking about. Now, I'm going to try to record everything I do! "ttyrec -e screen -x". I've only done it a couple of times so far while coding, but I find being able to go back and re-view (and review) what I worked on at the end of the day to be really helpful.

    I was inspired by Joey Hess' "git-annex coding in haskell" where he reviews and narrates some of the code he wrote, after he wrote it. http://joeyh.name/screencasts/git-annex_coding_in_haskell/

    P.S. It's Saturday now. I tried to save some local diskspace by running recordmydesktop using the --on-the-fly-encoding option, and that was a mistake. The audio and video were (un)hilariously desynchronized - the audio ran for 9:48, but the video wanted to be just 7:30. Audacity came to the rescue by allowing me to change the tempo to be 30% faster, which made the syncing better. And then I used avconv to stitch in the faster audio.

    tools used: Debian GNU/Linux sid, recordmydesktop, xmonad, fbpanel, screen, chromium, cheese, xcompmgr, audacity, avconv

    read more
  2. pheriday 1: software carpentry, digital artifacts, visiting other OSes

    Here's pheriday 1, another edition of paul's habitual errant ramblings (on Fr)idays

    pheriday 1: software carpentry, digital artifacts, visiting other OSes (2012-07-27) from Paul Ivanov on Vimeo.

    2012-07-27.mp4 (28 MB) 2012-07-27.avi (71 MB) 2012-07-27.ogv (321 MB)

    show notes

    I had three topics I wanted to cover today, and ended up spending about an hour thinking about what I was going to say and which resources I was going to include. This was too long, and the end result was still very rambling, but I think I'll get better at this with more practice.

    SDF Public Access UNIX System http://sdf.org gopher://sdf.org/1

    1. try to not say "uuuuhhhhmmnn"
    2. be lazy (software carpentry)
    3. flipside of "publisher's block" (git-annex)
    4. visiting another country (windows 8 release preview)

    As usual, I didn't know what I was really trying to say in 0, and here's a really good overview of what I meant: Software Carpentry

    If you have 90 seconds, watch the pitch

    play it in 60 seconds, instead: mplayer -af scaletempo -speed 1.5 Software_Carpentry_in_90_Seconds-AHt3mgViyCs.flv

    1. publisher's block

    Jaron Lanier's You Are Not A Gadget What I mention in the video is not at all the main point of Lanier's book (which is quite good!), and in fact, his book is a critique of (over) digitization. Nevertheless, I'm only pointing out that there are redeemable aspects of an increasingly digital artifact producing life, such as preservation.

    David Weinberger’s Everything is Miscellaneous

    My review of David Weinberger’s Everything is Miscellaneous, where I go into more depth about "information overload".

    git-annex Excellent project. The technical details is that when you "annex" files, they are renamed to long hash of their contents (bit rot resistant!) and stored in a .git/annex/objects directory, whereas in place of where the file was, you get a symlink to the original file, which gets added to git. So git only keeps track of symlinks, and additionally has a git-annex branch that keeps track of all known annexes, so that you can copy, move, and drop files from the ones that are accessible. Very handy!

    Haiku OS

    tools used: Debian GNU/Linux sid, recordmydesktop, xmonad, fbpanel, screen, iceweasel, cheese, xcompmgr, youtube-dl, mplayer, screen

    gopher version of this post (proxy)

    read more
  3. pheriday 0: scientist-hacker howto (video post)

    Hey everyone, here's pheriday 0, the first of paul's habitual errant ramblings (on Fr)idays

    pheriday 0: scientist-hacker howto (2012-07-20) from Paul Ivanov on Vimeo.

    Berkeley Kite Festival (510 Families)

    Merlin Mann's Most Days (specifically the travel day one on 2009-01-11)

    Sad that I missed SciPy Conference this year. One of the things I like doing at scipy is nerding it up with my friends, seeing each others workflows, showing off vim tricks, etc. This video was my attempt at scratching that itch, a little bit. As I mention in the video, this is take 2. Take 1 ended when I ran out disk space, but needless to say, it was more awesome than this. It seems I am cursed with losing first takes, see also a summary of last year's SciPy conference, where this exact same thing happened.

    NumFOCUS: NumPy Foundation for Open Code for Usable Science

    NumFOCUS Google Group see thread titled: "[Funding] Notes from Funding BOF at SciPy2012"

    TLDP: The Linux Documentation Project (page I was scrolling through)

    Transition to Gopher was rough this time, it was better during the first take.

    Lorance Stinson's w3m (better) gopher support Use this if, for example, going to w3m gopher://sdf.org you get errors like:

    [unsupported] '/1' doesn't exist! [unsupported] This resource cannot be located.
    

    It still took some tweaking, shoot me an email for details

    Robert Bigelow's About | Gopher & GopherSpace

    Here's the HTTP Proxied version of the above: Gopher proxy provided by Floodgap

    SDF Public Access UNIX System http://sdf.org gopher://sdf.org/1

    Eric S. Raymond's How To Become a Hacker Howto

    Fernando Perez' Py4Science Starter Kit

    Q: Why are you using "Chromium --incognito"? I have chronic tabitis, and this is one way of mitigating that problem. If the browser crashes or I shutdown my computer, I won't have those tabs around anymore.

    programs used: Debian GNU/Linux sid, recordmydesktop, xmonad, fbpanel, screen, chromium, cheese, xcompmgr, mutt, wyrd, tail, w3m

    gopher version of this post (proxy)

    read more
  4. Ada Lovelace Day: remembering Shirley Theis and Evelyn Silvia

    In case you didn't know it - today is Ada Lovelace Day!

    Now, as any self-respecting Computer Science degree-wielding person should, I, too, think it's important to celebrate the day named after the world's very first programmer.

    For me, the first math teacher I remember making a big difference was Shirley Theis - who taught me Algebra in 8th grade at McKinley Middle School in Redwood City, CA. Mrs Theis, an energetic dynamo in her mid fifties, was a deeply motivated and caring teacher, who expected a lot out of her students, but never in a disciplinary manner. She was full of enthusiasm, which projected out and infected even the most timid or disaffected student: in her class, you couldn't be just a sack of potatoes planted in your seat.

    She often lead class in a nearly theatrical manner - pacing back and forth, egging students on by eagerly repeating their partial responses, getting exponentially more excited if the student was on the right track, barely containing herself from jumping up and down in anticipation of that lightbulb going off -- and yet just as quickly waning in her enthusiasm,becoming a personified caricature of hopelessness and despair to let you know the instant a response was starting to go astray.

    It may have been the only math class I've ever taken where there were group assignments - we would work with a partner or a few classmates in trying to figure out an assignment, first trying it solo, and then putting our heads together to figure out why our answers disagree and which is the right one. I believe it was Mrs. Theis who succinctly captured a value I hold in high regard: "it's not about how far you go - it's about how many people you bring with you."

    There was one other mathematics teacher I had in my life who clearly stands out: it was Professor Evelyn Silvia who had a comparable level of enthusiasm and energy, and from whom I had the pleasure of taking the first upper-division math course (Math 108 - Intro to Abstract Math) during my second quarter at UC Davis. Dr. Silvia was the real deal - she cared, gesticulated, encouraged us to question why something was true, and had an approach which demanded we each take ownership of our education. The book for the course, Introduction to Abstract Mathematics: A Working Excursion by D.O. Cutler and E.M. Silvia was a blue workbook - each of us had our own copy, and there were blanks left out for us to write our own answers to the exercises. The fact that the book had blanks for me to fill in was so inviting, there was a kind of "working mathematician" approach that came with it with that it made me really enjoy and look forward to working through the material. I still have mine.

    Dr. Silvia was incredibly sharp, not just intellectually but also interpersonally. Not only could she gauge when the class was lost, but she also had a knack for spotting if something was affecting you outside of class. She was really committed to helping you not just as a student, but as a person. I remember spending hours at Mishka's, or Cafe Roma, or the CoHo, reading and writing, wanting to do well and not let Silvia down, because she invested so much energy and placed a great deal of trust in us.

    So thank you both, Shirley Theis and Evelyn Silvia - you both encouraged me to grow a lot as a person, challenged my concept of what it means to be a student, and by your example provided a template of what it means to be an effective teacher, which I've imitated and embraced with pleasure in my own teaching.

    (tagged scipy to spread word of Ada Lovelace day to Planet SciPy)

    read more
  5. vim-ipython two-way integration! (updated: 2011-08-02)

    I'm very pleased to share with you a demo the forthcoming vim-ipython integration which will work with IPython 0.11(trunk).

    You can either use the Flash player below, or download the OggVorbis file (14MB) update: vim-ipython 'shell' demo (9.6MB). The blog-free form of this post is here.

    If you like what you see and want to try it, you can get the details from the vim-ipython github page and it currently requires 4 line changes to IPython, which are currently in this pull request. (Fixed to work on IPython trunk with no changes).

    Big thanks to Min for walking me through the new IPython kernel manager during the SciPy2011 sprints.

    UPDATE: 2011-08-02

    vim-ipython ‘shell’ mode.

    Just in case, here are the same videos as above, but hosted on Youtube:

    If you're have any issues, try searching for your error on the vim-ipython github issues page, and if you don't find it, please file a new one, and I'll help you out there.

    read more
  6. on facebook, you die a quiet death...

    2010 02 27 technology

    So I finally got around to quitting facebook. I came to the HackerDojo tonight, and Waleed was working on sending out notifications for users of his app, because Facebook is disabling notifications as of March 1st.

    Notifications was the way I was planning to announce my departure, because the "app" I created for that purpose would still be around after I deleted my account. But I was only able to send out a few of these notifications before facebook would not let me anymore.

    Here's the message (with the cool icon I made) as it appeared on Facebook:Notification.

    But that wasn't going to stop me: so I made a status update - which contained essentially the same message:

    Hey guys, as I alluded to in a status update a few weeks back:
    
    I'm leaving Facebook.
    
    This walled garden isn't the way the web was meant to be, and I *refuse* to
    continue participating in it.
    
    You can always find me by either searching for "Paul Ivanov", or through the
    various means listed [on my website](http://pirsquared.org/personal.html).
    
    best, 
    -pi
    

    And then I was off to "Deactivate" myself. Beware - Facebook will play on your heartstrings by telling you that a couple of your friends will miss you - putting their photos right there and beckoning you to message them - but I was prepared to deflect this Faustian bargain. "Don't go! Ashley and Andrew will miss
you!!!" Though after I said "yes, really", it asked me for my password, and following that also sent a CAPTCHA! ("the escapade" indeed!)

    "the escapade"
indeed

    and then, just like that: POOF! I vanished. Without any trace. The fake temporary account I created had no friends - my last (and all) status updates lost in the ether (at least as far as facebook users are concerned). But rest assured that the data lingers - permenantly - as facebook was immediately suggesting that my new fake account, who now had no friends to speak of - connect with the people I had been friends with, even though my account was gone.

    For most of my friends, I got your birthdays, schools and jobs, as well as the most recent photo, and all of the friend-to-friend connection among you. For most - I actually had a stale copy (of everything but the photos) from 2007, which when I originally wrote the export scripts I used, and Facebook was just starting to open up its API and quickly devolving to a MySpace clone. It's not like I even frequently used the site - but reading about this reminded me to quit for good.

    So I finally did.

    read more
  7. Publisher's Block

    2009 12 26 technology

    vim

    One of the reasons I find it so difficult to get more than a couple of entries in per year, is that I know they aren't going anywhere after I post them. They're sticking around for a while, and if they're full of trivial crap then that doesn't reflect very well on me. Posting about trivial stuff was ok when I was still trying to establish a sense of identity. These days, when I write something public, say on a mailinglist, I agonize over every detail because I know that this digital breadcrumb with my name attached will be around forever. So I keep raising the stakes to myself, neurotically checking over every possible extra whitespace in a patch I send in, sinking hours into something that should have taken 15 minutes.

    I'm finally getting to the point where I realize it's a problem that, for example, even when I'm texting someone, I try to get all of the spelling and punctuation correct.

    It's slowing me down.

    I've had a lot of half-written blog posts that, after stepping away from them for a short while just don't seem significant enough. I try to only publish pieces that either I think about for a while, or that I'm not hearing/reading others write about. But I'm always mindful about adding noise. The way I see it, when it became super easy for anyone to publish online, a lot of content flooded in that I simply don't care for. Same idea with web 2.0 - because of Ruby on Rails, Django, and other web frameworks, writing a fancy (but useless) website became super easy - and now we're oversaturated with them ((Though this problem will probably sort itself out with time. I didn't intent to write about this now, so I'll just keep that remark without developing it further)). So there's this internal tension: I think there's too much crap-content out there but at the same time my internal filter keeps me from publishing anything. I rarely express my thoughts about what I find important in writing anymore. Others don't seem to make such a big deal about self-filtering, and are much more prolific writers/bloggers/coders, etc.

    LTS

    So here's a new acronym-sized motto to help correct this behavior, which is starting to get sprinkled in comments in the software I'm writing for my research: LTS. Life's too short.

    LTS

    I use it as a reminder of what in the past was one of my frequently used maxims: most things in life are pass or fail. This doesn't mean that it's ok to do a half-assed job on everything, but given that there's a limited amount of time, I should focus my efforts only on that which is truly important. Typos in a text message or extra trailing whitespace do not qualify as such.

    I wasn't always this careful about what I publish. I've had some form of internet presence (as embarrassing as it may seem now) since I was in middle school. It started in one of those geocities neighborhoods, I don't even remember any details right now, probably because my brothers helped me to set it up. I didn't use my real name until I started a poetry website freshman year in high school.

    I used my full name, because I wanted to express my thoughts and have them be connect back to my persona, not a pseudonym that I might grow tired of. I was quite explicit about this at the time. And I didn't filter myself, I just counted a total of 20 poems on there which were written in the course of a year. None of them really make me cringe, and some I'm still quite proud of.

    I had nothing to gain by hiding behind an alias. I think that attaching my real name somehow made my thoughts sincere. I started blogging socially my senior year in high school (livejournal), and looking back on the first entry there, I was just trying to capture day-to-day events and thoughts. Vim, THE editor, is mentioned five times in the first two entries :) . But there are some very candid and thoughtful remarks in there, too.

    It's kind funny to have your more than 10 year old website cited in a Yahoo! Answer to the question: "What is the best way to live life to the fullest?". Basement cited I mean, it is yahoo answers, we're really scraping the bottom of the barrel when it comes to content (( in fact, Elaine absolutely refuses to read anything on that site anymore, despite the fact that frequently, her google search string is verbatim the same as the question which comes up as one of the top results)) , but it's still cool. Yeah, ok, so it's doubly embarrassing because the citation is just for the lyrics to "The Sunscreen Song". I'm ok with that.

    And I'm very grateful for my many friends and colleagues who, by their example, continue to give me the courage to release my thoughts and code out in the open. Thank you.

    As I was putting my finishing touches on this post, I found a recent entry on Scot Hacker's blog titled "(I Don’t Care About) Facebook and Privacy" that covers similar ground: "For me, it’s simple: If what you have to say shouldn’t be said to the whole world, then don’t say it online." I agree, and it's a more sensible standard than my "everything you say will forever be connected to you, so don't screw it up!" But just to be clear, this should only apply to things you intend to write up and release: I absolutely oppose Eric Schmidt's dismissal of privacy. Eric says, "If you have something that you don't want anyone to know, maybe you shouldn't be doing it in the first place." Due to its construction, it bears striking similarity to Scot's quote above with which I mostly agree. But to me, Eric's statement is a 1984-sized world apart.

    Anyway, hopefully I've adequately explained my "publisher's block", and there are many related topics left to explore, but this is where I'll have to end this post for now. LTS.

    read more
  8. Weinberger's talk and OLPC

    2007 08 08 technology

    Here's David Weinberger talking about Everything is Miscellaneous (the book I reviewed here and many others did here). The hour-long talk stands on its own and covers much of the book, though I don't recommend watching it if you're planning to read the book.

    I went to Linux World Expo today and played with one of these upcoming One-Laptop-Per-Child project's XO-1 laptops at the Creative Commons booth. OLPC XO-1 at Linux World Photo by Scott Beale / Laughing Squid (cc) While OLPC is a noble effort, I think it still feels like another example of trying to solve a problem with technology where technology is not the bottleneck. For example, I was bummed that they took away the hand-crank power-supply a while back because I think this severely limits who'll be able to eventually use these. The UI and networking stuff is pretty novel, but my overall impression is that it's too gadgety. I felt pretty lost in all just the buttons on the keyboard, but then again I only used it for 20 minutes and this wasn't made for me. With that said, I'm not holding my breath, but it could be a great thing if this takes off. I say "could" because technology by itself just isn't enough ((A point the OLPC project acknowledges in their vision.)). This is a point I keep coming back to again and again.

    read more
  9. And it begins again...

    2007 07 20 technology

    hello-world

    screen cap

    So I finally bit the bullet and put up my own blog. It was just one of those wait and see things for a while, but now I find myself reading most things via rss feeds, so I really had no excuse not to move on from my livejournal. I was afraid of abandoning my lj-friends - but Yuan found a happy medium with cross-posting back to her lj (though now that she has an rss feed I read her entries first in Thunderbird, sometimes days ahead of visiting my friends page)

    I'm still getting settled in, so this isn't quite live yet.

    Anyway, I've had a couple of entries on the back burner that I've been working on, and they feel serious enough to warrant having their own place, instead of being a part of a corpus I started almost six years ago (in high school, no less). More and more people I know host their own blogs and it's always nice to have a fresh start (though I've reposted a hand full of my most recent LJ entries to get a running start).

    read more

« Page 2 / 3 »

social