It starts strong at 2:33 in, and then goes from there. 10:25 is like the chocolate river. 13:20 is the geese that lay the golden eggs. 13:55 is the Everlasting Gobstopper. I’m TRYING to see if Bret will do a talk for us, keeping fingers crossed.
Bret Victor invents tools that enable people to understand and create. He has designed experimental UI concepts at Apple, interactive data graphics for Al Gore, and musical instruments at Alesis.
In the immortal words orof Colonel Sanders, I’m too drunk to write this blog post. But eff it (note: I don’t know if Colonel Sanders said that part). Don’t take this as a knock that I don’t care about this blog post because I do. The HTML5 history API is one of my favorite things ever (and Tony Camp is one of my personal heroes). If the HTML5 history API (or Tony Camp) came up to me and said, “Hey baby, I work to spec in all the latest browsers and degrade gracefully in the others. What are you doing later?” I would say, “Writing some code. See you later.” I love it so much, I gave a talk about it at a previous Tag Soup meetup. But here I am going to tell you how to convert your current Octopress blog into an Octopress blog that uses HTML5 pushState (and how to report bugs to me where I messed up, because I definitely did).
Working in the default themed Terminal all day will make any sane (no such thing) developer cry. I’m sure we each have our own favorite customizations. Me? I’m a zsh sort of guy. Using it for a while (thanks @slashclee) I find myself switching up the themes each time I configure or reconfigure a computer. First thing’s first though, I’m using a mac. I’m not a “fan boy”, I’m just comfortable with it at this point. So if you’re wanting to get this going on your Linux system, there are links that can help you… I’m sorry, but I can’t help.
One of the most important things that you can do for your site is implementing a good SEO strategy. Whether you are a designer, developer or both, you should have a good understanding of SEO and how to make it work for your site.
With out getting into the history of SEO, I want to give you a brief overview. First off, SEO stands for Search Engine Optimization. What does this mean? In short its how you as a web professional translate the content of your site to search engines.
How does this work? The search engine sends out something called a “spider” (aka bot or robot) who will crawl your site (if the spider knows about it) and take the information that they can read back to their search engine. At this point your web page would be considered “indexed” in the search engine. Once your site is indexed then there are many factors that will go into what position you will show up in depending on the keyword that is typed into the search engine.
Whats a good strategy to follow? The first thing to know about SEO is that “Content is King”. Don’t try to chase algorithm changes in Google or Bing. Your time will be more productive if you concentrate on keeping good and relevant content on your site. Have good content and change it often. Good SEO will get people to your site but good content will keep them there and coming back.
The idea is to have 30 days (in a row) of blog posts. The authors may vary. Subjects might not be serious; they don’t need to be. The goal is to get out of our comfort zone and put something out there in hopes of helping / inspiring someone else. Most important, to have fun.
We need more people to join and post. You can see we have lots of space available. Here’s our calendar showing who’s posting and when. If you’re interested shoot a msg to @phxtagsoup on twitter.
Now that the boring stuff is out of the way, here’s a tiny “ahhhhhh” tip I can share. It’s super basic, but I hear people ask this question all the time.
So I have a basic function inside of Chrome’s console. When I press enter, I get the “undefined” msg. I haven’t done anything though, so why the “undefined”? Javascript functions ALWAYS return a value. If you don’t specify what it is, then it returns “undefined”. YAY!
You know what sucks? Making hundreds of round trips to a server to see if there’s any new data you can grab.
But modern browsers (well, Firefox and Chrome and Safari) support a much neater option. With the right Content-Type header, some special sauce in the client, and a modern browser platform, you can use the HTML5 EventSource API to establish a single long-term connection for each client, and the server pushes new data whenever necessary.
Let’s start with a look at the server-side implementation.
Things to note: The secret sauce here is all in the /events handler. It’s pretty simple - we watch a log file to see when its size changes, and when that happens, we read the new data from the end of the file and send it to the client tagged with the event name data (so if you have multiple kinds of events, you can interleave different messages by tagging them with different event names and the client will be able to properly distinguish them). And of course, if the client closes the connection, we want to free up the open file descriptor and the watch on the logfile.
Now, how do we consume this data from the client?
It’s so simple it almost doesn’t need an explanation. The important things to note are: of course the URL has to point at the same endpoint that the server is exporting the stream on, and we add a listener for the data event which we know the messages from the server will be tagged with. If you want to support multiple message types, you just add another listener on the client for each different event name and you’re good to go.
Here is the end result of this experiment Kitty Corners. Continue on to read my blabber.
As developers, we’re constantly trying to “level-up”. Becoming a better developer is all about writing code. A goofy, but fun exercise I do from time to time involves browsing dribbble. I browse some of the great pieces of art on there and try to emulate it with CSS. I came across a piece by Larry Chen called Photo Border Style. I figured I could whip up that border treatment pretty easily.
This video is from our November 2011 meeting. Luke was nice enough to jump on a Skype call and spend an hour with us. This was one of the first meetings where I saw a very diverse crowd. Normally we’re 90% developers. This time we had designers, project managers, account managers and developers hanging out talking about the “Mobile First” ideology ♥ ♥. I have to give a hug(e) thanks to Luke W. for taking the time to talk with us. Please, take the time to add @lukew to your twitter feed (he’s very active there) and head to his site which is full of crazy good articles.
Despite a few technical difficulties, this turned out all sparkles!
Arizona developers. Tickets for JS Conf 2012 go on sale today, Jan. 18th 2012, at 1pm AZ Time. If you have any interest in going, tickets sell out very quickly. Load up that browser and get ready to buy your ticket.
Call for help
Some of the TagSoup members are setting up a shuttle service from the airport to the hotel on Sunday. We haven’t set up the times we will be offering the service, so details will be planned out as soon as we have our drivers ready. We currently have about 5 drivers that have volunteered so far. We need more people. If you are interested, please let me know. There will be something special in it for you!
Don’t you hate it when you find yourself debugging some weird CSS issue knowing full well you’ve solved the same exact problem in the past? I catch myself doing this all the time. I’m being a bit hard on myself. It’s not like I run into the same bug, project after project, failing to learn the solution. It’s more like… “Shit I remember this bug, it happened to me 9 months ago, I can’t remember how I fixed it back then. KKKKAAAAHHHHNNNNNNNN”.