Category: Apple

  • Installing PyLucene on OSX 10.5

    I was pleasantly surprised at my experience installing PyLucene this morning on my OSX 10.5 laptop. The installation instructions worked perfectly without a hiccup. This may not be impressive if you’ve never installed (or attempted to install) PyLucene before.

    I tried once a year or so back and was unsuccessful. The build process just never worked for me and I couldn’t find a binary build that fit my OS + Python version + Java version combination.

    Check out PyLucene:

    $ svn co http://svn.apache.org/repos/asf/lucene/pylucene/trunk pylucene
    

    Build JCC. I install Python packages in my home directory and if you do so too you can omit sudo before the last command, otherwise leave it in:

    $ cd pylucene/jcc
    $ python setup.py build
    $ sudo python setup.py install
    

    Now we need to edit PyLucene’s Makefile to be configured for OSX and Python 2.5. If you use a different setup than the one that ships with OSX 10.5, you’ll have to adjust these parameters to match your setup.

    Edit the Makefile:

    $ cd ..
    $ nano Makefile
    

    Uncomment the 5 lines Below the comment # Mac OS X (Python 2.5, Java 1.5). If you have installed a different version of Python such as 2.6, there should be a combination that works for you. Here’s what I uncommented:

    # Mac OS X  (Python 2.5, Java 1.5)
    PREFIX_PYTHON=/usr
    ANT=ant
    PYTHON=$(PREFIX_PYTHON)/bin/python
    JCC=$(PYTHON) -m jcc --shared
    NUM_FILES=2
    

    Save the file, exit your editor, and build PyLucene:

    $ make
    

    If it doesn’t build properly check the settings in your Makefile.

    After a successful build, install it (again you can omit sudo if you install Python packages locally and not system-wide):

    $ sudo make install
    

    Now verify that it’s been installed:

    $ python
    Python 2.5.1 (r251:54863, Nov 11 2008, 17:46:48)
    [GCC 4.0.1 (Apple Inc. build 5465)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import lucene
    >>>
    

    If it imports without a problem you should have a working PyLucene library. Rejoice.

  • Newton 2.0?

    Every time I refresh my feed reader and see a new slick third-party app for the iPhone, I wonder to myself if a few years down the road we’re going to be talking about pre-1.1.1 iPhones like we talk about Newton’s today. Third party apps and unlocked iPhones are essentially a dead end street unless someone figures out how to work around it.

    Of course 1.1.1 might have also started a cold war battle between Apple and hackers that sounds almost exactly like the moves that Sony pulled on the PSP. The latest move is very different than the Laissez-faire attitude Apple has taken toward hacking the Apple TV and the early iPhone. I never thought I’d see the day that Apple cribbed something from Sony’s playbook.

    Perhaps it’s the difference between an indie/niche product and something mainstream like the iPhone. Perhaps it’s the added pressure of the carriers wanting super-locked down devices on their networks. (I doubt that though. Just grab a Symbian device and do with it as you please.) Perhaps it’s Apple realizing that it’s big enough that it can do as it pleases.

    Then again, maybe they’re biding their time while they polish the official non-web-2.0 SDK. We can all dream, can’t we?

    Pull up a chair and bring it close to the fire. Let me tell you about the golden age of the iPhone…

  • Accessing iPhone built in services from Safari

    During the iPhone demo at yesterday’s WWDC keynote, we saw several examples of accessing the iPhone‘s built in apps and services. I thought I’d go through the demoed features and break ’em down a little:

    Tap on a phone number to call

    This technology dates back to the wtai:// pragma from the WAP/WML dark ages and has since been codified with the tel: uri scheme as outlined in RFC 3966. The tel: scheme is used with XHTML MP and existing mobile browsers (here’s an example from one of Brain Fling’s presentations). I would hope for consistency sake that Apple makes use of tel: but there’s a chance they might go for the unstandardized-but-used-a-lot callto: instead. The callto: scheme is used by Microsoft Netmeeting and Skype on most desktop systems.

    Tap on an email address to invoke the native mail client

    It’s mailto: folks, let’s move along.

    Tap on an address to launch the Google Maps app

    I’m assuming that this is being handled via a proprietary URI scheme which the Google Maps app is registered to. I can’t tell you if it’s going to be gmaps:// or something else, but it’s going to be as simple as creating a link to gmaps://q=20+Infinite+Loop+Cupertino,+CA (or something very similar). This functionality is the most intriguing to me as a geowanker, but my gut tells me that it just boils down to a URL scheme.

    During the demo, leaving the Google Maps app returned to the home screen instead of going back to Safari, so an extra click was required to get back to the Safari webapp. No big deal, just an interesting tidbit.

    So what’s the takeaway for a developer looking to target the iPhone? The long and short of it is that nothing’s really changed since before WWDC. Write yourself a webapp and target the iPhone. What about access to all those built in services and apps? The good news is that it’s nothing special, it’s stuff you’re used to dealing with, and (with the exception of a new uri scheme for Google Maps) there’s really nothing new here. The bad news? It’s nothing special, it’s stuff you’re used to dealing with, and (with the exception of a new uri scheme for Google Maps) there’s really nothing new here.

    Update: Apple has released developer notes for the iPhone. The winners are tel:, mailto:, and (interestingly) they’re just hijacking calls to maps.google.com and sending them over to the google maps app.

  • iPhone and the new mobile web

    There are a few things that excite me about the newly announced iPhone (and a few details that I’m unclear on). One thing I’m pretty sure of is that the coming of the iPhone is the tipping point for a new kind of mobile web.

    I call it a tipping point more than trailblazing because there are already several devices out there that are just waiting for a new mobile web. These are fairly robust devices that have “real” browsers in them. These browsers are fully capable of reading the desktop web, but just because they can doesn’t mean it’s ideal. I’m specifically talking about Nokia’s internet tablets (the 770 and N800), current and upcoming mobile phones from Nokia that include the S60 browser, other mobile devices with advanced versions of Opera and even non-mobile gaming devices such as the Nintendo Wii.

    So what about this new mobile web thing? It’s quite simple. These devices fall somewhere in between the desktop web and the traditional mobile web. It’s sort of a Goldielocks and the three bears situation. Yes, you can view the regular desktop web on this new generation of devices, but you end up having to zoom in to actually read anything or blow everything in to a single column layout (killing the design in the process) if you’re going to read longer passages. The opposite is true when viewing traditional mobile web pages on this new breed of device: the sites look stripped down and barebones in a stark “All we want are the facts, ma’am” way.

    There is a middle ground between the desktop and traditional mobile web just waiting to thrive on these new devices. These new sites will feature more visually rich content and design from the desktop side but will also contain the immediacy and usefulness of the traditional mobile web.

    Developing for the mobile web has never been easy, and I don’t think it’s going to become as simple as creating a myspace profile any time soon, but there are a few things now and on the horizon that are going to make it a lot easier. First of all, there are more mobile browsers supporting more aspects of CSS and Javascript. Specifically the S60 browser, the versions of Opera on many of these new devices, and the version of Safari on the iPhone all support CSS and Javascript quite well. It is also quite nice that while the Nokia N95 and the Apple iPhone are very different devices, they both have at their core the same basic rendering engine, KHTML. The specifics may be different (Safari vs. S60 browser) but I’m hoping that the core rendering behavior remains relatively consistent across these devices. Writing for the iPhone, S60 browser, and Opera will hopefully become as (relatively) easy as making sure a site renders properly in Firefox, Safari, and Internet Explorer. I definitely think that making the same site look good with KTHML and Opera is going to be a lot easier than making a site look good in Safari and IE.

    Welcome to the tipping point, folks. It’s going to be a helluva ride.

  • Oh the CalDAV Possibilities

    While checking up on the Darwin Calendar Server wiki the other day I noticed something I had missed last week: CalDAVTester. It is an exhaustive suite of tests written in Python with XML config files to verify that a CalDAV server implementation is properly implementing the spec.  This suite of tests is going to prove very useful as more servers and clients implement the CalDAV spec.

    Right now the biggest problem with CalDAV is a lack of clients and servers.  That will change over the next 6-8 months as clients and servers are refined, released and rolled out.  Hopefully the CalConnect group and an exhaustive suite of tests will help keep interop a high priority.

  • Darwin Calendar Server

    As soon as Gruber pointed out Darwin Calendar Server I felt like I had to check it out. I’ve played with Darwin Streaming Server in the past and love me some Webkit. I was pleasantly suprised to find that Darwin Calendar Server runs on top of Python and Twisted.

    So away I went. I checked out the source and began to poke around. I managed to check out the source before the README was added so I did a fair amount of head scratching and wheel spinning, but it turns out that getting up and running is pretty easy: ./run -s

    That sets up the server, downloading and building some prereqs as it goes. I already had some prereqs installed system wide so I can’t guarantee that this works, but I’m pretty sure that it has worked for others. I should take a second to qualify that I’m running OS X 10.4 with Python 2.4 installed. From there I copied over the sample config file (cp ./conf/repository-static.xml ./conf/repository-dev.xml) and immediately started troubleshooting SSL errors. First I installed PyOpenSSL and created a self-signed certificate. That yielded a brand new error: OpenSSL.SSL.Error: [('PEM routines', 'PEM_read_bio', 'no start line'), ('SSL routines', 'SSL_CTX_use_PrivateKey_file', 'PEM lib')]

    After doing that and getting some guidance from the folks in #collaboration on freenode I decided to hack away at the plist and disable SSL for now (change SSLEnable to false instead of true). From there I could run the server (./run) and bring up a directory listing my pointing to 127.0.0.1:8008.

    Darwin Calendar Server Chandler Setup

    From there I subscribed to the example payday calendar and the holiday calendar. It appears that iCal won’t do two-way CalDAV until Leopard, but in the meantime I was able to successfully set up and test Chandler.

    This is some absolutely amazing tech in its infancy. I can’t wait to see where this goes and I’m excited that it’s built with tools that I’m familiar with (Python, Twisted, SQLite, iCal). It seems to me like this open source app is but the tip of the iceberg of collaboration features that will be baked in to OS X 10.5 desktop and server.  I would also kill for a mobile device that spoke CalDAV natively so that I can replace my duct taped google calendar to iCal to iSync to 6682 workflow.

  • My OSX Development Environment

    My work powerbook was out at Apple for a week or so getting a tan, a new motherboard, memory, and processor. While it was out of town I settled in to a Linux development environment focused around Ubuntu Dapper, Emacs 22 + XFT (pretty anti-aliased fonts), and whatever else I needed. Ubuntu (and other apt-based systems) are great for hitting the ground running because you just install whatever you need on the fly only when you need it. I also got pretty in to emacs and all of the stuff that’s there by default with a source build of the development snapshot. My co-worker James helped me get through some of the newbie bumps of my emacs immersion program.

    When the powerbook came back I decided it was time to reboot my development environment, so I started from scratch. Here’s what I installed, in the order that I installed it:

    • Updates. Oh. My. Goodness. I rebooted that thing so many times I started looking for a green start button.
    • Quicksilver (freeware): I use it all the time to get at stuff I need.
    • Transmit (commercial, $30): Worth every penny.
    • Firefox (open source): My browser of choice, though I really dig Safari’s rendering engine.
    • Textmate (commercial, 39 euro): I spend all day in this text editor and it rocks, though I do miss emacs.
    • Then I disabled capslock. I never hit it on purpose, it’s always getting in the way. I should really map a modifier key to it, but I’m not sure which one and I don’t know if I can convince my pinkey to hit it on purpose.
    • Xcode: A man has to have a compiler.
    • Subversion (open source): I used the Metissian installer since it has treated me well in the past, and I often have flashbacks of building subversion pre-1.0 from source.
    • Django (open source): I checked out trunk, .91, and magic-removal from svn.
    • Ellington (commercial, starting at $10-15k): I checked out ellington and other work stuff from our private repository.
    • Firebug: Essential for web development.
    • Python 2.4 (open source): I’m not a big fan of the Python 2.3 that ships with OSX.
    • Python Imaging Library (open source): It’d be really nice if this made its way in to the standard Python distro.
    • ElementTree (open source): I usually use either ElementTree or Sax for parsing XML documents.
    • GNU Wget (open source): It’s what I use to download stuff from the commandline.
    • PostgreSQL (open source): It probably hogs resources to always have this running in the background, but I use it often enough.
    • PostgreSQL startup item from entropy.ch
    • mxDateTime (open source): I’ve never really used it directly, but psycopg does.
    • Psycopg 1.x (open source): Django uses this to talk to Postgres.
    • Colloquy (open source): A really nice IRC client for OSX. I’m also rather fond of Irssi and screen over SSH.
    • Growl (open source): It’s not work critical but I like it.
    • Pearl Crescent Page Saver (freeware): I find it indispensable for taking screenshots of entire web pages.
    • Session Saver for Firefox: I hate looking at 15 different forum threads to find the latest version of this, but I love what it does for me.
    • Adium (open source): Best darned IM client for OSX that talks just about any protocol.

    While I may have missed an app or two, I think that just about covers my OSX development and living environment. I find the Ubuntu desktop useful enough that it’s still humming under my desk at work. The work LCD has both analog and DVI inputs so I’m able to switch between my two-screened powerbook and a one-screened Linux desktop in a pseudo-KVM kind of way.

    I can’t say enough how impressed I was with Dapper, and how productive it kept me. Aside from my emacs learning curve, I felt at home and had the command line and any app that I wanted to install at my disposal.

    I hope that this laundry list is helpful, if nothing else it’ll be a place for me to start the next time I’m looking for a clean slate.

  • How Did I Live Without iSync?

    iSync on my Powerbook

    I really don’t know how I ever got along without iSync. It managed to do in just a few minutes what I didn’t have the patience for: synching the contacts between my three Series 60 phones. I had been putting off typing or transfering contacts to my 6682 because I wanted to give iSync a shot, and I’m glad that I did. Now everything is up to date on my 6682 and as a bonus so are my taco and 3650 in case I feel the need to grab them on the way out the door.

    Active Standby Screen

    Another thing that I’m really excited about is the active standby screen on the 6682. I saw a precursor to this on the Sendo X and really liked it. Nokia are definitely on the right track by allowing quick access to as many as 7 apps without having to click the application button. I have access to five apps on the top (Contacts, Messaging, MGMaps, Python, and WirelessIRC) as well as the two softbuttons (Gallery and Opera). The camera app also opens up if the camera cover is opened. That really is quick access to a nice core set of apps for me, with others still available as before.

    The other brilliant thing here is at-a-glance access to your calendar and your todo list. With a single click on either you can pop up those apps, bringing the total number of apps just a few clicks away on your standby screen to 9. I find myself using the calendaring system a lot due to the combination of iCal/iSync and the fact that calendar events from today show up on my standby screen. It’s also great to be able to set up alerts for certain events. I had been using (and absolutely love) Backpack but like the tighter integration of iCal and it also saves me SMSes (since Cingular charges a bit much for them).

    While I’m happy to have access to the todo app on the standby screen, I wish that the message displayed on screen were a little more helpful. If you only have one todo (yeah right, nobody has one todo) your todo text will be displayed on screen. Once you get past one or two todos they get smoshed in to one line that says something like “Slacker, you haven’t done x things yet.” I hope that Nokia takes a look at this in the future, because a soimple change there can improve the experience a ton. I wouldn’t be afraid to have your active standby screen scroll if you have a bunch of appointments or todos as long as the highest priority todos and soonest events are still above the fold or on the main screen. I can see a list of 2-3 todos and a link to “and x more todos” being much more useful than going from one todo to none on the main screen.

    All nitpicking aside, I’m totally in love. The synchronisation is flawless. It Just Works the first time without any glitches (YMMV). What I really love is that I have a vast amount of PIM information available to me on a device that was going to be in my pocket anyway. I’d say that the 6682 does every major function that a PocketPC or Palm based organizer would for me on the PIM side and it’s more than capable of running an array of apps and games. The 6682 really does a good enough job at enough of the functiosn of a PDA that carrying one would be redundant. The only thing I really miss from a PDA is a higher rez screen and Wi-Fi. I think Nokia has that covered in the new E Series though.

    Update: I forgot to mention that there’s an app on the 6682 designed specifically to help you move contacts and information from your old phone to your new phone. It copies a program to your old phone over Bluetooth and then allows you to transfer it over to your shiny new phone. It’s really a one way street, but the guys in #mobitopia tell me that it works perfectly.

  • iPhone: One More Thing?

    If Apple really does have a line of Apple-branded phones ready to rock, they might just have something. If all they’ve got is the Motorola E790, we’ve got trouble right here in River City.

    In all seriousness I hope there’s something else — there must be. The E790 should be one of those phones that just never makes it to market. The itunes-style interface part of it looks halfway decent but the rest of the phone is dogged by Moto’s standard (ugly) UI.

    If UIQ 3 weren’t running so far behind I would think that UIQ3 + Apple customization would be a perfect combination. From what I’ve seen, UIQ 3’s one-handed configuration should rock and be very intuitive. Apple’s UI engineers could surely tweak and customize an iTunes interface on top of that for the music stuff.

    If Apple were really smart they’d team up with HTC or another company that will churn out devices to spec for a device with that “in-house” polish.

    I’ll be watching my aggregator closely on September 7th. Unless Apple has something really big up their sleeves, the Walkman phones are probably going to remain your best bet for some time to come. I’m really excited about the Nokia N91 too, but I worry that whatever PC interface it ships with is going to be too painful for most to use.

    To be honest, an N91-like device with the iTunes store hookup would probably slaughter the music/cellphone crossover market.

  • Dude, Where’s My Freehand?

    I failed to notice this the other day, but aparently Macromedia has ditched Freehand in Macromedia Studio 8. It’s still a standalone product (for now), but start getting used to other tools.

  • Macromedia Studio 8

    MacMerc points to Macromedia Studio 8 which includes Dreamweaver 8, Flash Professional 8, Fireworks 8, Contribute 3 and FlashPaper 2.

    It will be interesting to see what impact Adobe has had on the product line after its purchase of Macromedia. I’m a bit suprised to still see Fireworks alive and kicking, but I guess it makes sense given the level of integration and look and feel between the different Macromedia products. This may be the last independent Macromedia Studio release, but I could be dead wrong.

    There’s a lot of overlap between Macromedia and Adobe products (Indesign vs. Dreamweaver, Photoshop vs. Fireworks, etc), and I think it’s just a matter of time before some products get their red stapler taken away from them.

    From the feature tour it looks like Dreamweaver has taken some cues from InDesign with some very photoshop-esque guides. It is also great to see Dreamweaver finally start to focus on CSS-based design over table layout. It also looks like Dreamweaver is able to parse and display RSS feeds, as you can see about 3/4 through the feature tour. Interesting stuff.

  • Hey Apple: That\’s Just Silly!

    AppleInsider:

    Under the revised store hours, most Apple retail locations will operate: 7 a.m. to 10 p.m. Mon-Fri, 8 a.m. to 10 p.m. on Saturdays, and 10 a.m. to 9:30 p.m. on Sundays, according to ifoAppleStore.

    Aww, comeon. Who did you pay how much to come up with that? You’re going to loose money on this and go back to the old hours eventually. Trust me.

  • Marklar

    MacMerc:

    01:27 PM – HOT Here comes Intel: talking about processor transitions now – from 68k to PC. Apple is switching to Intel from PPC. “Time for a brain transplant.” 2006-2006 cited.

  • Apple Going Intel?

    I’ve got to say that I won’t belive this one until the man in jeans and a black turtle neck says so. Can the Mac really surive another platform jump? Then again, I’d probably subscribe to the $129 yearly operating system plan if it meant I could run OSX on my x86 hardware.

    I’m inclined to believe it more now that Scoble says he got confirmation on the story. I can’t imagine the move being received very well by the developers paying top dollar to attend WWDC. It isn’t over till Sir Steve keynotes, but I’ll definitely be refreshing several Mac news pages like a madman.

    We shall see…

  • PyObjC Slides

    Bob Ippolito has posted the slides to his talks about PyObjC. I hear that there were some neat hacks in the second talk. I’m going to take a look at these slides later this evening.

  • PyCon: Scripting the Mac with Python

    Before lunch I sat in on a session on using Python to interface with Applescript. Appscript is used to create a bridge between Python code and Applescript. Here’s a quick code snippet to give you an idea what Appscript can do:

    from appscript import *
    f = app.("Finder.app")
    f.help # shows what you can do with it, very nice.
    f.desktop.disk[1].free_space.get()
    # gives you an insane number of bytes free
    

    Slick indeed. There was also a slick demo to script OmniGraffle to generate a nice looking sitemap using Python, Appscript, and Beautiful Soup. For more cool hacks, check out these examples.

  • Quicksilver

    I’ve been hearing the word Quicksilver being thrown around quite a lot lately in Apple circles. After looking at the website I can’t help but think that there will be an eerily similar feature in OSX 10.5 . It just seems like it’s good enough to be placed alongside Watson and Konfabulator in the list of apps that Apple has rip^H^H^Hemulated and baked in to the OS.

  • C.K. is Blogging on TUAW!

    Congrats to C.K. whose weblog I’ve been reading forever now. It was great to see his first post of The Unofficial Apple Weblog in my aggregator this morning.

  • VLC Media Player (Formerly Videolan) Rocks!

    Codecs and Linux distros don’t mix. A few years ago, Red Hat stuff stopped playing mp3s. I love my debian Sarge desktop, but Totem just doesn’t support enough codecs out of the box. It’ll handle the basics fine and keeps in line with the minimalistic clean-lines Gnome philosophy. It just won’t handle everything that I throw at it.

    Enter VLC.

    Man, this thing does it all. It can stream just about everything, and it handles a lot of the Windows-based formats that other players throw ugly codec errors on. It may not be as pretty as Totem, but it sure as heck gets the job done.

    Installation was cake on my Debian box. I followed these instructions but opted to install most of the related optional and suggested packages. I also went the sid route as opposed to the woody route. VLC was downloaded and installed in just a few minutes, tho I didn’t get a chance to try it out right away. Sure enough I threw some .wmv and .avi files at it and it handled them perfectly. I don’t have speakers on this box so I can’t vouch for sound decoding, but the video looked just fine.

    I’d highly recommend VLC in addition to whatever media player you’re using now under Linux. There is also a Win32 and Mac OSX version. Take a look at it, I think you’ll like it.

  • Apple Dropped the Ball on the iPod Shuffle

    On Monday after work I headed over to my local CompUSA to look for a new CPU fan for one of my boxes. After finding what I was looking for, I did the customary sweep around the store. CompUSA tends to be a bit behind the curve when it comes to new Apple products, so after a quick glance at the Aplle corner I moved on.

    I passed by the mp3 player section and was shocked when I walked around the corner and saw three little green boxes on the shelf.

    CompUSA had the iPod Shuffle in stock! That was quick. They didn’t have a display for it, but if you knew what an iPod shuffle was, there were three of them sitting on the shelf.

    That’s what bothered me so much when I found myself in the Apple Store at Tysons Corner, Virginia yesterday. I was expecting to see a small display of iPod Shuffle’s even if they didn’t have any in stock. I also expected to see a Mac mini or two on display, even though they won’t be available for purchase until Saturday.

    But they had neither.

    How long has it been since Steve’s keynote? Nine, ten days? There’s just no excuse for the Apple Store to still have “give an iPod” plastered all over the store. The holidays are over. Steve has made a pretty big bet that the Shuffle and the mini are going to be the next Big Things. Where would you expect to find that Apple product that was announced last week that will be out next week? The Apple Store, right? I mean isn’t that the whole point of having Apple stores? A sort of exclusivity and one stop shopping that you can’t find anywhere else.

    In that case, Apple has dropped the ball completely.

    Really.

    Of all the places on the planet I expected to be able to play with an iPod shuffle this week, I thought it would be the Apple Store. If I wanted to pick one up, the first place I would check would be an Apple Store.

    But aparently I was wrong.