Random nerd silliness

I’ve been struggling with some mobile stylesheets stuff, and I was trying to explain it to C. I ended up digressing into the concept of browser sniffing1, and I noted that it can be a tricky business, partially because of some nasty maneuvering in the last browser wars2.

In particular, I mentioned as an example, Opera can pretend to be whatever it wants. He chuckled, then said: “A little girl with crayons & a semaphore?”

I could hardly stop giggling. It’s totally dumb, but I love the image. He said he was thinking Edward Gorey, but I can totally see CSSquirrel. ๐Ÿ™‚

[1] BTW, it drives me INSANE that I’m being forced back into browser-sniffing vs targeting features.

[2] C & I have been together so long that he remembers me fighting with CSS in Netscape 4 and IE 4.

Olympia Tech Tuesdays

UPDATE: info about Tech Tuesdays is now on its own website, techtuesday.myolympia.org

The last couple of years, I’ve been peripherally involved in some attempts to get together a web developer community in Olympia: went to some meetups before those petered out, offered to help with Refresh Olympia, which didn’t ever really get off the ground.

Well, after C bugging me for a long freaking time, and then a fortuitous conversation this week, I decided to just start something. There’s lots of smarts in this town, but not as much sharing and community as there could be!

It seemed to me that the biggest problem with the previous attempts was that there wasn’t a set date; events just happened “whenever.” And as people get busy or distracted, “whenever” turns into “never.” By contrast, my volunteer gigs with the ENA and the Friends of the Library have set dates, which at least forces everybody to throw something together every month/quarter. Same deal with the writers’ group I used to be in: we met on the same day at the same place every week: builds up the habit. Besides that, you know going in that not everybody is ever going to make every session, so you don’t worry quite so much about setting a time that meets everybody’s schedule.

So: “Tech Tuesday” is nice and alliterative, and open enough of a name to allow for it not necessarily to always be about/for web professionals, but obvious enough of a name that people know WTF you’re talking about. (Vs Refresh [City Name], IMHO.)

As a starting point, I decided to put together a little survey. If you’re in Olympia (or environs), please take it, and pass the word!

iPhone web dev class, wk4

Creative Techs is looking for a studio or freelance designer in Seattle to spiff up their page. (Sounds like what they really need is a UX person.)

I’ve been fiddling around with the homework from 2 weeks ago, plus some of the tidbits I got from the beginning of last week. (can’t remember how first-child works!!!!)

Interactive Scripts… (oh, and apparently this is actually week 3: the first week doesn’t count, I guess.)

More audio weirdness. Today, it’s not losing audio, but adding lovely piano tunes, very much like the music at Nordstrom’s. ๐Ÿ™‚ Whoa, got kicked off. ๐Ÿ™

Not thrilled with this background image/absolute positioning concept for the photo album. And all the animation comes with browser-specific CSS extensions. I’m finding this really baffling, honestly…why not all the animation in JS? wacky effects on loading the page. I can really see why you’d want to use a library!

touch events are analogous to the usual JS events. (srsly, could they have gotten a finger with nicer nails?!) so build a listener same as if it were onClick, etc. but the touch events are specific to the iPhone. (is it patented?)

whew, that’s too much JS to type along, unfortunately. but she’s got some good interactivity built into the exercise. I wonder if using those super-abbreviated variables is making people more confused. it’s odd, she’s assuming a lot more JS expertise than CSS expertise out of the box. unless there’s stuff I missed last week, which is possible.

and then even MORE JS…I guess this would be the reason to buy the package.

I’m *still* confused why you’d want to use webkit animation extensions vs JS animation. I guess the simplicity of notation in CSS is a big plus. (and I actually asked the question. let’s see if gets answered) someone asked about diagonal, and yes you can do that, which is kinda cool. lots of questions and speculations about the “unicorn” (can’t remember who I saw call it that on twitter: fakebaldur?) iTablet. there’s something about this that feels very much like “old school” pre-standards advocacy coding. very fragile.

got distracted looking up jQTouch…I guess I’m kinda antsy to actually DO something now.

chopin scherzo #2 in b(flat?) minor?

iUI — to keep the chrome away, keep all the content in one file.

I jumped away from the class to start playing with an idea. also, I’m hungry. really wish this class didn’t overlap with lunchtime.

Ok, too hungry to pay attention, plus I got distracted tracking down Drupal-related ideas. Going to come back and play with this stuff after lunch.

iPhone web dev class, wk3

Jumped in 10 mins late…watching at the library on my laptop because I have FOL board at noon. But hey, I got in right at the start.

Oh shoot, I didn’t do the homework. ๐Ÿ™ Also, this computer doesn’t have an iPhone simulator installed. Yay for not being prepared? Some pretty examples.

Today I don’t think I’m going to be playing along, unfortunately, between what’s installed on the macbook and the limited screen space. BUT, this has been a pretty good class, am thinking about getting either the downloads/video or her book.

Missed a chunk dealing with something in email. Going over basics of creative techs app page.

What, no alt attributes?

Logo is png – transparent with alpha (?), can’t remember the name of that thing that works in everything but IE. ๐Ÿ™‚

Starting to muse about how to put together an actual mobile (smartphone) site for work.

Contact page and main page are different files.

Don’t forget about conflict between borders and rounded corners. Need to find a chevron image like that.

Basically, similar style for each page that has lists, although this video page has visual icons, included as actual file. I wonder if you could make it a background image on either the li or the a? (The A has the chevron as a background, so probably the LI, then alter the padding on the A to fit? Would need to fiddle with it myself.)

Form page — no action on the form? And no button? Interesting looking picker for select element, I wonder what happens on Android, Blackberry, Win Mobile? Ah, someone asked that very same thing! Wish C were handy so I could test. “Pop-up select menu” sez audience member (or was that staff?). Ok, she’s going over basics of the html for the select. Interesting that select/option text is teeny…is that an issue with the native browser or is it not covered by the existing CSS?

iphone interface guidelines as a starting point. are those on Apple site? apparently so. yep: huge long URL, will be on CT website.

Q: much that’s iphone specific so far? not really. (getting some hiccups in the video.)

Q: incorporate stuff from RSS feeds?

question about whether to use div — I would think that you could use h1 or h2 in a couple of these cases for semantic goodness. but she definitely has a reasonable argument.

video skipping out again!

looking at html again — a class=”list” ? ๐Ÿ™ could you get away with ul#rounded li a?

iphone fonts? daring fireball has a list, apparently.

some srs “not getting the point”? the server-side doesn’t matter to the display.

arg gnarg. probably going to miss all the interesting bits. ๐Ÿ™ darn friends of the library board meeting!

href=”tel:1-123-456-1234″ does the phone call thing. will it also work android et al? pretty cool. apparently should work in other apps. yay! (is w3c?)

ok, gotta close up and move.

launching email is the basic mailto, while just a regular maps.google.com link opens the maps app in iphone?

(honestly, a little sad to have missed the 2nd half of the class for the FOL board meeting.)

iPhone web dev class, wk2

(BTW, here’s the course info. Free! Also, intro session notes.)

iPhone Biz Card

(as before, 1st 10 mins are housekeeping. I’m playing with phonegap emulator.)

1st poll question makes no sense. 2nd poll question needs a fourth answer “don’t have a mac” also, these graphs suck.

sizing pages for iphone

her author page on o’reilly — doesn’t look that bad, actually, but small text in particular.

following along with sample. phonegap doesn’t make it look so dang small. I wonder if it’s setting the viewport. yep, adding meta name=”viewport” doesn’t actually change anything. (doesn’t work unless designed to scale, btw.) and initial-scale doesn’t do anything in phonegap either.

digression into html 4.x vs xhtml vs html5. officially annoying.

she said that desktop safari ignores viewport, which I’m assuming explains why it’s not working in phonegap.

getting antsy to get past Q&A session.

does -webkit-gradient not work in phonegap either? curiously, it works in Chrome, so I’m just going to resize a chrome window ATM. (actually, opened Win Safari instead.)

grar. digression into box model!

so what DO you do if you need the same page to be seen in IE?

is there a way to create a site that works well on netbooks?

webkit-gradient works in both bg-image or bg-color.

non media-query browsers pick last link?

I don’t think she’s explaining viewport vs media query very well – guy is doing that nicely, tho.

“at some point mobile browsers will all standardize” I doubt that the sizes will standardize, but I’m guessing there will be some typical ranges.

navigator.userAgent

mmmm, browser sniffing. (sigh) can use to load different Drupal themes? (is there a module/theme for that?) “become much more standardized” — has it? I guess for broad matching it works.

went into the example before I had a chance to finish typing!

well, hey: had forgotten about develop menu for pretending to be iPhone. (iTouch says it’s iPhone, apparently…also iPod.) so what would be a grouping for high-end mobile?

or maybe not (re iPod touch as iPhone).

this has ugly maintenance connotations.

more fiddling with display styles. nothing new/special to see here, at least not for me.

somebody’s getting fussy about which tags she should be using: div vs p & addr. she took that really well, actually.

use a reset stylesheet on mobile? she hasn’t, but could, and sounds like maybe not a bad idea.

Lists – good for “drill-down” items.

This example might be more than I can type along with. Also getting kinda tired, and cube neighbor is on phone conversation.

support for text-overflow in CSS? (pretty clever IMHO)

supports :visited but not :hover — alternatively something with touch (:active?)

looks like that link example would do really well with a dl, as in: I think that’s actually what they’re designed for.

webkit-border-top-right-radius etc.

“always, thank you the internet”

apparently are “goodies” segments post the official end time. (and yes, the intro needs to be SHORTER.)

accessibility – voiceover only on 3GS. so, wait, you have to know where you’re tapping in order to hear stuff.

other browsers — screenshots of Android default, dolphin & opera mini. (guh that last looks pretty crappy IMHO.)

simulators: marketcircle.com/iphoney, phonegap (air app), testiphone. huge list of other simulators for other devices.

pretty sweet screenshot of MIT mobile website.

homework: create own biz card for the iPhone. think about: user motivation, intended experience, goal/focus, how displaying what people care about? twitter the url with the hashtag. (#ipwa)

iPhone class – 1st session

I’m taking this “build iphone apps w/HTML, CSS & JS” class online. I find I pay more attention if I’m writing down notes. these may or may not make any sense to anyone else.

First 15 minutes or so has been housekeeping, how all the bits & pieces work.

iPhone simulator. is jQTouch a jQuery spinoff?

first week is building a “business card app” that turns an info page into something nice-looking for iPhone.

simulator – developer.apple.com/iphone – get apple id to get dev center stuff.

downloads only for leopard & snow leopard. (we have tiger still?)

is the simulator only for mac? she’s showing it via mac. got distracted in chat. yes, simulator only for OSX leopard or higher. I’m surprised they’re not prepared with more options for those of us w/out. in the chat someone notes that using Safari or Chrome gets pretty decent results. also iPhoney?

does it work for blackberry or android? android should look much the same as iphone. nice. phonegap simulator, adobe air. phonegap itself is a development environment.

2nd week will do actions, web app: call, email, video, and gmap. how to get to the home screen, also how to get rid of safari chrome. sample has shiny red button, then stuff you can do in re: creative tech.

Q: inside the web app, can you tell that it’s a web app? all-in-one app can’t tell hardly at all, but when you link to new page, chrome etc comes back.

more questions that are obvs, basic answer is: it’s a web page running in a browser. if you can do it with a web page, you can do it in an iPhone web app.

will cover what phone functions can be accessed w/web apps.

week 3 – more JS! animating, detect touches (like keypress), implement gestures. iUI library (am I remembering correctly that there’s a Drupal module for it?) — then do it again w/jQTouch. yes, is jQuery, apparently more powerful. and hey, debugging! very different look from iUI to jQTouch.

any way to make web app use existing window if safari browser is open? sounds like not.

week 4 – native app. this may be where I’m SOL.

audio died in gotowebinar…apparently they’re pausing the whole class. :\

ok, now back. native app writing is all tightly tied into mac platform. (surprise surprise) “kinda painful” to get your app onto your phone. (not covering store) not super-excited about this session, but will watch at least some, I think. (this makes me hope and wish that android takes over, honestly.) interesting: all of the items on the app, except blog, are owned services. (flickr, twitter, youtube)

[got interrupted by phone call]

can’t import biz card web app into address book.

flash iphone packager? CS5 will come with feature to convert flash apps into native apps. but still not actually putting flash on the iphone.

poll whether people are more interested in web or native apps. (web, I think, at least for the time being.) most people want both, 20% just web, 6% just native.

stuff: metal stencil to design iphone apps uistencils.com; plastic version from kapsoft/mobile sketchbook. notebooks pre-printed, vol5.com. graffletopia (stencils) for omnigraffle. photoshop stencils 320480.com. keep the web weird. tons of sources for button icons “iphone icon” search.

looking at some other things. was brought back by her saying “bus schedule.” if only. intercity transit doesn’t even offer schedules as web pages. (gddmn pdfs)

Q: graceful degradation for non-iphone users? conditional css with media attribute; or (OMG!) javascript browser/device sniffing. ::sigh::

can use cookies to store sessions. mentions html5 offline storage. (?!)

can buy files, etc. from o’reilly. not sure yet if I will. will be offering a 10-week class on building native apps? wow. you srsly have to pay $99 to distribute native apps? ew. “hard to teach a class when there’s an NDA on the material for the class.” it took her TWO HOURS to submit her first app.

but I’m pretty excited about getting into the web app stuff, seems like it would be handy for multiple devices.

that phonegap simulator looks handy.

logging off…now. ๐Ÿ™‚

best of the year

There’s been a lot of stress and frustration over this last year, but in an effort to be positive & optimistic, here’s a few of the highlights of my 2009, the things that make me smile almost instantly when I think about them:

Creamsicle the cat…he actually came into our lives in the summer of 2008, as a crazy stray tom with matted dreadlocks of orange and white fur. But after keeping him safe through the snowpocalypse, he began to be part of the posse.

In March, we officially adopted him via a trip to the animal shelter — he was so ill-mannered in the cages that he was set to be killed — while he had a wound in his head from fighting, so bad that it had to have a tube put in it. We weren’t sure if it was going to work out, what with the fighting (not with ours, oddly enough), running away, spraying, etc., but wow! Neutering worked wonders. ๐Ÿ™‚

His bad behavior gradually ended over the course of a few weeks, and with lots of love and attention he’s become a lovely friendly kitty, crazy about laps and treats. He’s the only cat I’ve ever had who sits on my lap in a way that allows me to keep typing, which I love. He still has a tendency to be “talkative” at night, but often if you just yell “hey” back at him that’s good enough to calm him down.

The Xtracycle, about which I have written several times: my awesome, awesome new bike this summer, the load-hauling machine. ร‚ย Rides to the river, massive grocery trips, and plenty of commuting.

Working with Drupal — I converted my employer’s site this year, and so spent a lot of time playing with it, learning, and getting to know the delightful Drupal community. Even went to two (free!) events in Seattle this year, both of which were immensely helpful, even if the second one was cut short by C’s brush with the flu. I’m getting that feeling of mastery that’s so joyful (and a little addictive) — I feel like I could do wondrous things with Drupal.

And finallyร‚ย NaNoWriMo, which gave me back confidence in my creativity. As I’ve mentioned before, I’ve made a couple of unsuccessful attempts. I’ve also been stalled out on my writing for several years, stuck unable to finish the novel I’ve been puttering at since…um… 1994? NaNoWriMo gave me a chance to jump into something entirely new, and to commit to finishing it. I even tried some entirely new (to me) techniques, and discovered to my surprise that a little bit of planning ahead worked really, really well. (Snowflake method FTW!) Plus I found the fabulous Scrivener. I finished above the goal and before the deadline.

If you’re wondering, I’ve decided to continue with it, after some wonderful feedback from Paula, and after rereading it myself. I still like this story and its characters. I’ve already done some early editing, mostly continuity stuff. (There’s only one character whose name didn’t stay consistent, and he’s a pretty minor one at that!) I’m planning on getting through a complete second draft early in the new year. What happens after that I’ve no idea.

Which is how I feel about 2010 in general: I’ve no idea what happens now, really.

The Survey for People Who Make Websites

A List Apart is running their 3rd annual survey…if you’re a website creator, go take it. (Dylan & I have played with the data in the past to muse on theories we have about web generalists, so I’ll be interested to see the progression of data over time.)

I took the 2009 survey and so should you!

PNW Drupal Summit, final thoughts

What didn’t show up in my notes, but was in my Twitter feed, is that C’s cold was, in fact, almost certainly the flu. Saturday he got a fever that left him delirious, but thankfully broke that night. Sunday he was doing better, but I still left a couple of hours early, since I had a long bus ride home. Honestly, I’m glad I got home at 7pm instead of 9pm. I’d be (even more of) a complete mess today getting home that late. I’m feeling torn about having been gone while he was sick. It would’ve been good to be around in case something really awful had happened, but I’m not sure how helpful I would’ve actually been, since mostly he just needed sleep and fluids. Plus the Drupal Summit was incredibly interesting and useful.

One thing I tried out that wasn’t actually covered in the sessions – MAMP. I kept seeing presenters using local installations for demonstrations, and so I finally looked up the MAMP project. And it rocks! Sunday morning I set up Managing News on the laptop, and on the bus ride home I fiddled around with some ideas for an ENA project. (I think I need to switch from CiviCRM 2.x to 3.x.) Super-easy.

Drupal 7 is looking quite interesting, lots of smart ideas coming out with the new release. Maybe I’m being overly optimistic, but it even looks like more modules will be ready than were available at the beginning of D6. I spent a long time waiting for modules to come out before we could do Drupal for work.

I think I have a bunch of work to do reworking some panels implementations, but I’m okay with that. I’m also looking at exploring some new-to-me modules (features, context, deploy, admin, flickr, drush) and getting better acquainted with CTools.

The venue was quite nice, even if the wifi was totally busted. Food was good, although I wish there’d been hot water for tea; omnomnom donuts! The name tags were especially clever, with a space for “also known as”, which turns out quite useful in a community where lots of people have better known usernames than real names.

Of course, the people were fantastic — all the great volunteers setting up and getting things moving! Plus I met some fun interesting people. (Ashley & Syne were great to hang out with over by the power outlets.) Really, Drupal people are fabulous: friendly, curious, and helpful. I just wish Seattle wasn’t so damn far away. Somebody suggested that I organize a Drupal user’s group or a DrupalCamp in Olympia…oh, if only I had time and energy!

PNW Drupal Summit, Day 2

Theming, with John Albin Wilkins (johnalbin) from Taiwan

[still no wifi! altho at some point in here I figured out how to connect via a router from the lovely CivicActions folks.]

fun chitchat in the fiber-scifi-geek gal corner. ๐Ÿ™‚

D6 core themes: 75% themes that suck; 25% Garland – gave people a bad 1st impression
D7: Garland, Stark, Seven

Stark: nothing in it. .info, layout.css, no .tpl.php! still not done with redoing HTML markup in core. Stark allows you to see basic markup.

Seven: Mark Boulton’s admin theme, usability testing showed people when editing because they couldn’t sense the difference between content mode & editing mode. Is default for admin.

Missing piece in the pie chart…might still get some more themes into core. (paint? zen? – my musings, not what he said.)

Showing a default brand new D7 site. “Appearance” link. He added a “pacific” theme for this presentation.

Don’t have to go to separate page to set admin theme!!!!!

Primary & secondary menus renamed: main & secondary.

Looking at page.tpl.php – $main_menu & $secondary_menu – a bunch of variable renaming to make things easier to grasp. sidebar_first and sidebar_second – renamed from “left” and “right” because of RTL language issues. (and I can see where you might do a site with two sidebars both on a single “side”) shows amnesty international site, switches between English & Arabic (also french & spanish), flips the entire design. (a little dance while we’re waiting!) which makes “sidebar_right” a WTF for RTL language developers! first and second is more natural.

template.php – can’t shoot yrself in the foot. “phptemplate”? (missed a bit while switching my phone 2 vibrate)

switches to pacific theme – something about classes – a bit confused about what this change means. is using devel & template function to spit out all page info. classes_array. makes it easier to add stuff to body classes. screwiness with what’s actually showing up in the array. “what happens when you do a live presentation” shows classes being set for the particular block, again, in an array. classes_array[0] = ‘block’ etc. preprocess function, also now process functions, get run after preprocess functions. can turn array created in preprocess into string that can be printed in tpl file. “let me go clear the cache” all caches vs just theme registry? “let’s pretend that worked” o.O?

hated $submitted in D6 – string that had user’s name and date, smushed stuff inside one variable. node.tpl – $name variable, $date variable. Oh, I think I get that now. Also fixed in comments.tpl.

$contextual links – yes, it is like in the Zen D6 block editing thing – but in D7 is extended to lots of things. Can go directly to the admin for menus, for example. (yay!) (how would that look on a dropdown/suckerfish menu? create style specifically for contextual link?)

more page.tpl – mission statement completely removed both from site info and as a variable. same thing with search box variable. D6 theme had search template & checkbox in settings, but wd be greyed out if you didn’t have search enabled, instead show automatically based on template files. (help text is a block too!) I’m a hair confused, but I think that might make more sense once I get to play with it. (one of these days.) All themes need a help region.

$message (footer?) variable that was hard-coded, now custom block. (which I was doing already, I think.)
main page content. content is a region, main page content is a block. could put recent comments in the content region above the main page content, for example. (menu_block module?)

jquery ui (yay!) now included.

granular theming…render($page[‘content’]) in page.tpl instead of printing content region. means that — ah, missed it! arrays that we can modify, may take a while to figure out how to do it.

top & bottom of html no longer in page.tpl – now have html.tpl – easier to generate styles and scripts. (o look: RDFa in doctype.)

issue for allowing themes to alter page? a bit confused. may or may not happen. for little tweaks to forms. I sorta kinda understand, altho not entirely.

JS in D7

interfering with other libraries

wrap everything in:
(function($) {
…yr code…
})(jQuery);
otherwise get JS alert. NEED TO REMEMBER THIS.

drupal_add_js (actually, I’ve never used that, I don’t think) – changed a lot in D7, more parameters. also add external.

want latest jQuery, but isn’t in core! use hook_js_alter to swap out for latest.

rendering arrays, pass in attached property, this output needs this JS. so, ok, homepage has its own little thing w/slides, use attach to add just to that thing? not sure.

no standard way of adding jQuery plugins, etc. now can define a library – hook_library, so system_library includes $libraries[‘vertical-tabs’] – then need to call to actually use. can pass settings and dependencies as well. then use drupal_add_library in template functions.

AHAH forms – example? quicktabs module admin form, adding a new element to the form. holy moley, that’s a lot of code to put in the new form element, and first big chunk of code goes into ANY similar item. new code: 3 lines.

now a framework for ajax in D7. showing ajax.inc, all the form processing that was in form.inc and it just does work for you! series of php functions, sends JSON — handwave-y stuff.

examples module in D7, to show how to use new stuff. ๐Ÿ™‚

was looking at documentation – noticed mention of using class & link, attach behavior. neat! but doesn’t actually work in core as-is. ๐Ÿ™ shows her hacking. I think she just said that the link will go to a real thing if JS not avail. she added her own render_link function. has been submitted to/as RTBC?

stuff going kinda over my head. ๐Ÿ™‚ JS and my brain are not exactly friends, adding in Drupal coding…yeah. I think eventually this will make things vastly easier, but not quite yet.

she actually asked if eyes are glazing over. in my case, yes, but not everybody.

yep, jQuery UI in core. only loads when needed. super-easy to get accordion. yay! now I can do super neato stuff with annual reports!

misc code changes, both in behaviors and in naming. and a function to make sure a behavior only gets attached once.

just seems like lots easier stuff.

materials will be online, but caveat that she’s using a patched version of core in re: that one function mentioned earlier. will include link to issues related.

Q: will this enable drag & drop, infinite scrolling stuff like other sites? a lot of that in jQuery UI. Q:ร‚ย will there be standard way to include/manage libraries? if 2 modules define same plugin, if they use the same version, will only get added once. ๐Ÿ™‚ huge amount of discussion about that. Q:ร‚ย anything going to be rolled back into D6? some stuff has workarounds in D6.

Panels 3 (yes, this is the version I’m using)

would rather be sailing? srsly?

super-excited to be talking abt panels. panels.anguspratt.com

might be skipping some stuff he doesn’t quite yet grok. heh.

how much collision: always lots of ways of doing [x] in drupal. no kidding.

terminology. audience: “pane is a great name…they just spelled it wrong.”

logged in vs not logged in page. basically like Star City site.

audience advice to show the UI. yep.

can u have pane inside page w/out panel? no.

[warm in here. can haz AC?]

contexts w/features — also works w/panels? or is it using the same word for different modules.ร‚ย can’t quite grasp how context is different from relationship. info about how data elements are connected.

ashley asking for more info…context only knows about UI? another audience talking abt panels 2, use case: news section for nonprofit site, each article had taxonomy, full page view, block with “other new jersey news” not easy to do. panels & context, grab the taxonomy from the main node, then make available in another pane in that panel and use as a filter.

NO, this is NOT the same as the module context! panes know about other panes. many contexts at once in panels. (great audience input on this session!) you can write a module that creates its own context.

panel node: [what was I going to write here, anyway? probly something about exposing panels to search.]

creating context automatically = a relationship? am very very very confused. Jen just explained, and I was unfortunately looking at something else. context can take info from URL and pass in, if you need to define explicity connection between info in the panel, that becomes a relationship. (I’m wondering if there’s some significant changes in terms from P2 to P3.)

some settings warnings.

selector rules, including custom PHP. o rly? put most specific first, general later, if nothing matches, have default. different stuff at the same URL.

don’t use flexible — bogs down. good for wireframing. hrm. check out the template files, can define custom layout in custom module? panels3 has way more terminology for layouts. what’s the benefit of having made it so much more complicated? making regions more general to get away from table-concept layout. “because it was written by a developer” heh.

hm, use “variants” for panels? instead of how I actually did it. should make the layout much easier, plus remembering what should and should not be visible.

oh, can turn off Drupal blocks with a checkbox. wow, making me feel dumb.

the layout designer. lots of discussion about how stuff works.

panels or blocks? a dashboard in a panel, rest of the site uses blocks. performance hit issues? block visibility setting in theme setting? can be done, can be PITA.

“thank you for this interactive presentation” [that’s one of my favorite things about this session, lots of audience expertise/experience.]

“just the code that was importing the variants was completely wrong”

caching…which would be good for some of those relatively static bits. override settings in the node itself, etc. don’t forget that you set something in panels!

blocks show up in miscellaneous.

whew, there’s a lot going on with this!

Staging & Deployment – Greg D (heyrocker)

deployment is well understood in traditional software (website?) deployment

Drupal puts lots in the DB that you might not normally put there. Contemplate module (evil! but I like it. ๐Ÿ™ ) and PHP in blocks or content (do that a lot too) – and stuff moves both ways. testing data over here – comments over there. can’t push anything either direction! “to launch a huge bunch of changes…and you’re screwed.” I remember him first talking about this at a Seattle Times related event. not a lot of tools. ๐Ÿ™ I think it’s not just “large development shops” but people who don’t fly by the seat of their pants. Normally I wouldn’t care about just doing stuff to a site, but doesn’t work w/work site.

content and configuration have very different issues. “going to assume that everybody’s pretty nerdy” node ids not matching (primary keys), pieces of data that didn’t have any APIs. no “role_load” etc. Config has no standards for how to set from module to another or for exportability. Plus all that other stuff. Exporting blocks from dev to live. (Yep. I’ve been just recreating stuff from scratch each time, like recent addition of [????! oh, yeah,ร‚ย https://www.twinstarcu.com/repo/home – created just last week IIRC]

nice simpsons quote – cause of and solution to all life’s problems

hook_form_alter – in a module, inject terms of service into registration form, for example. oh, that’s what that’s about. 80% that drupal works is because of hook_form_alter. but…makes exporting INSANE. when node goes out, no way to make sure the module stuff comes with the node or form.

nice graphic of picard & riker.

options that suck: develop on production (this is what I meant by “seat of pants”); repeat by hand (hey, that’s what I’ve done!).

move db stuff into code. okaaaaaay. (what does that mean, exactly?)

find import/export mechanism, write update hook.

devel macro module – d5. records things that you do, saves into a file, puts into an update hook, run execute. (ok, lost something there) but doesn’t quite work in D6.

views/panels/cck export & import mechanisms.

patterns?

programmatic cck, managing views in code, a lullabot article.

if I make 15 views, have to remember to export, and make sure client doesn’t change anything. gah.
“this thing kinda makes me sick” – reserved key ids, auto-inc ids on dev at 1, on live at 1001, module to move over, and supposedly get clear set of IDs. “this is bad” and yet I find it weird & fascinating. odd and even IDs?! wtf.

database scripts module automates that process, worth looking at, keep DB dumps in version control. huh. I’ve never used version control for anything, and probably should try it. :\ not always db-portable, not community-oriented solutions.

5 species develop at the same time. (2nd time I’ve heard that analogy.)

Exportables – concept more than thing. part of CTools. talk abt bringing into core for D8. you have to write yr own import stuff. kind of a hook thing for modules, etc. “in 3 years we may have something that really works well”

Features – development seed thing. refers to Robin’s talk. ack. that kinda sorta went over my head. built on the exportables concept. curious. context and “spaces” — that last new to me.

Deploy – that he wrote. For pushing content around – foreign affairs magazine, write content on editorial server and push to live server: unwilling to accept usual drupal way. group pieces to go live together. I like that. (for promos!!!!) Services module – core API. “deployment plan” way to group together stuff to the live site. modules then integrate. Uses services to receive & manage deployed data. Implements UUIDs to alleviate primary key issues. if you add a node & choose to deploy, will also pull along nodes referenced, taxonomies, etc. Oh, like Dreamweaver FTP publish dependencies. (which I always turn off in DW, but might be useful here.)

example: content about drupal books. deploy has stuff, live is blank. “add to deployment plan” XMLRPC? works for anything in drupal that uses [setting forms?]. doesn’t work with blocks? for content type, uses cck copy, can’t push updates to existing fields. OMG. that would’ve made that foreclosed homes page EVEN EASIER to set up. pushing live. needs to be logged in with a user on the remote server that has sufficient permissions, ATM need to enter pwd every time, which is honestly ok by me. 6 things in plan, but pushing 32 items, and in an order where nothing breaks. doesn’t push permissions or roles, but does push users. “nothing up my sleeves” duuuuude.

and can deploy nodes immediately after editing on dev. some sort of counting error, tho.

image: services module has files service, works with all binary types, and works with drupal security.

directionally agnostic – q of whether can push back to dev. yep. actually got automated pulling content back into dev for foreign relations, altho couldn’t release as part of contrib module.

no rollback, that’s where to go from there.

if not using pathauto, there will be issues.

Issues: revisioning, rollback, mysqldump before pushing. can’t do unattended deployments. gaps: upload.module, translations, block, permissions.

no magic bullets – investigate, ask questions, know yr needs, PLAN. sounds a lot like my work doing import/export on the initial setup. missed what group is talking abt that stuff. [change mgmt group] lot of activity around this area, likely to be a focus for D8. bring up use cases, do testing.

how does update.php factor in? not w/Deploy, doesn’t use it at all, not pushing changes to code. update.php is mostly for code.

I’m really glad I stuck around for this one, actually. I’ve got some (admittedly vague) idea of how to handle future updates, especially in adding new features. might try it out for top-secret project I want to pull together this week.