• Shortcuts : 'n' next unread feed - 'p' previous unread feed • Styles : 1 2

» Publishers, Monetize your RSS feeds with FeedShow:  More infos  (Show/Hide Ads)

Date: Sunday, 13 Sep 2009 21:57
I'm moving my blog to maximporges.com. Please update your RSS feeds if you have them. NOTE: If you get forwarded back here, then the DNS changes are still propagating - give it a few hours and try again.

Blogger has been very good to me over the years, but I've decided to go to a hosted WordPress account so that I can get a little more control for adding additional pages and content to my site.

I'm going to keep this old Blogger site up for historical linking purposes, but it has been retired effective immediately, and all new content will be going on the new site. Also, all the content from this old blog has been imported in to the new one so nothing will be lost.

See you at the new site!
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Saturday, 29 Aug 2009 13:48
I just got finished upgrading my work computer to Snow Leopard and configuring everything. Here are my thoughts.

Typical painless Apple installation. It took somewhere between 30 mins and an hour; I'm not exactly sure since I was messing around with my synthesizers while it was running. Xcode has to be upgraded separately, and takes about ten minutes. After you install, Time Machine will re-backup all the differences between your old OS and your new one, and Spotlight will re-index various bits as you set them up (such as your email) - both these tasks happen in the background as usual.

Mail will upgrade all your email databases when you start it. I have a buttload of email, and it only took about a minute to convert all my databases (both work and personal email).

After I was done, I set up my Exchange account, which was previously accessed through IMAP. I put in a few basic details (email address, password, etc.) and Mail figured out the rest, including who our Exchange provider is - pretty impressive. It also auto-configured iCal and Address Book. The only hiccup I ran in to is that during auto-config of the Exchange account, since our email addresses differ from our usernames at Highwinds, Mail prompted me for my username.

After that, all my email got downloaded in to the new account. I reconfigured my Smart Mailbox filters to use the new account folders, and that was that.

When I opened iCal, I had two new calendars already set up for my Exchange calendar and tasks. Something that they fixed in the new iCal is that you can move an event from a Mac-local calendar to a shared calendar; I was not able to do this with the previous version of iCal when we used to use the Kerio server at Highwinds (an Exchange knock-off with Mac compatibility).

Moving tasks is mostly painless. Exchange doesn't have a priority of "none" so I changed all my tasks to be Medium priority to avoid iCal putting a little note in the task indicating that the priority could not be set. Exchange also doesn't support URLs like iCal does, so anything unsupported just gets moved in to the Notes area on the task. I also downloaded IMLite from the App Store, which lets me view my tasks (since Apple hasn't put that feature in the iPhone yet for some reason).

One thing I absolutely hate about the new iCal is the window that pops up to edit events and todos. In previous iCal versions, this was almost as bad, but at least workable. In the new version, the window always pops up to the top left corner of the screen, and does not act as an inspector - meaning that when you select new items, the window does not update to show the details of the new items; what happens instead is that each item gets its own pop-up window. If you move the window, it doesn't respect your new location, and continues to pop up in the top left, and multiple windows lay themselves out.

Seriously, WTF? With all Apple's UI expertise, they still can't get this right?

Apple, here is how iCal should let you edit events: put a pinnable inspector window somewhere in the app, just like the Tasks view or the mini-months calendar or anything else. As I select objects in the calendar, auto-save changes to the previous object and change the inspector's binding to show the settings for the newly selected object. Put up/down or previous/next arrows in it so I can scroll through all my to-dos or calendar events in sequence and set their properties. Allow me to select multiple items and make the inspector reduce its scope of editable items to only the common elements (i.e. associated calendar, date, etc.). Basically, what you did in iTunes with the song inspector, just with a pinnable window instead of a pop-up.

UPDATE: Either I am a douchebag, or Apple fixed this super-fast, or both. Guess what you can find in iCal's Edit menu? Nothing other than a "Show Inspector" option. And it's a nice one, too - always on top and stays where you put it. Damn you fruity bastards at Apple - you are good. :)

Address Book
Unsurprisingly, all my Exchange contacts showed up in my Address Book under a new heading. My Exchange directory was still there from before. Nothing fancy here, but nice that it all worked as expected and was auto-configured for me by the OS.

32-bit vs. 64-bit and Rosetta
Leopard will install by default in a 32-bit compatible mode, and run apps in either 32-bit or 64-bit mode automatically based on what the app supports. All the Apple core apps have been rewritten in 64-bit from what I understand, including Finder, Mail, iCal, Safari, System Preferences, and the other staples.

Device drivers must be 64-bit. Some drivers will not work in Snow Leopard due to the 64-bit requirement. The only two drivers I have personally had issues with are my open-source USB rocket launcher driver (don't really need that to be honest) and the drivers for my Access Virus TI synth. Access is working on updating the drivers, so I'm just going to wait on upgrading my personal Mac until they have that sorted out since I like the "total integration" features that TI stands for.

The 32-bit support is really smart. If I try to open 32-bit preference panes in System Preferences (such as the MySQL or LockTight panes), System Preferences warns you that it needs to restart, and does so in 32-bit mode. You can explicitly tell an app to always start in 32-bit mode by selecting a checkbox in Finder's Get Info pane for that application.

Rosetta is not installed by default. I fired up Quicken 2002 Deluxe and Snow Leopard asked me if it should install Rosetta, which it did by downloading the software from the web. Rosetta is also on your Snow Leopard installation disk if you want to include it by default. Quicken ran just as well in Rosetta on Snow Leopard as it did in previous versions of OS X.

I had mixed results on two OS plugins that I use regularly: MenuMeters didn't work (although a fix is in the works as of the August 17th blog post ), and Quicksilver runs just fine. Keyboard shortcuts in TextMate for jumping to the beginning and end of the line using Apple-[left/right] arrow stopped working, but somebody published a patch and this will be fixed in the next minor release according to the ticket.

Is It Faster? Better?
Yeah, in different ways. Safari has finally hit its stride with blazing performance, and I like the Google Suggest integrated in to the search widget. Finder is a lot snappier in certain operations, like opening a stack full of downloads. Expos e is so fast it seems to twitch in to view compared to before, and I really like the even sizing of the windows - much easier to read (and now I understand at least one reason why they wanted resolution-independent graphics technology in OS X). Expose also allows you to zoom in on Expose'd windows by hovering with your mouse and hitting space bar, giving you a Quick View-style pop-up - a nice touch. The new Dock menus are smoky-black like the stacks are in Leopard, so that is more consistent. Windows are now apparently spring-loaded for dragging files between them, which I am sure I will use since I have been known to love me some spring-load.

There are some other cool features in it that I haven't touched yet. I haven't tried the new QuickTime X, but I can see myself taking little video notes with it now that it supports basic web cam capture and editing features; no need to fire up iMovie any more. I cursed Preview just yesterday for is lack of column-based PDF text selection, and that is in there now. And if you use any of your computers as a file server, Snow Leopard lets you put them to sleep and still advertise their files if you have a compatible Time Capsule or Airport Extreme base station - when you want the files from a remote computer, it wakes the computer with the files up, and then puts it back to sleep. Unfortunately, my main file server is an old G4 tower that is too long in the sabre tooth (hah!) for Snow Leopard, but I house my iTunes library on my personal laptop so I can see myself using this feature there.

Honestly, I wouldn't say you should rush out and buy Snow Leopard if you're on Leopard already, but I think it's definitely worth $29 (or $49 for the family pack, which I bought). The speed difference is evident, but besides that it's much the same as Leopard. The main thing I bought Snow Leopard for was Exchange support, and I got far more than my money's worth out of that feature alone.
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Wednesday, 19 Aug 2009 18:15
I ran in to an issue today. We've been making a lot of wireframes for application user interfaces in OmniGraffle, and I wanted to get these in to version control along with everything else. Unfortunately, OmniGraffle typically stores files as bundles (special directories), and these bundles use OS X resource files for certain bits of the file format, which are fine for native OS X documents. However, these resource files have names like "Icon/r" (where /r is an escape sequence for a newline character), and that totally pisses off Subversion when committing resources.

Luckily, OmniGraffle offers the ability to save files as flat files rather than bundles. The files can end up being fatter on disk, but that's not really a problem considering how cheap disk space is today. You can go in to the Inspector for the document, and look in the Canvas accordion pane under the Document Settings tab. There, you will find a heading for "File format options", which by default seems to be set to "Automatic." You can change this to "Save as flat file", and save the document, and you are now ready to commit the file to Subversion.

However, I wanted to change the default file format to flat file so I don't have to go through this process every time. I Google'd a bit and found some suggestions for setting default preferences for the OmniGraffle app using "defaults write" from Terminal. Unfortunately, that option no longer seems to work for OmniGraffle 4.2 and up. I was, however, able to figure out the solution.

The problem seems to be that even with the defaults for the OmniGraffle app set to save to flat files, OmniGraffle always defers to the file format preference specified in the template that is used to create new documents. There are a set of document templates in the OmniGraffle application bundle that hold this setting, so you need to go in to each of these files and change the file format preference. You can find the location of these template files in the OmniGraffle preference pane under "Templates."

Once you have done changed the file format preference on the document templates, you are in business for all future documents created from those templates. This is how you do it.

1) Go to the OmniGraffle application bundle, right-click, and select "Show Package Contents."
2) Finder will show you the inside of application bundle. Navigate within the application bundle to Contents => Resources => Templates. In here, you will find a set of OmniGraffle documents that are used as your default document templates.
3) Open the document template that you want to modify. OmniGraffle launches and shows you the document.
4) Open the Inspector for the document, go to Document Settings under Canvas, and set the document template file's File Format option to "Save as flat file."
5) Save the document template.

Now, all new OmniGraffle documents created from that document template will also have their default preference set to "Save as flat file" since the template's preference has been set to that setting.

I hope this helps any other OmniGrafflers out there using Subversion!
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Holy Crap   New window
Date: Thursday, 16 Jul 2009 20:49
I've been trying to use Voice Control on my iPhone and thought that it totally sucked. I'd say stuff like "play Crystal Method" and it would get it right about one time out of five. In some cases it would call somebody... awful.

And then I watched the iPhone commercial on TV and noticed that the phraseology is very specific. You can't say "play Crystal Method", you have to say "play songs by Crystal Method." Apple tried to make this obvious by having Voice Control show you these phrases in a scrolling background, but I'm too stupid to do something complicated like read.

And once you use the right phrases - damn. I read it a phone number using the "dial" command, and it picked up every digit perfectly.

Nice job, Apple.
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Tuesday, 14 Jul 2009 00:13
I'm sitting here in bed listening to The Crytal Method's "Tweekend" and typing a blog post on my iPhone, something that would have been totally undoable on the Blackjack that I had before. I'm going to write up a post on my top favorite idiotic behaviors on the Blackjack another time, but for now, suffice to say that it suffers from some of the worst usability issues of any phone I have ever owned.

iPhone FTW. It took a long time for the planets to align properly for it to make sense for me to own one, so forgive me if I'm late to the party, but so far it definitely seems to have been worth the wait. Anecdotally, the keyboard on the 3GS seems to get my typing better than Jessica's old 3G did...

More thoughts to come as I get more familiar with my new digital friend.
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Tuesday, 30 Jun 2009 13:49
I haven't had a chance to upload all the photos to my Flickr account yet, so here are my top (Facebook-enforced) 200 favorites. If you are looking for an awesome wedding photographer, I highly recommend the guy who shot our wedding - Phillip Lloyd.

We should be getting the video in a few weeks, so I will post that when I have it. In the meantime, enjoy the pics!
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Tuesday, 30 Jun 2009 13:11
13-year-old trades iPod for original Sony Walkman; hilarity ensues (via Engadget).
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Monday, 15 Jun 2009 22:02
A while back, I blogged about how I hate autocomplete="off". While I'm loving the new Safari 4, unfortunately the upgrade process from Safari 3 overwrote my patched version of WebCore, which was previously set to ignore this idiotic HTML attribute.

Luckily, the Autocomplete Always On! script still works on Safari 4, so have at it.
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Saturday, 06 Jun 2009 12:32
Bruce Eckel just posted a blog post about how to get in to a career in computing. He starts by posing the question "should I learn C++ or Java?" and throughout the post indicates how thoroughly irrelevant that question is to a successful computing career.

It's a great article overall, but based upon my experience, I think this statement Bruce makes in his post rings truest.

"When the Internet was first booming, all you had to do was spend some time learning HTML and you could get a job and earn some pretty good money. When things turned down, however, it rapidly becomes clear that there is a hierarchy of desirable skills, and the HTML programmers (like the laborers and sheet rockers) go first, while the highly-skilled code smiths and carpenters are retained.

What I'm trying to say here is that you don't want to go into this business unless you are ready to commit to lifelong learning. Sometimes it seems like programming is a well-paying, reliable job -- but the only way you can make sure of this is if you are always making yourself more valuable."

He also lists the output of a seminar where participants highlighted qualities in ideal job candidates for software developers.

"There is no right answer ... and always a better way. Show and discuss your code, without emotional attachment. You are not your code."

I've worked with a lot of different programmers in my career, and I've found that the best ones had these two qualities Bruce describes in common: a commitment to lifelong learning and emotional separation from their code.

The guys I worked with who had not committed themselves to lifelong learning typically fell in to the category of people who learned a language because programming jobs in that language were hot at the time they got in. If these are your motivations for becoming a programmer, I have very simple advice for you: choose another career.

People who learn one hot language just to get a job mostly find themselves ten or more years later as one-trick ponies on outdated software platforms. Since they have no real interest in learning anything else, there's a huge degree of insecurity associated with learning anything new, which has a direct impact on how they react to ideas to improve their trade. This is easy to spot; instead of welcoming alternative approaches for their merits and engaging in debate, these guys are the ones who will dig their heels in against change and do everything they can to maintain the status quo, regardless of whether or not the solutions are meeting the needs of the end users/software requirements. This is a one-way ticket to a dead-end career.

I like to consider myself in the other camp, which is programmers who embrace the lifelong learning process. However, I also try to be realistic about my ability to stay in this camp for the long term; there are trade-offs to both career choices.

To be clear, I love writing software more than anything else about my work, but I also enjoy the occasional breaks from the "grind" when my management responsibilities take center stage. In short, writing high-quality software requires a ton of focus and discipline, and unless you take constant pleasure in this you will find yourself hating your job. When you hear about engineers getting burned out, it's usually due to being forced to stay in a focused state for an extended period of time. Both (a) the need to constantly change your methods and approaches, and (b) to learn entirely new languages to produce the best solutions and leave your old skills behind require a huge commitment both personally and professionally. Case in point, after ten years in the field, I'll be learning Groovy from one of the guys on my team next week since we determined that the Grails platform will be the best thing to support our web service endpoints.

While I don't know when (if ever) I will get burned out, I could definitely see myself leaving coding behind one day in the future. I'd still be involved with software, but I would replace coding with more managerial responsibilities, perhaps focusing more on software team management or product management needs. If that day ever comes, I think I'll always be a tinkerer; after all, if you love programming, that love stays with you forever. I learned last week that my periodontist used to be a UNIX programmer before he got burned out, and he still messes around with coding on the weekends.

I had a chance to get out of coding earlier in my career, when I took on a senior management position. It's a lot easier to manage software than to produce it as your personal output, and in a different company I probably would have stayed with the management role. However, the company I worked for was not a technology company, and this meant that I spent more time managing the concerns of the business than the development of their software. Since my passion is ultimately for software, I just didn't care about my career continuing in that direction. I've since made the switch to work in the tech sector, and can now honestly say that if I was given the choice between a career developing software in the non-tech sector and switching careers, I would switch careers. So, even if I end up in a primarily managerial role in the future, it will be for a tech company.

In closing, my advice for budding software engineers is this.

1) Know that you love software before you commit to it. You'll know when you take your first pseudocode class: a clear division forms between the people who get it and the people who don't. If you're in the "don't" section, choose another career.

2) If you don't like teaching yourself new things, the skills you learn today will be irrelevant in less than a decade. Accept the commitment to learn throughout your career as a coder, or accept your eventual fate as a has-been.

3) College degrees matter less than hands-on knowledge and time spent at the keyboard. I outpaced my entire class in college because I bought my own programming books that deviated from the coursework, and as a result I learned things they were not teaching in school.

4) College degrees still matter. There was a lot of stuff I missed in my two-year AS degree at a community college that I ended up learning either through experience, or by rubbing shoulders with colleagues with four-year CS degrees. If you can't make it through four years of school, make sure you pick up a book on programming algorithms and learn the classics before you hit the workforce.

5) Early on, decide if you want to focus on application development or software engineering. Application development deals with making user interfaces, interfacing different systems together, solving business process problems, and exposing applications to the outside world (i.e. web services and other remoting techniques). Software engineering deals with creation of utilities and processes that support information processing, tends to be more math intensive, requires a lower-level understanding of the trade, and rarely deals with the systems that expose the software to an end user. There are core differences in these two disciplines and 100 shades in between, so figure out what you like.

6) Once you know what you want to do, seek a job that puts you in an apprenticeship role with an actual person as your mentor. Companies that support co-op programs and allow you to learn from a mentor while contributing to a team produce the best engineers. If you find that you are plugged in to a position like a cog in a big machine, and have "ivory tower" designers/architects handing out instructions without teaching you the "why", find another job.

7) If you decide to program software for a company whose core business is not technology, know that in most of these companies the quality of the software is not important, and your role in the organization is considered expendable. In these companies, IT is usually the first department to get cut when things go south, and you will sometimes be forced to make crippling compromises in the quality of your applications to meet short-term business needs. That being said, you will often get the opportunity to directly impact the work of people who you see regularly and share in the success of the businesses your software supports, so there are tangible rewards to this avenue.

8) If you decide to program software for a company that sells their technology, they tend to treat their engineers better than corporate IT shops, and cut their engineering staff last when things get bad. On the flip side, in tech companies there is a lot more pressure to produce and meet deadlines; if the software doesn't get produced, there is nothing to sell, and the company goes under. You will also be less connected to the people who use your software since they often don't work for the same company.

9) The languages you can program in do not define your capabilities as an engineer, but they do determine how easy it is to achieve the goals you are tasked with. A language like C++ produces the highest-performance software, but becomes riddled with complexity when you want to use it to produce user interfaces or deal with cross-platform applications. Languages like Java and C# are great for producing applications, but can't match the raw speed of C++. Almost all the GUI toolkits are a pain in the ass, but are a necessary evil to produce end-user applications (if you can't stand pushing pixels around all day, don't become an application developer). Dynamic languages are more flexible and easier to make mistakes with; compiled languages tend to be faster and more precise, but can sometimes make you feel like you are wearing handcuffs. My recommendation would be to learn C, plus either Java/C#, at least one web-development UI language (Flex, XHTML + JavaScript, etc.), and at least one dynamic language; you will learn things from each that make your mastery of the others more complete. They will also help you learn what your preferences are, and help you decide what you want to specialize in.

These thoughts are obviously just my own experiences, but hopefully you will find them useful if you are considering getting in to the field. Whatever you decide, if you love programming in school or as a hobby I can assure you that you will also love it as a job. I wake up every morning and can't wait to get to work to fire up my IDE and knock out some more code.
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Monday, 18 May 2009 14:13
Pursuant to the renaming of Flex Builder to Flash Builder, I just posted the following comment to this article on The Flash Blog.

I don't really care what Adobe calls the tools, but it goes without saying that there is a clean separation of skill set between Flex and Flash developers. In fact, Adobe and Macromedia both did an admirable job of pointing this separation out at length when promoting Flex to the enterprise development community. I can only imagine that the companies chose to do this because of the Flash IDE's image in the developer community as a tool for making animations and non-enterprise apps - a perception which frankly still holds true for Flash developers not using the Flex toolset.

For everybody who already uses Flash and Flex, renaming Flex Builder to Flash Builder is not going to cause any serious issues; we understand the roles of both tools and can differentiate. Where the name change will be confusing is with future students and professionals evaluating Flash and Flex for the first time, and trying to decide which tool set they need to master and for what purpose.

What I am most concerned about as a Flex developer is Adobe's recent moves to blur the previously-clear definition between Flash media and Flash enterprise development skill sets. If Adobe continues this trend and decides to abolish the Flex name altogether and call it "Flash Enterprise" or something like that, people like me who develop purely with the Flex framework are going to have a much harder time targeting relevant employment opportunities. This will be just as difficult for Flash developers targeting rich media/non-Flex opportunities. The two specializations are individually necessary and distinct for different kinds of work, regardless of the platform's capabilities.

You stated the following in your post: "We as a community need to spread the word about what Flash really is now." So, what is Flash now? As far as I can tell, it's the same as it has always been: the most pervasive platform for running rich, interactive applications. There are two common ways to do that: using the Flash IDE and working in a media-centric fashion on the timeline, or writing script-and-tag-based applications using the Flex framework. There are other less-common ways, such as generating Flash content programmatically using any of the many commercial and open-source authoring libraries. Renaming Flex Builder to Flash Builder doesn't change any of these facts, doesn't change what the Flash platform can do, and doesn't spread the word any further about what the Flash platform is capable of.

I must ask: is this apparent need to change perception about the capabilities of the Flash Player really the purpose for renaming Flex Builder to Flash Builder? Is this the same reason behind renaming Flex Camps to Flash Camps? If so, then I'll ask Adobe to please stop now. Adobe and Macromedia poured tons of marketing dollars in to promoting Flex development as a different activity from Flash development, and with good reason: they are different activities targeting different skill sets. Clearly Adobe agrees that this is the case, or they wouldn't have two separate tools targeting each activity.

Call the tools whatever you like, but unless the goal is to merge all the Flash-related tools and skill sets altogether (a horrible idea for reasons already outlined), please keep the differentiation between Flash and Flex development apparent.
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Saturday, 16 May 2009 13:15
I just found out that Flex Builder 4 is being named Flash Builder 4, and the micro-conference that I'm speaking at this month that would usually be referred to as a Flex Camp is instead a Flash Camp.

WTF? Unless they are integrating the Flash tools from the Creative Suite in to Flex Builder, I have no idea why they are calling it Flash Builder. Once again, marketing defies logic.

Perhaps Adobe will explain the situation at some point.

UPDATE: The Flash Blog attempts to clear up the matter here. I still don't get it. This statement in particular by the author (in the comments) puzzles me:

"@Everyone I can guarantee that the Flash IDE is not going away. I don’t know what else to say to convince you. I’m not one to BS my readers so I hope you will trust me on this."

So, now we have two products, the Flash IDE and Flash Builder... great. That's not confusing at all.
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Saturday, 16 May 2009 10:23
Kyle and I caught The Crystal Method show yesterday. I forgot my little Sanyo HD video camera that I usually sneak in to concerts, but I got a few half-decent shots with my phone.

I saw these guys at HOB about seven years ago, and they put on a decent show then, but the one last night was arguably the best show I have ever seen. The guys had loads of energy, and they played a great mix of tracks from their new album while mixing in the old classics.

Performing Live
For a hobbyist electronic musician like myself, it was interesting checking out their kit and the way they set up their live set. We were up in VIP so I got a pretty good picture of their kit from the side of the stage. Scott Kirkland is stage right, and Ken Jordan stage left.

The duo seemed to run 85-90% of their set off of sequencers, mainly the beats and the bassline/backing and vocal samples. Scott had two microphones, one set up with a vocoder where he did a little yelling on one of the new tracks. Scott spent most of the set playing the lead parts of TCM's various tracks, while Ken played supporting parts, except for a few tracks like "Keep Hope Alive" where Scott was playing the driving arpeggio and Ken played the lead. Between lead parts, Scott would also go to the rack and twiddle the filters on a filter bank of some kind; I know I have seen the model reviewed in Sound On Sound before but I couldn't remember the name of it.

TCM are huge fans of two synthesizers that make up the majority of their set, and have defined their sound for years: the Nord Lead (the red synth to Scott's left) and the Alesis Andromeda (the big one with loads of knobs to Scott's right). Scott also has what looks like either a drum machine or sampler between the Andromeda and his mixer, and then both guys had M-Audio Axiom controller keyboards. Scott also had an M-Audio Trigger Finger (hidden under his controller keyboard in my shot), presumably for firing samples. Finally, they had some guitar effects pedals/pedalboards, most notably a ProCo RAT that Scott had balanced on top if his Nord Lead and was firing off by giving it a solid bash occasionally.

One synth that Scott had that I did not recognize was an Arturia Origin (mounted above the drum machine in the shot). I couldn't really tell what sounds this was producing during the set, but I imagine they were using it as a filter bank.

Running the Set
The duo seemed to be set up with their whole rig time-synchronized, and since they didn't seem to do much set up between songs I can only imagine that they program their set in to their sequencer, and have it fire off program changes to all the synths on stage at the appropriate time in order to have the lead/support sounds ready to roll.

Each had a late 2008 MacBook Pro on their rig, so my guess would be that Scott's was running the sequences and Ken's was running software synths, unless they had both computers slaved to each other and playing sequences which I would find unlikely. As for the sequencer, it looked like Scott had Apple Logic's mixer view up on his laptop, but it could also have been Ableton Live - I wasn't able to get a good enough shot to zoom in and figure it out. Ken's screen was not facing the audience.

Scott really drives the show with the lead synths. He's a big fan of filter tweaking on stage, and used his mixer to manage the volume of whatever he was messing with so that the audience could hear it as he was doing it. Most of the interaction for the show came from Scott, and I must say he did an awesome job.

Overall, it was an awesome show, and most of what I have posted up here is a guess about their set, but an educated guess at least. Enjoy the pics, and make sure you check out TCM on their tour and their new album Divided By Night (links to iTunes) if you are so inclined.
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Thursday, 14 May 2009 18:35
Jessica and I toured the Western Mediterranean for 10 days for our honeymoon, visiting Italy, Spain, Monaco, Tunis, and Capri on the way. We had a great time everywhere, although Capri was our favorite.

If you are so inclined, I invite you to check out the pics. We had two days at sea, which I didn't take many pictures during, so the links below are mainly for the ports of call and the time we spent in Rome on both ends of the cruise.

Day 1: First Day in Rome
Day 2: Transfer to Civitavecchia
Day 3: Florence and San Miniato
Day 4: Monaco/Monte Carlo
Day 5: Barcelona
Day 6: Carthage and Sidi Bou Said
Day 7: Sicily and Palermo
Day 8: Capri
Day 9: Last Day in Rome
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Tuesday, 12 May 2009 20:27
Access Music just released the latest OS for their Virus synth line, which totally rocks. I'm getting ready to install it now so I will let you know how it goes. It's been in beta for a few months so I expect it is stable by now.

Access has also set up a Vimeo channel, including some great jam sessions with their gear from past music events. This is a link to the shorter one if you want to get a sampling of what to expect.
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Tuesday, 12 May 2009 20:12
After a great event in Miami, the Flex community is doing it again with Flash Camp Orlando. Don't be put off by the name - this is a Flex conference through and through, with the name being driven by some arcane motivations from deep within Adobe's marketing department. However, since Adobe is sponsoring the event, they could call it Giant Lollypop Tomfoolery and I'd still be happy to support it.

The event is taking place on May 29th, 2009 with an early bird special available until 5/15. There are going to be some great speakers there (with the exception of me, since I am a total ass hat). You'll get to see brand new content plus a few popular topics being repeated from the Miami event.

So what's the vig? We're talking $35 with the early bird for an all-day event including parking and lunch. That's a steal - even more so if you get lucky and you end up with a prize worth more than the entry price, and Adobe always comes through with loads of great prizes so the chances are high that you will walk away with a little something-something (or even a big one - some lucky fellow got a full Adobe Creative Suite package at the Miami event!).

If you are even remotely interested in or involved with Flex development I highly recommend you register right away. I'll see you there!
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Monday, 27 Apr 2009 09:35
Jessica and I got married over the weekend. I'll be blogging more about how awesome the wedding was when I get back from the honeymoon (which we're leaving for this afternoon), but here's a sample of pics taken over the weekend by friends and family while we wait on the official photos. Enjoy!

Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Wednesday, 22 Apr 2009 22:31
I really hate it when software dictates preferences to me. I'd noticed that some of the web sites I visit did not autofill credentials, and had always assumed it was a bug in the way Safari dealt with figuring out the autofill details. However, I looked at the source for a payment web site today and saw the property autocomplete="off" in the form fields, which Safari respects.

F*** that. I lock my computer every time I am away from it, have a FileVault encrypted drive, and have all my passwords locked up in my secure OS X keychain. Why the people who program the web site think they have to force me to follow their security practices is beyond me.

Luckily, there is a patch for Safari on OS X that gets around this. It runs a perl script which changes the pattern that the underlying WebCore software searches for, rendering the form field attribute useless. I just ran it on OS X 10.5.6 with Safari 3.2.1 and it works great.
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Monday, 20 Apr 2009 01:55
As a Flex developer, unless you have been living under a rock for the last four years you know that LiveCycle Data Services offers Data Synchronization. This is implemented as a server-side product, and allows you to quite easily manage concurrent data access for many clients connected to the same server.

But what if you need more than a single server? Cluster, you might say. Unfortunately, that doesn't really work at any serious scale.

At Highwinds, we build everything to scale to ridiculous levels because we're a CDN and that's how we roll. As a result, we use a lot of eventually consistent systems and design every component to scale horizontally. So, when we took to designing the next generation of the StrikeTracker platform, we wanted data synchronization and conflict resolution but we (a) didn't want to manage it statefully at the server tier and (b) didn't want to pay Adobe a bunch of money for LCDS just yet.

So, we decided to implement client-side data sync. In essence, it boils down to the following elements.

1) Whenever a client wants to change data (i.e. add something new, change something, delete something), it calls the server tier using RPC via RemoteObject.

2) The server completes the call in a transaction against a replicated MySQL instance set up in master-slave configuration with hot failover. When the server call completes, the modification to the object has been persisted and a version number on the object has been incremented.

3) The calling client receives a response saying "yep, the server processed your request - hold for confirmation from the message bus." The object that was just processed by the server is placed in to a "limbo" state by the client.

4) Using AOP, "after" advice is applied to the server-side component to dispatch a message to our message bus indicating what just happened.

5) All clients are connected to one of many BlazeDS servers, which are in turn listening to command-and-control channels on our message bus for messages from all BlazeDS servers. All the BlazeDS servers eventually get the messages dispatched by their peers indicating which changes happened on other clients in the system via the message bus's flood-fill algorithm.

6) As the BlazeDS servers receive the messages from the bus, they push them to their clients. The clients then compare the type of message (new, change, or delete) with a collection of objects of the same type in their local memory, looking for matches based upon unique object IDs.

7) If a match is found, the clients do some comparisons between version numbers to figure out if they have the latest version of the data or not. If they don't have the latest data, they can react to conflicts much like LCDS does today. If the client which caused the original request to be processed receives confirmation from the bus that its message was broadcast to everybody, it takes its local copy out of limbo state indicating to the user that the process has finished executing.

The system works on the principle of every object being uniquely identifiable by ID and class type, and being versioned in an ever-increasing fashion. By using a client-side controller mechanism for requesting data changes and putting the controller in charge of all RPC communication, message bus listening, and data management, we've come up with a very robust model for dealing with data synchronization on the client side.

We can also give the client immediate feedback regarding their pending requests, and know that all clients will see the same data appear near-simultaneously. In the case where we have network latency or issues for clients in different parts of the world, the clients are built smart enough to deal with the latencies. Finally, we can use the approach without having to use JMS, which means one less server component - and if you already have a message bus (like we do) then you'll know how nice it feels not to have to light up yet another one.

We're currently coding the implementation and expect to have it working this week, and after we get it going I expect to discuss it further on my blog. There's certainly a fair bit of code to handle corner cases and concurrency issues, so I'm not sure how proprietary this approach is going to be, but I'm hoping that if we get it working I will be able to get permission to open source it to the community. In light of the fact that LCDS's approach does not make sense for all use cases, this seems like something that a lot of people could put to use.

I'll keep you all posted as we go.
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Tuesday, 14 Apr 2009 22:02
I can't believe it's been a year already. I'm told that the calendar doesn't lie.

And what a year it has been. 2008 was a lot of figuring out how to bend Flex further to my will, lots of bug fixing and feature development for StrikeTracker 1.x, and staffing up my team. 2009 has been a lot of ground-up software development on StrikeTracker 2.x, lots of bending Java/Spring/Hibernate/BlazeDS to my will, and a ton of much harder (and infinitely more enjoyable) work than 2008 had to offer. I wouldn't take any of it back, besides having to lay Mario off, which was the hardest thing I've had to do in my career.

That being said, I have no regrets for joining Highwinds - quite the opposite, in fact. Not only do I love what I'm doing, but I got my life/work balance back and was able to get engaged (wedding's in two weeks!) and almost finish an open source project in my free time.

I am a lucky, lucky bastard. I wake up every day stoked to come to work. After a full day of creating bugs for Russ and Brian to fix and managing the team badly, I often find myself driving home astonished that I can get paid to do something I enjoy so much with people I respect so thoroughly. Ever since I discovered programming in college, I've wanted to work with people who get it in a place with zero politics, zero bullshit, and the pure intent to write line after line of ass-kicking, money-making software. I've been given the opportunity to do so and I count myself undeservedly lucky for it every day.

So, thanks again to Chris and Josh for seeing past my flaws and letting me join the company, and to Brian and Russ for putting up with me and being an awesome team. The first year was great; I hope I can do you guys proud in 2009 and beyond.
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Date: Friday, 10 Apr 2009 13:44
I just posted an entry on the Loom blog about how I now have working AOP proxying in AS3 via Loom. If you are interested in following the development of Loom, I recommend that you subscribe to that blog because that's where all the action will be.

It's really satisfying to get this working. The problem with the AVM spec is that you can't really implement any of it without implementing all of it, so most of the time I have been working on Loom has been with an eye towards something cool happening eventually. Now that it's working, I'm on cleanup street, and then we'll have a public beta within a week or so.

Stay tuned to the Loom project site for the public beta, and the Loom Blog for updates. Also, if you want to get in on the private alpha, hit me up.
Author: "Maxim Porges (noreply@blogger.com)"
Send by mail Print  Save  Delicious 
Next page
» You can also retrieve older items : Read
» © All content and copyrights belong to their respective authors.«
» © FeedShow - Online RSS Feeds Reader