Nov 21, 2015

Cocoas First Responder, an irl investigation of terms

List of terms/sentences from an article on the Responder Chain that I don't understand yet.

- In fact even Apple often employs delegate protocols to have a view controller communicate to its superior.
-
@protocol FlipsideViewControllerDelegate

- Now we can get rid of the delegate protocol

Oh interesting.  There are 2 ways to assign the receiver for an action (like a button click).  One is to assign it to the "File's Owner".  No idea who this is yet, but sort of get the idea that it may be something called a "Controller" class.  Or something.  The other option for an action target is that you can put the action (the click) in a 'queue' of sorts, to be processed by the "Responder Chain" (whatever that is).  The chain goes up a list, sort of like the View Hierarchy in Android, until it finds a receiving method (I don't think that's what these are called but whatevs) that is registered for that action (the click!).  That method is then called.  

Any selector can be used for the action parameter of the sendAction method 

What's a selector?  If I had to guess, I'd say that it's a view?

Since the app delegate has been promoted to a UIResponder as of iOS 5

Who's the app delegate?  This seems like the first Activity from an Android app.  Or like an Application subclass, but more easily accessible than the Application subclass is. 

Further Interface Builder questions:
There are three items listed under Placeholders: File's Owner, First Responder, and Application.  What is Application good for?
What's the difference between the Placeholders objects, and the Objects?

Mapping Learning

I'm currently writing an app for OSX.  I started it over a year ago, but when XCode ate my project, I gave up.  Before the XCode Apocalypse happened, I had a working prototype built.

In early April, while at DroidCon Montreal, someone asked me what my 'startup idea' was.  I told them about my XCode project that got eaten.  They said it was a good idea, so when I got home I tried to open XCode again.  No luck.

In early October, I was inspired by a tweet about octobuild.com to finish a project in October.  Or at least work on one.  So I opened XCode again.  It worked this time. (Huzzah).

I've been working on it, off and on, since then, just a little over a month.  The prototype no longer works, but instead I'm currently focusing my efforts on making the GUI look and work how I want it to.

I don't know Objective-C.  I've never done any OSX app programming before.  I have done .NET and a fair amount of Android programming, however.  Both of which are GUI-esque systems.  I've been having a hard time grokking how the new system (Interface builder, wtf?) works, so here's a short documentation of things I've learned so far that have been helpful for getting a footing on writing my first OSX app.

- Reading the Apple documentation.  Fairly helpful, but not the right granularity for the most part.  Either too much of a 10,000 foot view or way too granular 1ft view.
- Googling shit / searching for help on Stack Overflow.  Hard to do at the beginning because I don't know what I'm supposed to be Googling for.  What's the proper name for the text input field things?
- Doing an Apple tutorial. I found a really basic, pictoral tutorial in the Apple docs.  This was really helpful for learning the layout of XCode.  But I had mostly forgotten it a few weeks later when I went to do my own GUI.  I can't find the link to it now, either.  However, I did find this repository of sample code.
- Reading articles that are too hard for me.  This is actual a pretty decent strategy for getting a grounding in what the lay of the land is, provided you can hold the fuzzy/frustrated feeling at bay and work on building a relational map of unknown words.  Example: this article.
- Finding the right words.  I finally figured out that Cocoa is the name of the GUI system for Mac OSX applications.  I don't recall exactly what the name for the UI system is for iOS apps.  But it's not Cocoa.
- Asking friends for help. I found this to be slightly helpful, but mostly frustrating.  I asked for help via chat, and I really needed someone in person to show me what buttons to click on the Interface Builder.  Both people I asked were helpful, but neither of them were able to point me to the silver bullet for understanding Mac App programming that I was hoping for.  (One probably doesn't exist).
- Reading the Table of Contents of books.  I find this really helpful for giving the lay of the land - what topics are there to explore?  How are things called?  Sadly, I didn't think to do this until today.  Table of Contents are often available free of charge for any book listed on Amazon (or otherwise).

Something I'm considering trying:
- Buying/borrowing a book. Books are so good at starting at step A and explaining the lay of the land (which is usually what I need the most when working in a totally new paradigm/system.)


I still feel like I'm struggling because the thing that I wanted to have done is not done yet.  The reality is that I may not be moving very fast, but things are making more sense.  That's progress!  I'll take it :)

Nov 19, 2015

Tension is who you think you should be

Struggling with the things I have to do right now. Perpetual stomach ache head ache from all the tension of trying to be this thing that I am not.

The thing that I am is me now but it's tensionless. I don't feel tensionless. Who is the me without this tension?

It's time. It's time to cut the cords and go and be but I don't know where to make the first cut, which cord is worth holding on to, or which one will make me fall.  The converse being that not trimming means that cords are still breaking, just the ones that I don't see, that aren't of my own choosing.

It's ok, I don't need much to hold me up. My spirit animal is Magneto.

Types of Misspellings or A Typography of Mistakes

Types of Misspellings or A Typography of Mistakes

Word hash collision.  Example: `hear` and `here`.
Letter transposition. Example: `deah` instaed of `head`.
Auto correction misunderstanding: Example: `denial` instead of `denies`.
Wrong word. Example: `sodomy` instead of `sisyphean`.

Typing error, brain misfire. Example: `kog` instead of `dog`.  (k and d - same finger, wrong hand)
Typing error, key omitted.  Example: `ths` instead of `this`.
Typing error, key mashing. Example: `thkis` instead of `this`.
Typing error, over eager finger. Example: `htis` instead of  `this.
Typing error, over eager thumb. Example: `thi sdog` instead of `this dog`. (subclass of previous error type, but large enough to merit it's own category).

Actually just forgot how to spell the word. Example: `convenince` instead of `convienience`.

Any combination of the above.

Nov 18, 2015

Magnum Opi

I am a paranoid person in that as I walk down the subway platform and see people on their cellphones scribbling away, I get worried that they're working on their magnum opus. I'm not working on a magnum opus - is coverting oxygen into some sort of semi-poisonous gas not magnificent enough?

What is a magnum opus anyway? Maybe I'm dirty minded but when I hear magnum, I can't help but think of a bunch of condoms, dirty, on the floor beneath a sagging, happy dick. A magnum opus must be greater than a magnificent condom, well used.

Put another way, what I imagine everyone typing into their cell phones on the subway are doing is greater than the best safe sex ever had.

You can see why a girl might get a little paranoid about being left out.

Nov 10, 2015

The stuff problem

Hi. I have too much stuff. This is a problem as my apartment is fairly small - 14,549 sq ft to be precise. 

It started out rather empty, which I have decided is the root cause of this problem. An empty apartment starts empty but fills up fast.

Also worth examining is my faulty short term memory. My long term memory, which works fine,* remembers my apartment at near empty. The reality is that it has been, in the short term, filled with things that I ordered on the Internet but that have not yet arrived. They're in a state of transit and non-arrival. Non-existent, as far as I am presently concerned.

And so it filled up. I can't move without tripping over a chair or staring at some thing that I need to return, throw away, take to the trash, repair.

Maybe that's a bigger problem - there are too many chores not yet done. Papers waiting to be filed, broken pins that need fixing, magazines that need reading, postcards that need mailing, puppies that need loving.

Or maybe it's the new couch arrangement. Maybe it's the inability to buy big furniture so I end up with lots of scoats,  furniture that clutters the floor.

I should get rid of some things. Go back to empty. Throw away the boa constrictors, recycle the shirts I don't wear, return the borrowed coats, eBay away my collection of vintage computers.

*as an aside, how would you know your long term memory isn't working?

Nov 7, 2015

unsure where to start

sitting in this project space that I'm renting space in for a month. (or two?).  it's my first day here, so there's a lot of pressure to be good and productive with my time.  I'm not really sure what that means, on a Saturday.  I mean, if I wasn't here I'd be at home reading the novel I'm currently working my way through: Capote's In Cold Blood.  Or boring my dog to death with more interval practice.

Conquering intervals is my current frustration.  I've been focusing on perfect 4ths & 5ths.  The generally accepted way to memorize an interval is to map it to a favorite song.  A perfect 4th, for example, is the first two notes of "We wish you a Merry Christmas".  The idea being that if you hear two notes that sound like the beginning of the song, you know, instantaneously, that that is a perfect 4th.  The key notes that I'm using for a perfect 5th are the first two notes of the Star Wars theme song.  Duhh, dahh, dahdahdah dahhhh dahh.  You get the idea.

These notes go north and they also go south.  As in being able to identify a perfect 4th both ascending and descending.  It's a bit of a night mare, especially because my short term memory is so horrid.  Or maybe it's just that my listening skills leave a bit to be desired.  Either way just being able to accurately recognize (and, more importantly, differentiate) perfect 4ths & 5ths is a current struggle.

I went to ear training class on Thursday.  In class we focused on rhythm training and singing scales.  The scales that we covered were normal (all the same pitches), a normal (?) minor scale (raised 3rd, 6th & 7th) a harmonic minor scale (raised 3rd & 6th) and a melodic minor (raised 3rd).  I still don't really understand coming back down on the diatonic and melodic minor scales.  It seems to be that they go back to being the same as the "normal" minor scale.  I should look this up, but it's kind of more fun to just grouse / write it out.

There's also 4 sets of triads:  A normal triad (tonic, M3rd, M5th). A minor triad (tonic, m3, M5th). A diminished triad (tonic, m3, d5). An augmented triad (tonic, M3rd, a5th).

Another current frustration: figuring out what language to write side projects in.  Getting outside of the mobile app infrastructure land is so hard *whines*.  I'd really like to switch my blogging over to a static site, but I'm currently trapped in indecision station with regards to what engine to pick.  There's a Java one, but I'd have to figure out how to jar things.  There's a zillion in Ruby or Python but just ew, ok?  There's one in Erlang that looks dope but I'm not sure that my Erlang skills are good enough to figure out how to get it up and running.  I'd also like to write my own (the existing projects up on Github seems small enough to make this a doable project), but that doesn't solve the problem.

Can I write an Android static site generator?  That seems real dorky but also super useful.  I'd definitely use it all the time. o.O lol.  Turn your mobile phone into a web server with this one weird trick!

Ruby and Python are out because we HATTES them we HAATEES them.
Java, eh.
JavaScript? meh.
... what else is there?
Scala? fffuuuckno.
Kotlin? Groovy? meeehbe.
Dart, Go? no thank you.
Smalltalk? Prolog? Erlang? when do you need this by?
bash? what are you a masochist?
C?


Yeah. Maybe I'll do it in C.

sound reflecions: observations from SF MOMA's Soundtracks exhibit

karthik and i went to the SF MOMA today to check out the last few bits of the soundtracks exhibit. we saw this great video work that i can&...