You can check out the session code here: on GitHub.

The presentation will be in the community area today at 11am. Come check it out! The slides are attached in case you want to follow along.

Oct 5

I just confirmed that I'll be speaking at 360Max on October 5th, 2011 at 10am. This is a conference within a conference (Adobe Max). My presentation will be on Native Process in Adobe Air. I gave a similar talk a few months ago at the Capital Area Flex Users-group. This will be my first Adobe Max so I'm pretty excited. Schedule/Info here: http://www.360flex.com/about/360max/.

Aug 18

Here's a link to my presentation, http://goo.gl/WTlj9. Source code will be posted here shortly. Or you can search to see some outdated code from DrupalCon SF and DesignCamp Boston.

Jul 22

Well somehow I got pretty booked up in July and August. Here's the schedule:


Rich Internet Applications Conference - Washington DC

CapitalCamp is sold out and RIACon is selling out fast! DC Flex Usersgroup is always free!

Jun 22

I'm loving the new Flash Builder and 4.5 SDK. I don't know if everyone came to the same realization that I did... but "states" are awesome now with the 4+ SDK! You can change ANY property on the fly. Take for example a two stage button:

<s:Button icon.viewing="{Icons.PENCIL}" 
	      icon.editing="{Icons.DRIVE}"
	      label.viewing="Edit"
	      label.editing="Save"
	      click.viewing="{currentState='editing'}" 
	      click.editing="{currentState='viewing'}"
	      />

One button, two actions, two states. Note: the Icons class is just a static class with some icons embedded in it. Makes for quickly iconing stuff. Now I'm not saying you CAN or SHOULD do your buttons this way... you might simply make two buttons:

<s:Button icon="{Icons.DRIVE}"
	      label="Save" 
	      click="{currentState='viewing'}"
          includeIn="editing"
	    />
<s:Button icon="{Icons.PENCIL}" 
	      label="Edit"
	      click="{currentState='editing'}" 
          includeIn="viewing"
	    />

In theory, the former should take less memory but I haven't actually gone to look at what the states management is doing behind the scenes.

Of course, all the previous code assumes you've got the states defined:

<s:states>
   <s:State name="viewing"/>
   <s:State name="editing"/>
</s:states>
May 4

I've been having fun playing around with AIR's NativeProcess class. This app I'm writing in my very sparse free-time is an application to help you manage a Drupal website. Features are limited at the moment. The code/info is here: http://code.google.com/p/drushpal/

DrushPal screenshot

And a quick screencast is coming shortly.

Apr 29

I pay quite a bit to have fast internet, and for the most part, I'm pretty satisfied. Over the last few years, however, I've found that on a rare occasion FIOS inexplicably has problems loading pages. When I try a "SpeedTest" I still see speeds north of 35mpbs! So why can't I load a YouTube video? The answer is simple, because FIOS and many other ISPs by default assign you to terrible DNS servers. They're terrible for two reasons: 1) if you incorrectly type a URL, you get an search result/advertisement and 2) they're often slow and cause pages to not load at all.

There are two ways to fix it, but I'll give you the easiest way first:

  1. Find your network connections in "Control Panel" on Windows, "Network" in system Preferences for Mac OSX.
  2. Go to OpenDNS.com, scroll to the bottom of the page
  3. Select the option to choose DNS manually and enter the IP addresses from the OpenDNS page. Here are some instructions on Mac and and on PC (this is pretty similar in Windows 7 and XP)

The other way is by setting the DNS on your router. The advantage here is that you don't have to do it for every computer on your network.

Explanation of DNS

A DNS service is the way that your computer can turn a website domain into a number called an "IP Address". If your computer can not figure out the number for every website you visit, the site won't load! When you go to a website, the DNS server first looks up the number, and then sends you to the website all behind the scenes. ISP's DNS services are terrible. They focus more on serving you ads for typos than providing decent service. The reason that some websites work, and others don't is because your computer stores its most frequent lookups in a database called a "cache." If your cache were empty and your DNS was not working, then nothing would work at all.

Benefits of using alternative DNS

  • Faster load times
  • Increased security (many providers such as OpenDNS provider protection by blocking harmful websites
  • More reliability (depending on which DNS provider you use, I've had perfect uptime with OpenDNS)
Mar 2

People are never satisfied with WYSIWYG plugins. One of the biggest frustrations, especially when working with an Administration theme, is that what appears in the editor is NOT the same as what appears on the website. And the "preview" button does no good either. For instance, if you've got custom spacing, list styles, or specific classes for typography, you're not going to see them in your WYSIWYG editor, and therefore, what you see is not what you get.

So how do we fix it? These instructions assume you've got WYSIWYG API setup as well as at least one editor enabled. For our example, I'll be using TinyMCE.

  1. Create an editor.css in your theme wherever your other CSS files are
  2. Edit the "editor.css" file and add @imports to your normally included CSS styles. You don't need to include print.css but you would need to include any resets, typography, or color files you normally include. See here for a good example of how to import other CSS files. Now your editor.css will have all your normal website styles!
  3. Where does this content go in your layout? My content ends up in a div with the ID "content". Where does TinyMCE content go? Right in the body! In the case of TinyMCE, the id tinymce is added to the body. You need to add the SAME styles to #tinymce as you had in #content. Do this in editor.css after the imports. Example:
    /* Example editor.css */
    @import url("reset.css");
    @import url("typography.css");
    @import url("style.css");
    
    /* overrides to make tinymce match #content */
    #tinymce {background:#fff; padding:10px;}
    
  4. No go to site configuration->WYSIWYG and edit your profile. Under the "CSS" area, select "Define CSS" and put "%bsites/all/themes/YOURTHEME/css/editor.css" for the css path. (tested only for TinyMCE)
  5. Notice that you can also define some custom classes which users can use, these classes must be defined in your theme's CSS, not in the editor.css. If you're import was done correctly, it'll get picked up by editor.css anyway.

If all went well, your editor's input area should be styled just like how it's output. Now what you see is really what you get!

Oct 29

It's been a few months since I blogged. I've been busy. In addition to working on a few new websites, I've also been writing a new app.

In the next few weeks, I should have some alphas up for testing on Drupal.org. It's not a module... it's a desktop application that brings the power of Drush to the Window's, Mac, or Linux environments with a graphical user interface.

The challenge has been Windows, so that's what I tackled first. And that means that the first releases will actually be Windows only, but support for Linux and Mac will be trivial. So what are the features?

  • Easy to install, just run the setup file
  • Easy to configure, just type in your remote connection's settings
  • Supports and saves multiple connections, no need for tricky "Drush Alias" files
  • Local Drush installation is NOT required
  • Works with Drush 3.3 and any version of Drupal
  • Run Cron, re-index your search, check status, download/enable modules, update your site, export your database, run bootstrapped PHP scripts, and more coming soon!
  • 100% open source based on Flex 4.1 SDK

I apologize for all the bolding in this post, I'm just excited. Screen shots should be up within a few days. Once this thing is on Drupal.org, I hope I can get some contributors to add features.

Oct 26

In general, I don't really care if a website passes validation so long as it looks okay and performs well. While teaching an XHTML class a few months ago, I was randomly typing things into the W3C validator and discovered that BBC validates perfectly on XHTML 1.0 Strict. For a site that large, that's very impressive! I decided to do a comparison of similar sites.

Website Type Errors Warnings
bbc.co.uk XHTML 1.0 Strict 0 0
washingtonpost.com XHTML 1.0 Transitional 599 265
foxnews.com XHTML 1.0 Transitional 138 5
cnn.com HTML 4.01 Transitional 76 25
msnbc.msn.com HTML 4.01 Transitional 274 31
reddit.com XHTML 1.0 Transitional 5 147
digg.com XHTML 1.0 Transitional 191 293
Jul 26
Syndicate content

Social


profile for Jonathan Rowny at Stack Overflow, Q&A for professional and enthusiast programmers