WordPress, I will own you. One day not far from now, I will bend your CSS, PHP, and plugins to my will. Until then, I will tweak, use classes and ids, and read the codex as needed.
If it feels like a hack, and looks like a hack, it probably is. I'm still trying to figure out when not being a hack outweighs getting stuff to work. At this point, I am working on custom styles for one form on the site. Create a short contact form that emails the input to two email addresses. Custom styling and text necessary. Sounds easy enough. I've created forms that wrote data to files and databases - this should be an a breeze. And the custom styling will add a nice creative touch, right?
If at first...
The first problem I run into is that the page the form is destined for shares a template with multiple other pages. Therefore, I cannot go in and just add/change ids and classes willy nilly to the html. Oh, no. Plus, the contact form is created in something called "short code" in the Word Press editor, so some sneaky stuff is presumably going on behind the scenes. Why did I bother learning "real" code when I could have just used "short code" the whole time? Yes, that was sarcasm.
I did figure out how to change the "short code" so that it sends to multiple email addresses, so that was a big win there. However, without disabling the CSS for ALL forms on the site, I was still stuck about how to change the CSS on just this one form. Soooo, I used "inspect element" and went rogue.
Going Rogue
So, I go to the form (default styling) and inspect the element, finding that the form for the page has a unique id that is always the same, even when I delete and re-add the form. Interesting. So one possibility is to override all the Jetpack form CSS with custom CSS related to #contact-form-7234. However, that feels weird, jenky, and hack-y to me. Why should this tiny form load fifty million redundant styles?
Next up, let's bypass the plugin and make our own gosh darn form. That would be impressive and fun. The only issue with adding my own form "by hand" (as opposed to using the plugin's custom contact form) is that it may no longer be filtered through "askimet" in which case we might open ourselves up to all sorts of naughty spam (no pun intended). Not to mention that I would have to create a whole new template. Better safe than sorry, so we should stick with the "short code" provided by the plugin. However, this means that all classes and ids (and associated CSS) will remain unaltered, which brings us back to square one. This is starting to feel like a lot of work for one teeny tiny four-field form.
Saved By The Troll
So, back to using Jetpack's form and simply changing the CSS. But this time, change the custom CSS to all .contact-form items. But what about all the other forms on the site? Won't they get wonky? The good news here is that the other forms are email and comment forms, which are completely different in Word Press World than contact forms. Upon more element inspection, the Jetpack contact form uses something named grunion.css. Whoa. Did the Fremont Troll used to work for Automattic? And write a lot of style sheets? Who else would be named "Grunion"?
By inserting some quick code into functions.php (finally found the right one - under "includes" in the specific theme folder), grunion.css met his untimely demise. There were still some default styles being applied to the form, but I could re-write .contact-form as I saw fit, making for less redundant styling and form styles that are applicable to all the Jetpack contact forms of the future.
And with a quick plugin update, I was able to change the text in the submit button. Viola!
The moral of the story? It's good to explore your options, but sometimes you just have to take the troll out of the way.
Add one girl, mix with one (very cute) dog, sprinkle in some interesting friends and family, fold in pie baking, programming and web development, with a side of public transportation...
Wednesday, September 25, 2013
Sunday, August 25, 2013
Even the Spice Girls Didn't Have This Much "Girl Power"
If you are a woman in Seattle, you can't not learn web development. It is prolific, ubiquitous, pervasive, easy, and inexpensive-to-free. In the past week, for a total of $100 plus bus fare, I have attended:
JS Seattle Meetup's Free jQuery training held at picturesque Red Fin
Girl Develop It's HTML5 and CSS3 eight hour course
Seattle Tech Meetup (at least the first hour before intensive day job had me sleep walking back to the bus)
RailsBridge Seattle weekend intensive Ruby on Rails workshop (we made an app!)
Awesome post-workshop happy hour sponsored by BlueBox (they deserve the plug because we got free margaritas)
And I have learned:
But mostly, I have been so inspired by all the awesome people I have met at these events and classes. And I'm not just saying that because I'm trying to get a job writing sappy greeting cards. Meeting other people, especially women, who share my same goals and interests makes me feel so much less adrift in this crazy life and career change. New goal: one day to be a volunteer at these events as a "TA".
Thank you, Seattle!
JS Seattle Meetup's Free jQuery training held at picturesque Red Fin
Girl Develop It's HTML5 and CSS3 eight hour course
Seattle Tech Meetup (at least the first hour before intensive day job had me sleep walking back to the bus)
RailsBridge Seattle weekend intensive Ruby on Rails workshop (we made an app!)
Awesome post-workshop happy hour sponsored by BlueBox (they deserve the plug because we got free margaritas)
And I have learned:
- Basic jQuery commands that I can now apply to JavaScript
- That my entire website made so proudly by hand now needs to be changed completely to make the most of the awesome-ness of HTML5 and CSS3 (will be done as soon as said intensive day job is finished this week!!!)
- Why Ruby on Rails is easy but also very different from the other languages I've used
- That I know enough about programming to self-select the "advanced" section for the Rails workshop and be successful there
- That I still have so much to learn!
But mostly, I have been so inspired by all the awesome people I have met at these events and classes. And I'm not just saying that because I'm trying to get a job writing sappy greeting cards. Meeting other people, especially women, who share my same goals and interests makes me feel so much less adrift in this crazy life and career change. New goal: one day to be a volunteer at these events as a "TA".
Thank you, Seattle!
Saturday, July 20, 2013
Oh My God, It Works!
If you've ever tried to program something, uploaded the new version of the file, and sat biting your nails while the page slowly, slowly refreshes, and you hope that the error is something as simples as:
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
But will probably go more along the lines of:
Then when you open one squinted eye to see which error it was, and the code actually works and something cool and functional is happening in your site, well, you can only gasp,
"Oh My God It Works!"
Maybe followed by your own "Mwah ha ha ha, in your face computer" and a little victory dance that makes your dog glare at you for interrupting her afternoon siesta.
This is what just happened to me when trying to translate a page from regular JavaScript to jQuery (yes, this is my idea of fun on a Saturday afternoon) and is why I *heart* JavaScript and jQuery SO MUCH.
Not Found
The requested URL /doggie.html was not found on this server.Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
But will probably go more along the lines of:
YOU ARE TERRIBLE PERSON AND THERE IS AN EXTRA } SOMEWHERE IN YOUR FILE, BUT I'M NOT TELLING YOU WHERE MWAH HA HA
Then when you open one squinted eye to see which error it was, and the code actually works and something cool and functional is happening in your site, well, you can only gasp,
"Oh My God It Works!"
Maybe followed by your own "Mwah ha ha ha, in your face computer" and a little victory dance that makes your dog glare at you for interrupting her afternoon siesta.
This is what just happened to me when trying to translate a page from regular JavaScript to jQuery (yes, this is my idea of fun on a Saturday afternoon) and is why I *heart* JavaScript and jQuery SO MUCH.
Wednesday, July 17, 2013
Professional Development...
...Shouldn't be this FUN.
I feel like I am leading a double life, between two HUBs - Husky Union Building, where I've spent so many great lunches with friends and The Daily, and HUB Seattle, an unlikely building between the ID and Pioneer Square that apparently hosts every tech event advertised on Meetup.
Last night enjoyed a few bites, beers, and new connections with the Seattle Tech Meetup at HUB Seattle. Boy was I glad I sprang for the higher-end Avery do-it-yourself business cards. It's so cool to see what kind of culture I am (hopefully) becoming part of. As we were led in a cheer, I felt like I was back in hall council for McNary dorm at Oregon State University, only better, because I didn't have to hide my beer from the RA.
This afternoon the air conditioning was working much better at HUB as I joined a pack of aspiring mobile developers learning about making a mobile app in less than four hours! For free! (Thank you Apigee). Once again we were plied with food and promised beer afterward if we could just get PhoneGap to work. For me, it was empowering to realize that I can keep up with gainfully employed developers and even helped them in a few places. I even solved a JavaScript conundrum within the time allowed! Just append a few <p>s and....
Anyway, before this digresses into total geekdom (as I have noticed many of my social conversations have done lately), I just want to say Thank You to both HUBs in my life for all the education and support.
I feel like I am leading a double life, between two HUBs - Husky Union Building, where I've spent so many great lunches with friends and The Daily, and HUB Seattle, an unlikely building between the ID and Pioneer Square that apparently hosts every tech event advertised on Meetup.
Last night enjoyed a few bites, beers, and new connections with the Seattle Tech Meetup at HUB Seattle. Boy was I glad I sprang for the higher-end Avery do-it-yourself business cards. It's so cool to see what kind of culture I am (hopefully) becoming part of. As we were led in a cheer, I felt like I was back in hall council for McNary dorm at Oregon State University, only better, because I didn't have to hide my beer from the RA.
This afternoon the air conditioning was working much better at HUB as I joined a pack of aspiring mobile developers learning about making a mobile app in less than four hours! For free! (Thank you Apigee). Once again we were plied with food and promised beer afterward if we could just get PhoneGap to work. For me, it was empowering to realize that I can keep up with gainfully employed developers and even helped them in a few places. I even solved a JavaScript conundrum within the time allowed! Just append a few <p>s and....
Anyway, before this digresses into total geekdom (as I have noticed many of my social conversations have done lately), I just want to say Thank You to both HUBs in my life for all the education and support.
Friday, June 21, 2013
Be Still My Beating Heart
This morning my mind was blown. I read a chapter about J Query and understood it! I also understood how to combine "unobtrusive" with "J Query" and so one of my big goals now is to eradicate regular JavaScript from my own page (not from my portfolio pieces) while maintaining separate JavaScript, HTML, and CSS files. I realized I am beginning a love affair with J Query because while I was brushing my teeth because I kept fantasizing about all the wonderful things J Query and I will do together this summer. Me and J Query getting Ajax. Me and J Query listening for events. Me and J Query creating children (and appending them!). Gee, I hope J Query likes the way I fixed my hair today...
One day, my dream is to use PHP to do cool stuff, which will probably start with making user names and passwords. The great thing (warning: sarcasm ahead) about this is that I can also use REGULAR EXPRESSIONS. I don't know why they called them that, but the abbreviated Regex (read: Rejects) is much more apt. It's not that I don't love REGULAR EXPRESSIONS (who continue to insist that I write them all in CAPS in addition to personifying them), it's just that they make me so depressed I actually want to tear the pink keyboard cover from my computer. And that is saying something.
Another challenge I actually am excited about is the magic wand of HTTP Special Chars. If you're not sure what that means, I will tell you. Generation Y people think they're really special because their guilt-ridden divorced parents continually told them so. HTTP Chars actually are Special because they will encrypt your s**t. While I may not be the Marines of web security, I think I could at least pass for a mall cop because in addition to those Chars that are Special, I have some other tricks up my sleeve. And those tricks involve many acronyms that I can't remember right now.
Well, I'm off to go spend the afternoon on the couch (and the dining room table, and the kitchen, and my desk) with J Query. Please hold my calls.
One day, my dream is to use PHP to do cool stuff, which will probably start with making user names and passwords. The great thing (warning: sarcasm ahead) about this is that I can also use REGULAR EXPRESSIONS. I don't know why they called them that, but the abbreviated Regex (read: Rejects) is much more apt. It's not that I don't love REGULAR EXPRESSIONS (who continue to insist that I write them all in CAPS in addition to personifying them), it's just that they make me so depressed I actually want to tear the pink keyboard cover from my computer. And that is saying something.
Another challenge I actually am excited about is the magic wand of HTTP Special Chars. If you're not sure what that means, I will tell you. Generation Y people think they're really special because their guilt-ridden divorced parents continually told them so. HTTP Chars actually are Special because they will encrypt your s**t. While I may not be the Marines of web security, I think I could at least pass for a mall cop because in addition to those Chars that are Special, I have some other tricks up my sleeve. And those tricks involve many acronyms that I can't remember right now.
Well, I'm off to go spend the afternoon on the couch (and the dining room table, and the kitchen, and my desk) with J Query. Please hold my calls.
Rainy Day Web Hosting
Yesterday was dictated by the rain. Yes, an entirely rainy day in late June.
After a quick survey of painting supplies in the basement, I took Annie for an hour-long walk in Magnolia, during which time it was sprinkling yet warm. Lucky Annie didn't even need her coat.
After lunch, I drove to Ballard (I know, a risky thing to do any time, any day) to stop at my favorite coffee shop from the old days when I lived by the locks. I found an awesome parking spot (for free!) less than a block from the coffee shop. I'm not going to tell you where it was, however, because the fewer people I have to compete with, the better my own parking chances. If you're looking for parking in Ballard, I heard that there are quite a few convenient bus lines you might have better chances with.
At the coffee shop I decided to sign up for web hosting and thereby create my own actual website! Now jessicawicksnin.com is mine, all mine! I know there was a lot of demand for it because I got it for free AND it was immediately available. I'm looking forward to creating lots of subdomains like jessicawicksnin.annie.com! And of course, I have my own email: jessica@jessicawicksnin.com. Mwah ha ha! It may appear to be the height of egoism, and it is. Annie only gets her own website when she learns to type (which isn't too far off, actually). If you visit the website now, it (hopefully) doesn't show anything, but a day not too far off it will! It really will! Am I allowed one more Mwah ha ha here?
My next steps are to get the site to look less like total crap (halfway crappy would be ok) and start putting some of the stuff from my web development class online to make a "portfolio" (if this were HTML I would use <em> tags on the "quote marks" because the truth is, I have no idea what the heck I'm doing with this whole portfolio thing, but frankly, "trying stuff" has got me this far, so why stop now?)
After a quick survey of painting supplies in the basement, I took Annie for an hour-long walk in Magnolia, during which time it was sprinkling yet warm. Lucky Annie didn't even need her coat.
After lunch, I drove to Ballard (I know, a risky thing to do any time, any day) to stop at my favorite coffee shop from the old days when I lived by the locks. I found an awesome parking spot (for free!) less than a block from the coffee shop. I'm not going to tell you where it was, however, because the fewer people I have to compete with, the better my own parking chances. If you're looking for parking in Ballard, I heard that there are quite a few convenient bus lines you might have better chances with.
At the coffee shop I decided to sign up for web hosting and thereby create my own actual website! Now jessicawicksnin.com is mine, all mine! I know there was a lot of demand for it because I got it for free AND it was immediately available. I'm looking forward to creating lots of subdomains like jessicawicksnin.annie.com! And of course, I have my own email: jessica@jessicawicksnin.com. Mwah ha ha! It may appear to be the height of egoism, and it is. Annie only gets her own website when she learns to type (which isn't too far off, actually). If you visit the website now, it (hopefully) doesn't show anything, but a day not too far off it will! It really will! Am I allowed one more Mwah ha ha here?
My next steps are to get the site to look less like total crap (halfway crappy would be ok) and start putting some of the stuff from my web development class online to make a "portfolio" (if this were HTML I would use <em> tags on the "quote marks" because the truth is, I have no idea what the heck I'm doing with this whole portfolio thing, but frankly, "trying stuff" has got me this far, so why stop now?)
Wednesday, June 12, 2013
Staycation 2013 - New and Improved!
I have blogged about many things over the years: coffee, getting a dog, taking the bus, San Francisco, pies, teaching, boyfriends, babies, and more pies. However, I am moving on. No more will I spend my Staycation happily cleaning my house and going to the dog park while exhausting the local branch of the public library. No, instead I have found a purpose (in addition to going to the dog park). I am making a website and improving my programming skills this summer.
So today, I spent a few hours in the morning taking the practice exam for my programming course (final exam in two days!). Let's just say that PHP can go implode its own arrays but I definitely got the ID of Javascript! Mwah ha ha does anyone else like these jokes?
Before lunch, Annie and I took a nice long walk where it started raining, so we hid under some pine trees until the shower passed over. During the rest of the year we wouldn't have blinked an eye, but now it's June and has been so sunny that we are starting to think we might melt if we get wet (probably how the rest of the country feels all year round).
On the way home, saw a lunch time open house, so I had to go! Never had the opportunity to go to a lunchtime open house, it was a rare opportunity that I and apparently no one else took advantage of.
Finally, I hunkered down and produced this masterpiece:
![]() |
| A website that may have been made by me |
If you're jealous of my mad border-radius skills, you should be. Not just anyone can make curved edges on a website. What this screen shot doesn't capture is that if you hover over one of the options, it turns green, which not only shows that I am awesome at CSS but also that I am familiar with complementary color schemes (thanks, Kuler).
Goals for tomorrow: whip up some Javascript to make random user reviews of my website appear (oh, and show my resume, which after all is kinda the point of this whole thing).
Subscribe to:
Posts (Atom)
