unethical blogger - Cocoa http://unethicalblogger.com/taxonomy/term/2/0 Posts related to developing with Cocoa en The slow death of the indie mac dev http://unethicalblogger.com/posts/2010/05/slow_death_indie_mac_dev <p>Once upon a time I was a Mac developer. I <em>loved</em> Cocoa, I <em>loved</em> building Mac software, Mac OS X was once upon a time the greatest thing <strong>ever</strong>. I recall writing posts, and even founding a mailing list in the earlier days of <a id="aptureLink_XXGfUEOvqS" href="http://en.wikipedia.org/wiki/Core%20Data">Core Data</a>, which I was using in tandem with <a id="aptureLink_tTNWKSVsHe" href="http://developer.apple.com/mac/library/documentation/cocoa/conceptual/CocoaBindings/CocoaBindings.html">Cocoa Bindings</a>, which themselves were almost a black art. I was on a couple of podcasts talking about <a href="http://unethicalblogger.com/posts/tyler/im_on_another_podcast">web services with Cocoa</a> or <a href="http://unethicalblogger.com/posts/tyler/cocoa_radio_im_almost_relevant">MacWorld</a>. I loved the Mac platform, and would have gladly rubbed Steve Jobs' feet and thanked him a thousand times for saving Apple from the despair of the late 1990's. As Apple grew, things slowly started to change, and we started to grow apart.</p> <p>As I started to drift away, I gave a presentation at <a href="http://unethicalblogger.com/posts/tyler/cocoaheads_silicon_valley">CocoaHeads</a> presenting some of the changes and improvements to the Windows development stack, not supremely keen on the idea of building Windows applications, I was clearly on the market for "something else". Further and further I drifted, until I eventually traded my MacBook Pro in for a Thinkpad, foregoing any future I might have developing Mac software. My decade long journey of tinkering and learning on Macintosh computers had ended.</p> <p>When Mac OS X was in it's original Rhapsody-phase, in the weird nether-world between Platinum and Aqua, Apple realized that it had been held back by not giving developers tools to build for the platform. Apple began to push Project Builder which became <a id="aptureLink_swydUdyeZv" href="http://en.wikipedia.org/wiki/Xcode">Xcode</a>, which became the <strong>key</strong> to the Intel-transition and has helped transform Mac OS from a perennial loser in the third-party software world to a platform offering the absolute best in third-party software. Third-party applications of impressive quality were built and distributed by the "indie mac devs", <a id="aptureLink_5aNmJQju9n" href="http://en.wikipedia.org/wiki/Adium">Adium</a>, Voodoo Pad and Acorn from <a id="aptureLink_eJ9uu2MQ3K" href="http://twitter.com/FlyingMeat">Flying Meat</a>, Nicecast and Audio Hijack Pro from <a id="aptureLink_02KaUAf1q9" href="http://twitter.com/RogueAmoeba">Rogue Amoeba</a>, FuzzMeasure Pro from <a id="aptureLink_zzeQ82Xigx" href="http://www.supermegaultragroovy.com/">SuperMegaUltraGroovy</a>, Growl, NetNewsWire or MarsEdit originally from <a id="aptureLink_JhNPNMLWfy" href="http://twitter.com/brentsimmons">Brent Simmons</a> (NetNewsWire is now owned by NewsGator, while MarsEdit was acquired by <a id="aptureLink_iQz8tXYk37" href="http://twitter.com/danielpunkass">Daniel Jalkut</a> of Red Sweater Software), Yojimbo and BBEdit from <a id="aptureLink_uTlAfmYT0e" href="http://www.barebones.com/">BareBones</a>, even Firefox, Camino and Opera filled the gap while Apple pulled Safari out of it's craptastic version 2 series. Applications were used on Mac OS X instead of web applications because the experience was better, faster and integrated with Address Book, iPhoto, Mail.app, iMovie and all of Apple's own stack.</p> <p>Then came the iPhone, with its "<a id="aptureLink_Gd4RKGYWAa" href="http://37signals.com/svn/posts/459-iphone-sdk-its-called-safari">Web SDK</a>" nonsense. The story, at least at the time, was clear to me. Apple didn't care about me. Apple didn't care about its developers. Build a web application using JavaScript and AJAX (a Microsoft innovation, I might add) over AT&amp;T's <strong>EDGE network</strong>? Fuck you! <!--break--> A number of months later, back-tracking on the "Web SDK" concept, the iPhone SDK came out at WWDC with a ridiculous NDA, forbidding developers from talking about it publicly. Then the App Store was bundled with iTunes and iPhone OS, with Apple becoming the gatekeeper between indie developer, and Joe User. Of course, more recently in the long line of iPhone/developer related tragedies, the infamous <a href="http://www.maclife.com/article/news/apple_facing_federal_probes_over_section_331_iphone_sdk">Section 3.3.1</a>. There's also some hub-ub about the Apple Design Awards 2010, <a href="http://www.loopinsight.com/2010/04/28/wwdc-apple-design-awards-eschew-mac-os-x/">only focusing on iPhone and iPad apps</a> which is quite disconcerting for indie mac devs, who routinely compete and win awards for the <em>best</em> Mac applications.</p> <p>The message is clear, Apple wants to completely own users on its platform and sit between developers and their users, dictating terms.</p> <p>It's no wonder that <a href="http://twitter.com/rentzsch">@rentzsch</a>, a major voice in the indie mac dev community, and organizer of the <a id="aptureLink_YzJSA1Egyg" href="http://en.wikipedia.org/wiki/C4%20%28conference%29">C4 conference</a> is throwing in the towel on organizing C4 entirely (discussed in <a href="http://rentzsch.tumblr.com/post/592949476/c4-release">this post</a>).</p> <p>It's not entirely clear whether the "indie mac dev" community will continue to exist for too much longer, there is some speculation that a "Mac App Store" is brewing in Cupertino right now or perhaps modifications to Mac OS X similar to what is present on the iPhone. If I were still part of the "indie mac dev" tribe, I'd feel <em>very</em> nervous right now about what will happen at this year's WWDC, as <a id="aptureLink_oN0VOqyn0t" href="http://twitter.com/DanWood">Dan Wood</a> from <a id="aptureLink_cWiF9biNCa" href="http://twitter.com/karelia">Karelia</a> knows, Apple feels no remorse with stomping on Mac developers.</p> <p>Worst comes to worst, I sincerely invite indie Mac developers to bring their user-experience talent and software-building energy to the weird but exciting world of web software, so long as Google keeps Facebook in check, the web should remain open for a good long while.</p> http://unethicalblogger.com/posts/2010/05/slow_death_indie_mac_dev#comments Cocoa Opinion Software Development Thu, 13 May 2010 16:30:00 +0000 R. Tyler Croy 284 at http://unethicalblogger.com I hate Mac OS X http://unethicalblogger.com/posts/2008/02/i_hate_mac_os_x <p>Hate is such a strong word, but I think I can verifiably say that I <strong>hate</strong> Mac OS X (Leopard). In a past life I wrote Mac software on Mac OS X (Tiger) and everything was wonderful, I enjoyed using Mail, iCal, Xcode, Safari and even iTunes sometimes. I <em>liked</em> using my computer, I <em>enjoyed</em> using the tools handed to me by the gods on high in the mountains of Cupertino.</p> <p>Now a couple months since upgrading to Leopard certain that everything was going to be even more awesome than before, I type this from my openSUSE 10.3 workstation, running Opera, Thunderbird, Sunbird, Banshee and Gnome Terminals open all over the place. The tipping point was an afternoon at a coffee shop with my lovely MacBook Pro (code named "cherry") when I closed Safari entirely because it was leaking memory, only to open it again for about an hour, and notice that it had started leaking again and in the course of an hour had a memory footprint of <strong>1.3GB</strong>. </p> <p>Using Mail.app in Leopard has been nothing but a complete and total nightmare, somehow Mail.app's internal IMAP implementation can lock up the entire machine causing the Finder, Safari and Terminal all to beachball while Mail.app takes 15 minutes only to end up crashing. Too many stack traces I've watched Mail.app emit have all been rooted in their IMAP support. Thunderbird is also a miserable piece of software, I'm convinced that everybody except the one engineer I know at Mozilla is a complete and utter idiot, but when Thunderbird locks up, I can still use the rest of my system. Somehow Apple has munged the lines between userland and kernel space so much that userland applications can take control of the machine leaving the user on the sidelines while applications compete for resources and bicker amongst themselves.</p> <p>Time Machine, and Spaces are the only two redeeming features in Leopard for me, but after losing multiple modal dialogs in Spaces and watching iChat or Adium steal focus and rip focus from one space to another became too much to handle. Somehow every window manager on the planet has gracefully supported multiple workspaces for well over a decade and Apple was able to do it <em>wrong</em>.</p> <p>I really like Apple's hardware, I own a 20" iMac, 13" MacBook, 12" PowerBook and have a 15" MacBook Pro at work, but either Apple let go, or lost some really good engineers in their famed deathmarches up to releases, especially up to the release of Mac OS 10.5. I'm sure the iPhone is a great revenue stream, the Apple TV is "cute" and iPods are still my preferred portable media devices, but I never realized that when "Apple Computer, Inc." became "Apple, Inc" that it was going to have such an effect on the quality of their products. </p> <p>Now I have a split partition on my MacBook Pro, and I intend on putting openSUSE on the machine this weekend. My trust in the open source community, as low as it is, is now higher than my trust in Apple to release quality software. Grrrr.</p> http://unethicalblogger.com/posts/2008/02/i_hate_mac_os_x#comments Cocoa Opinion Software Development Sun, 24 Feb 2008 06:32:49 +0000 R. Tyler Croy 167 at http://unethicalblogger.com What a heaping pile of FAIL. http://unethicalblogger.com/posts/r_tyler_ballance/what_a_heaping_pile_of_fail <p>I had mentioned previously that <a href="http://unethicalblogger.com/posts/r_tyler_ballance/ichatagent_leaks_in_leopard" target="_blank">iChatAgent in Leopard leaks</a>, I'm going to take that statement back. iChatAgent in Leopard <strong>hemorrhages</strong> memory, and I think I know why now.</p> <p>While I was napping, there was a network hiccup causing iChat to get <img src="http://unethicalblogger.com/files/ichat.png" align="right"/> disconnected, when the network connectivity returned, it first tried to sign on a couple of Jabber accounts, both of which use self-signed SSL certificates. Being the lovely old chap that iChat is it prompted the user (napping at the time) to accept the self-signed certificate. While the dialog box was up, iChat sat waiting around before it signed on the other accounts and spun and spun and spun. </p> <p>iChat spun and spun and spun until all the available disk space for virtual memory was used up by every process that had to swap out to make space for iChatAgent's demands on real memory, and then by iChatAgent itself swapping out.</p> <p><center><a href="http://unethicalblogger.com/files/ichatagent_FAIL.png" rel="lightbox"><img src="http://unethicalblogger.com/files/ichatagent_FAIL.png" width="400"/></a></center></p> <p>God fucking damnit.</p> http://unethicalblogger.com/posts/r_tyler_ballance/what_a_heaping_pile_of_fail#comments Cocoa Miscellaneous Tue, 18 Dec 2007 13:20:55 +0000 R. Tyler Croy 145 at http://unethicalblogger.com iChatAgent leaks in Leopard http://unethicalblogger.com/posts/r_tyler_ballance/ichatagent_leaks_in_leopard <p>I really don't have much that I can say about this, I came into the office after leaving my Mac on (as per usual) for about 12 hours and found that I was out of space on my startup disk, out of <strong>all</strong> available system memory, and things were crashing left and right.</p> <p>What the fuck right?</p> <p>Well, after I recovered the system enough to pop open "Activity Monitor" I found the exact culprit.</p> <p><a href="http://farm3.static.flickr.com/2418/2059759963_11c31079fb_o.png" title="Memory Leak by agentdero, on Flickr" rel="lightbox"><img src="http://farm3.static.flickr.com/2418/2059759963_11c31079fb_o.png" width="450" alt="Memory Leak" /></a></p> http://unethicalblogger.com/posts/r_tyler_ballance/ichatagent_leaks_in_leopard#comments Cocoa Miscellaneous Software Development Sat, 24 Nov 2007 19:52:13 +0000 R. Tyler Croy 139 at http://unethicalblogger.com CocoaHeads Silicon Valley http://unethicalblogger.com/posts/tyler/cocoaheads_silicon_valley <p><a href="http://theocacao.com/document.page/450">Scott Stevenson</a> beat me to the punch in announcing it, but I might as well reflect the sentiment and invite you all (even those of you who actually don't live in Silicon Valley) to come out to Cupertino tomorrow (thursday) night to see if I can actually pull off a Windows-esque presentation in front of a room full of Mac developers.</p> <p>I will be discussing a lot of the latest developments in .NET 3.0 and Visual Studio 2005 and contrasting them where appropriate to the state of Mac development with Xcode, Cocoa, Objective-C and all the other niceties that Leopard's developer tools offer. If possible I will also try to work in a bit about <a href="http://www.mono-project.com">Mono</a> as another alternative in the sea of options for developers these days.</p> <p>I'll make sure that I either post my slides to my <a href="http://flickr.com/photos/agentdero">flickr stream</a> or the PDF of the slides to this blog after the fact. If I don't however post before Saturday that means I've probably been beaten up and left for dead by a room full of <em>angry</em> Mac developers.</p> http://unethicalblogger.com/posts/tyler/cocoaheads_silicon_valley#comments Cocoa Thu, 12 Apr 2007 05:54:11 +0000 R. Tyler Croy 58 at http://unethicalblogger.com I ain't Shipley, but PmpMyApp http://unethicalblogger.com/posts/tyler/i_aint_shipley_but_pmpmyapp <p>Ever since coming across the (draft) specification for <a href="http://files.dns-sd.org/draft-cheshire-nat-pmp.txt">NAT-PMP</a> I've been almost in love with the absurdly simple NAT port mapping protocol. The unfortunate downside is that NAT-PMP isn't well supported except on Airport base stations, one of which <a href="http://farm1.static.flickr.com/123/377791549_dd858e380e_b.jpg" rel="lightbox">I recently acquired</a>, so as is customary when I welcome a new device into my apartment, I had to write some code for it. I hate to sound like a fan-boy, but like Bonjour, <a href="http://www.stuartcheshire.org/">Stuart Cheshire's</a> other baby, NAT-PMP is sickeningly simple. A series of straight-forward UDP packets is all that is needed for a local (inside the NAT) device to create a mapping on the NAT device itself.</p> <p>To exhibit this functionality, I've created a sample application that uses a tiny little library I built to create and destroy mappings on the NAT-PMP enabled device. The application is called "PmpMyApp" and can be found <a href="http://github.com/rtyler/PmpMyApp"><strong>on GitHub</strong></a></p> <p>The code contained in pmpmapper.c has three basic functions that perform the functionalities that NAT-PMP provides, and are aptly named as well:<br /> <div class="geshifilter"><pre class="geshifilter-python"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"><span style="color: #dc143c;">struct</span> sockaddr_in <span style="color: #66cc66;">*</span>pmp_get_public<span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: #66cc66;">;</span></div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">pmp_map_response_t <span style="color: #66cc66;">*</span>pmp_create_map<span style="color: black;">&#40;</span>uint8_t <span style="color: #008000;">type</span>, uint16_t privateport, uint16_t publicport, uint32_t lifetime<span style="color: black;">&#41;</span><span style="color: #66cc66;">;</span></div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">pmp_map_response_t <span style="color: #66cc66;">*</span>pmp_destroy_map<span style="color: black;">&#40;</span>uint8_t <span style="color: #008000;">type</span>, uint16_t privateport<span style="color: black;">&#41;</span><span style="color: #66cc66;">;</span></div></li></ol></pre></div></p> <p>The pmp_get_public() function returns a pointer to a sockaddr_in that contains the external IP address of the NAT device. The pmp_create_map() function does the heavy-lifting, in that it will create the actual mapping (and the deletion too, with a zero lifetime) and will tell the NAT device to persist the mapping for the number of seconds specified with the lifetime argument. The code is commented so it should be very easy to get a feel for how to use the pmpmapper functions, a good place to start is by examining how it's used in the <a href="http://github.com/rtyler/PmpMyApp/blob/master/source/XzibitController.m#L14">PmpMyApp source</a>. (<strong>Note:</strong> All of the PmpMyApp code is BSD licensed)</p> http://unethicalblogger.com/posts/tyler/i_aint_shipley_but_pmpmyapp#comments Cocoa Fri, 09 Feb 2007 09:24:40 +0000 R. Tyler Croy 43 at http://unethicalblogger.com I'm on another podcast http://unethicalblogger.com/posts/tyler/im_on_another_podcast <p>Steve Scott of <A href="http://latenightcocoa.com/">Late Night Cocoa</a> asked me a couple weeks ago if I wanted to come on and talk about <a href="http://bleepsoft.com/buildfactory">BuildFactory</a> and continuous integration, and then that slowly morphed into talking about webservices and Dumbarton as he noticed I posted some WebServicesCore gripes. We got to chatting a bit about why Mac developers don't seem to "appreciate" webservices as much as those in the .NET world, etc and eventually got together to record <a href="http://latenightcocoa.com/?q=node/20">Web Services with R. Tyler Ballance</a>.</p> <p>If you've not checked out Late Night Cocoa, I highly recommend it, it's already shaping up to be a good (technical) podcast about Mac development (the <A href="http://latenightcocoa.com/?q=node/16">Core Data with Marcus Zarra</a> interview was fantastic, a hard one to follow). If nothing else I hope most developers can use my interview to get a better feel for what's available in the growing webservices (2.0!) landscape. A more active discussion about the strengths and weaknesses in the Cocoa frameworks can do nothing but make the Mac development community stronger, check it out!</p> http://unethicalblogger.com/posts/tyler/im_on_another_podcast#comments Cocoa Thu, 01 Feb 2007 23:15:07 +0000 R. Tyler Croy 37 at http://unethicalblogger.com Basic HTTP Authentication with WebServicesCore http://unethicalblogger.com/posts/tyler/basic_http_authentication_with_webservicescore <p><a href="http://www.ditchnet.org">Todd Ditchendorf</a> is the man I have to thank now, not only for his fantastic <a href="http://www.ditchnet.org/soapclient/">SOAP Client</a>, but now for "showing me the way" in terms of using CFNetwork to handle basic HTTP authentication with SOAP webservices in Cocoa. Performing the basic HTTP authentication is still an absolute pain in the ass, but it is possible nonetheless.</p> <p>Without further ado, <a href="http://www.ditchnet.org/wp/2007/01/30/example-code-webservices-core-cfnetwork-for-soap-http-auth-on-os-x/">take it away Todd</a>.</p> http://unethicalblogger.com/posts/tyler/basic_http_authentication_with_webservicescore#comments Cocoa Wed, 31 Jan 2007 22:06:42 +0000 R. Tyler Croy 34 at http://unethicalblogger.com WebServicesCore, On The Radar Screen http://unethicalblogger.com/posts/tyler/webservicescore_on_the_radar_screen <p>A little birdie chirped into my email wondering what the radar number for my previous <a href="http://unethicalblogger.com/posts/tyler/webservicescore_why_hath_thou_forsaken_me">gripings about WebServicesCore</a>, and I figured that for all one of the Apple employees that actually read my inane bullshit, behold: </p> <p>Radar <a href="rdar://problem/4945073">#4945073</a> ("WebServicesCore lacks support for basic HTTP authentication")</p> <p>Let's all cross our fingers and hope for a much needed update to WebServicesCore. If all else fails, we can tap our <a href="http://unethicalblogger.com/files/apple_shoes.jpg" rel="lightbox">shoes</a> together and wish for a new web services API right?</p> <p><small>(What's that weird <a href="http://rentzsch.com/notes/rdarUrls">rdar url</a>?)</small></p> http://unethicalblogger.com/posts/tyler/webservicescore_on_the_radar_screen#comments Cocoa Mon, 22 Jan 2007 13:14:00 +0000 R. Tyler Croy 26 at http://unethicalblogger.com WebServicesCore, Why Hath Thou Forsaken Me http://unethicalblogger.com/posts/tyler/webservicescore_why_hath_thou_forsaken_me <p>I've been hacking around with more webservices-based applications recently (<a href="http://flickr.com/photos/agentdero/tags/twitterer/">Twitterer</a> for example) and I've also reminded myself what an utter pain in the ass they can be in Cocoa. With <a href="http://twitter.com/">twitter</a>, they make available both JSON and XML-based webservices, which is good since they use basic HTTP authentication for their user-specific webservices (i.e. everything but retrieving the public timeline). The XML-based webservices are more or less straight-forward to hack up with Cocoa, all one really needs to do is write a parser (<a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSXMLDocument_Class/Reference/Reference.html">NSXMLDocument</a>) and then make use of the URL loading classes (<a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/Reference/Reference.html#//apple_ref/doc/uid/20001697">NSURLConnection</a>, <a href="http://developer.apple.com/documentation/Cocoa/Reference/Foundation/Classes/NSMutableURLRequest_Class/Reference/Reference.html#//apple_ref/doc/uid/20001696">NSMutableURLRequest</a>) to retrieve and process, or POST data. This method of interacting with "webservices" (more <a href="http://www.gnu.org/software/wget/">wgetting</a> than anything else) is rudimentary at best, and in my personal opinion, isn't as robust as SOAP webservices are. It does however, work. Regardless of the framework, programming language, or geo-orbital location of the moon, they will work because all you're doing is making an HTTP GET and then parsing the results.</p> <p>The benefit of SOAP webservices however, is the almost "literal" translation of objects encapsulated into SOAP messages, into runtime objects. In effect, if I have a Person object defined in my <a href="http://www.google.com/search?client=safari&amp;rls=en&amp;q=define:+WSDL&amp;ie=UTF-8&amp;oe=UTF-8">WSDL</a> and similarly defined in my application (with a good SOAP framework) the objects should be encoded and decoded appropriately when passed via SOAP. The real power of SOAP can be realized when used with ASP.NET (ick) webservices and .NET clients (see <a href="http://www.mono-project.com/ASP.NET">ASP.NET - Mono</a>) where you can relatively quickly and easily build and deploy a services-oriented application. That's .NET/Mono however, my work is dealing with <a href="http://dietrich.ganx4.com/nusoap/">NuSOAP</a> and Cocoa, a less than ideal mix. </p> <p>To start hashing out a Cocoa-webservices-oriented application, your first stop should be at a local pub, brewery, or mayor's office for a good round of intoxication, only after every tissue in your body is soaked with fine casket-aged whiskey will you be prepared to embark on your journey. It's usually best to start with a complete WSDL, you can then use /Developer/Tools/WSMakeStubs to generate what resembles some Objective-C that you can flesh out to some extent to provide an intermediary layer between your sane Cocoa code and the actual SOAP method calls. Cocoa makes SOAP painful. The stub code revolves around one magical "object" <A href="http://developer.apple.com/documentation/Networking/Conceptual/UsingWebservices/3_ref_folder/chapter_3.2_section_3.html">WSMethodInvocationRef</a>. Think of WSMethodInvocationRef like you would a sadistic elf that only pops out of his little elf home to kick you in the groin before shouting "TRY AGAIN IDIOT" and scurrying away, there's a bit of magic involved, but mostly pain. Since the invocations will just return a generic "id" type, the only way to really be sure what your webservice invocation returns is to either call [NSObject respondsToSelector:(SEL)] or just trust that the webservice you called will return what you expect, whether it be an NSString, NSDictionary, NSArray, or NSNumber (NSNumber is what's returned in place of numbers and booleans, it's WebServiceCore's cheap way of boxing those primitives). TRY AGAIN IDIOT. </p> <p>Something else to note is that things you might expect to be able to use, such as basic HTTP authentication are absolutely non-existent in the magic WebServicesCore black-box. With a URL loading-based webservice (JSON, XML) you can just use the delegate method:<br /> <span class="geshifilter"><code class="python geshifilter-python">- <span style="color: black;">&#40;</span>void<span style="color: black;">&#41;</span>connection:<span style="color: black;">&#40;</span>NSURLConnection <span style="color: #66cc66;">*</span><span style="color: black;">&#41;</span>connection didReceiveAuthenticationChallenge:<span style="color: black;">&#40;</span>NSURLAuthenticationChallenge <span style="color: #66cc66;">*</span><span style="color: black;">&#41;</span>challenge</code></span><br /> And authenticate from there, popping around through the various NSURLConnection delegate methods. I have also experimented with updating the SOAP endpoint to include a URL something like the following:<br /> <span class="geshifilter"><code class="python geshifilter-python">http://<span style="color: #dc143c;">user</span>:password@bleepsoft.<span style="color: black;">com</span>/some/stupid/url</code></span><br /> While one might assume the HTTP subsystem hidden behind that magical WSMethodInvocationRef would handle this appropriately, and translate it to the basic HTTP authentication tokens, it just doesn't work. TRY AGAIN IDIOT.</p> <p>The alternatives are few and far between if you <strong>absolutely need</strong> to use SOAP webservices for a certain Cocoa project, I am working on converting a framework that <a href="http://toxicsoftware.com/blog/">Jonathan Wight</a> wrote to use the URL loading classes in Cocoa, but other than that learn to love WSMethodInvocationRef or plead with your web developers to rewrite their existing webservices with <a href="http://www.xfront.com/REST-Web-Services.html">REST</a>, JSON, etc. WebServicesCore is an antiquated pain in the ass, and probably hasn't been updated since Steve Jobs was at NeXT.</p> <p>TRY AGAIN IDIOT.</p> http://unethicalblogger.com/posts/tyler/webservicescore_why_hath_thou_forsaken_me#comments Cocoa Mon, 22 Jan 2007 11:39:25 +0000 R. Tyler Croy 25 at http://unethicalblogger.com Cocoa Radio, I'm Almost Relevant http://unethicalblogger.com/posts/tyler/cocoa_radio_im_almost_relevant <p>Through some twist of fate, I was <a href="http://www.cocoaradio.com/2007/01/cocoaradio_mwsf_2.html">interviewed on Cocoa Radio</a>. I think I managed to maintain some semblance of competence throughout the interview until some random fellow sat really close to Blake and I and threw my concentration.</p> <p>It was pretty fun, Blake and I hung out most of the week (I even rescued him from the airport in <a href="http://flickr.com/photos/philaaronson/356041889/in/photostream/">blue lightning</a> on thursday) so doing the interview was a bit weird, as we talk regularly. </p> <p>And thus begins my long hard trek into the public consciousness; I'll be super-famous, just like Sting, you'll see.</p> http://unethicalblogger.com/posts/tyler/cocoa_radio_im_almost_relevant#comments Cocoa Tue, 16 Jan 2007 08:06:22 +0000 R. Tyler Croy 18 at http://unethicalblogger.com Emission, Coming Soon http://unethicalblogger.com/posts/tyler/emission_coming_soon <p>As some of you (both rather) may have noticed, the <a href="http://bleepsoft.com/">bleepsoft.com</a> homepage is a bit different these days. </p> <p>In the very near future bleep will be releasing an application called "Emission" that, besides the cool icon, will certainly change how I work with the wide array of people across the globe that I deal with on a daily basis.</p> <p>As a lot of the network core is still unwritten (yes, it's very network-ey), so I'm not going to disclose too many details, but check out the site, <a href="http://www.devixdesign.com/wlog/">Fernando Lins</a> has done a fantastic job on the icon.</p> http://unethicalblogger.com/posts/tyler/emission_coming_soon#comments Cocoa Thu, 11 Jan 2007 19:02:02 +0000 R. Tyler Croy 16 at http://unethicalblogger.com