TXJS post-conference thoughts

Note: this was supposed to be posted right after the event that happened on April 15th, but other commitments came up.

I got back to Houston after a day in Austin for the 2013 Texas JavaScript conference. It’s more like a mini-conference since it’s a one day event. I was excited to join other web developers in this regional conference, but the content wasn’t what I expected.

Before I go much further I should mention that the conference itself was well organized. The Paramount Theater is a beautiful spot in downtown Austin, there was breakfast provided to attendees at the kickoff which was nice, and the speakers were for the most part interesting, engaging and fun.

However, the 2013 Texas JavaScript conference didn’t have much JavaScript content. The conference had a single track structure, which may have been part of the problem. Alex Sexton (the conference organizer) can correct me if I’m wrong here, but apparently previous years had a different structure with multiple tracks, so if some people were interested in some CSS/design-approach sessions, they could go to a different room and join those.

The 2013 conference grouped three short talks (around 25 minutes in length) into a one hour and a half time slot group, ending up with these final groups:

* HTML5 & CSS
* Web Applications
* Node.js
* Rethink.js

If you were to look at the conference solely on these session topics, it may seem like a pretty technical conference. That’s not quite what it ended up being. While I was at the conference I kept thinking to myself “when are the *actual* JavaScript talks going to start?”. I thought that maybe I’m being too harsh on the conference, but at around 2pm when the Node.js sessions were about to start, I began to hear other attendees saying the same things.

Perhaps the real problem was that each talk was restricted to 20-25 minutes, so the speakers didn’t really have much time to do a technical session, but I believe it is possible if the organization behind the event tries hard at choosing good sessions.

I’m concerned that I sound too negative here, and I certainly don’t want to sound like I’m trashing the conference because it’s clear that some real work went into making a good event. Perhaps not being from the Austin tech scene I didn’t know exactly what to expect, and the original conference website didn’t give out a lot of details on what sessions were going to happen.

Maybe that’s a bigger problem these days, where a lot of regional/indie conferences don’t quite list out the sessions that are going to take place, but rather the “all star” speaker line up.

In any case, let’s review the sessions and grade their relevancy to this JavaScript conference:

* Keynote from Harper Reed – interesting information about what happened with the Obama campaign tech operations. Great speaker, with lots of funny and insightful quotes on big scale development. I think Harper mentioned JavaScript in passing once, when he said he was excited about the Node.js conference.
* “HTML: Do we really need the L?” – “Uncle” Dave was a very entertaining speaker, but he clearly didn’t have enough time in 20 minutes to go over all of the technologies that are part of HTML5, so this session was mainly a quick overview of the different things that are available. Again, not much to do with JavaScript.
* “OOCSS and Preprocessors in a tree, K-I-S-S-I-N-G” – This was a very interesting session on CSS development methodologies, and SASS in particular. I actually learned a lot on best practices about potentially switching to SASS. Nicole is a great speaker, and this was one of my favorite sessions, even though it had nothing to do with JavaScript.
* “CSS is for Computers” – Another session that seemed extremely constrained at 20 minutes, but it was interesting in that it helped me think more about the merits of switching to a CSS preprocessor. I’m sold on the idea after this session, but again (not to harp on this), nothing to do with JavaScript.
* “Beyond Front-end Developer” – Interesting session with some potential “what if” questions on what our jobs will look like in 10 years or so. JavaScript content here was also extremely low.
* “Apps that Build Themselves” – This was one of the sessions I liked the least because it seemed like we were reviewing a specific way of building a web application, without really going into specifics. The speaker went through the use case of building / deploying JavaScript applications that are self-contained. It’s sort of interesting that they can use this platform to just build applications dynamically, but I’m not sure that I learned much from this session. On the other hand, it’s actually one of the few JavaScript-centric sessions of the conference.
* “Culture change for creating better user experiences” – Really cool session on the work happening in England to change how their government provides their services to citizens. This was one of my favorite sessions, but again, this had nothing to do with JavaScript.
* “Faking Browsers for FFUU and Profit” – Jed is a very entertaining speaker, and this was clearly the most fun session of the day. Great relevant session for JavaScript developers.
* “The Evolution of Node” – Interesting session on what is happening on the Node project, and what we can expect from it in the next several months. Again relevant to JavaScript developers.
* “Streeeams, probably” – Great session on the specifics of stream development with Node.js. Very relevant to JavaScript developers, and it had excellent technical content.
* “All Open Source Everything” – Wow, this was one super insane session that had nothing to do with JavaScript, and I’m not even sure if it had anything to do with a technical conference in general. Sure, it had some relevancy to a discussion on developers valuing their work more, and choosing appropriate open-source licenses, but man, this was a real head scratcher.
* “Execute” – Pseudo-inspirational session on building on your product ideas and not being afraid to fail. It could be interesting for some people out there of course, but I’m not sure I have not already read some derivation of this same content out there on the web countless times before. Not at all relevant to JavaScript.
* “I can smell your CMS” – Funny and entertaining speaker talking about interesting stories about web site development and what some badly designed CMS systems can mean to client companies. Not relevant again to JavaScript.

This is pretty much it. Out of all of these sessions, and including the keynote on it, I count 4 out of 13 sessions that actually had any technical content relevant to a JavaScript-centric conference.

I understand having a small mix of non-technical sessions, or even having technical sessions on other things that are related in some way to a front-end developer, but less than 30% of relevant content seems a bit much (or little?).

It was an interesting conference, but depending on what you want out of it, I would sometimes recommend just using peepcode.com to get your fix for some technical content.

Cocoaconf Dallas post-conference review

It was my first time at one of the Cocoaconf conferences. They take this approach of a pseudo-regional conference by taking a shorter conference on the road (3 days including an optional full day workshop/tutorial) to different cities.

The conference itself was great: good content and engaging speakers for the most part. The hotel/location itself was slightly weird, but that’s so minor I wasn’t even sure I should mention this.

There were about 100 attendees at the conference, which was nice to keep everything small and focused.

MongoDB Days Austin post-conference thoughts

It was a great decision going to the MongoDB Days mini-conference in Austin — learned a lot about what MongoDB is, what it can do really efficiently, and also got an introduction to thinking in documents instead of the old relational way.

I chose to go to the pre-conference workshop sessions as well, and that was important to get this introduction to MongoDB (and schemaless design) out of the way. Everyone from 10gen was very helpful, and willing to discuss the parallels between relational schema design and best practices on the documents approach.

Loved the conference, and will be paying more attention to MongoDB in the future thinking about potential uses in client projects.

ASIHTTPRequest and json-framework presentation

I presented at the August 2010 meeting of the Houston iPhone Developers meetup about two great open-source projects for iPhone developers: ASIHTTPRequest and json-framework.

I started on the presentation at the May meeting, but never completed because we were running out of time. This time I finished the presentation, and we discussed the details of using ASIHTTPRequest and json-framework to build a dynamic iPhone app that displays data on a UITableView.

You can go to the slideshare page for extra options, or you can browse through the presentation below:

Setting up phpUnderControl (and CruiseControl) under debian etch

This might not be as useful since we finally have debian lenny available, but then again, maybe it will be useful for some people out there.

I had to setup phpUnderControl (and CruiseControl) at my job to manage our day to day work, and it took quite a bit of time to figure out how to setup everything properly from the ground up. This post is derived from my notes that we keep in our internal wiki.

  1. Edit /etc/apt/sources.list and make sure the unstable repo is listed in there
    deb http://ftp.debian.org/debian/ unstable non-free
    deb-src http://ftp.debian.org/debian/ unstable non-free
    
  2. apt-get update
  3. apt-get -t unstable install sun-java6-jre sun-java6-jdk
  4. Run “java -version” to verify the installation
    root@etch-64-dev-ui:~# java -version
    java version "1.6.0_10"
    Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
    Java HotSpot(TM) 64-Bit Server VM (build 11.0-b15, mixed mode)
    
  5. Add JAVA_HOME to /etc/environment:
    JAVA_HOME="/usr/lib/jvm/java-6-sun"
    
  6. source /etc/environment
  7. Download binary distribution of CruiseControl (available here: http://cruisecontrol.sourceforge.net/download.html)
  8. Install CruiseControl:
    $ unzip cruisecontrol-bin-2.7.3.zip -d /opt
    $ ln -s /opt/cruisecontrol-bin-2.7.3 /opt/cruisecontrol
    
  9. Install PEAR (if it’s not already there):
    $ apt-get install php-pear
    
  10. Upgrade PEAR to latest release:
    $ pear upgrade-all
    
  11. Install PHPUnit and phpUnderControl:
    $ pear channel-discover pear.phpunit.de
    $ pear install phpunit/PHPUnit
    $ pear install --force --alldeps phpunit/phpUnderControl
    $ phpuc install /opt/cruisecontrol
    
  12. Install Xdebug (needed for code coverage analysis):
    $ pear install pecl/xdebug
    
  13. Add Xdebug zend extension to php.ini (on our case /etc/php5/cli/php.ini):
    zend_extension="/full/path/to/xdebug.so"
    
  14. Create a CruiseControl project for your existing PHP project’s unit tests:
    $ phpuc project --version-control svn --username "cruisecontrol" --password "password_here" --version-control-url svn://svn.domain.com/repository/project-name/trunk --test-case MyProjectTestSuite --test-dir "/opt/cruisecontrol/projects/my-project/source/unit_tests" --test-file "MyProjectTestSuite.php" --project-name MyProject /opt/cruisecontrol
    
  15. Edit projects/MyProject/build.xml so it contains the following content:
    <?xml version="1.0" encoding="UTF-8"?>
    <project name="MyProject" default="build" basedir=".">
      <target name="build" depends="php-documentor,php-codesniffer,phpunit"/>
      <target name="php-documentor">
        <exec executable="phpdoc" dir="${basedir}/source" logerror="on">
          <arg line="--title '${ant.project.name}' -i *pear/*,*Smarty/*,*fpdf/*,*jpgraph/* -ue on -t ${basedir}/build/api -d ${basedir}/source/lib -tb '/usr/share/php/data/phpUnderControl/data/phpdoc' -o HTML:Phpuc:phpuc"/>
        </exec>
      </target>
      <target name="php-codesniffer">
        <exec executable="phpcs" dir="${basedir}/source" output="${basedir}/build/logs/checkstyle.xml" error="/tmp/checkstyle.error.log">
          <arg line="--ignore=*/PEAR/*,*/Smarty/*,*/fpdf/*,*/jpgraph/*,*/misc/* --report=checkstyle --standard=PEAR ${basedir}/source"/>
        </exec>
      </target>
      <target name="phpunit">
        <exec executable="phpunit" dir="${basedir}/source/unit_tests" failonerror="on">
          <arg line=" --log-xml ${basedir}/build/logs/phpunit.xml --log-pmd ${basedir}/build/logs/phpunit.pmd.xml --coverage-xml ${basedir}/build/logs/phpunit.coverage.xml --coverage-html ${basedir}/build/coverage MyProjectTestSuite /opt/cruisecontrol/projects/MyProject/source/unit_tests/MyProjectTestSuite.php"/>
        </exec>
      </target>
    </project>
    

You will need to tweak a few things, like the “MyProject” name and probably some of the “ignore rules” for phpCodeSniffer, but it should be a great starting point for most projects.

« Previous entries Next Page » Next Page »