Tag Archives: web development

elb_log_sample_2

AWS Opens Access Logs for Elastic Load Balancers

Today we are giving you additional insight into the operation of your Elastic Load Balancers with the addition of an access log feature. After you enable and configure this feature for an Elastic Load Balancer, log files will be delivered to the Amazon S3 bucket of your choice. The log files contain information about each HTTP and TCP request processed by the load balancer.

via Amazon Web Services Blog: Access Logs for Elastic Load Balancers.

This has been a long time coming but it is a welcome development. I’m looking forward to plowing through those access logs and running my own analysis on them.

eggs 27

Use Google App Engine For Quick Static Web Page Hosting

Sometimes I’m looking for a quick way to take a look at some new static design pages or prototype and I don’t want to go through the hassle of setting something up on regular hosting. I’ve typically done that sort of thing locally, but that doesn’t help if I want to share or get feed back on something. Free Static Page Hosting on Google App Engine in 5 minutes shows how to get a static site up and running on Google App Engine.

I had thought of Google App Engine as a platform to deploy sophisticated Python, Java, or Go apps, but it can handle static HTML just fine. The article describes the steps needed and uses the Python SDK but I tested the same steps using the PHP SDK and it worked fine.

You should visit the Google App Engine site to get all the details for using the platform. For hosting a few static pages it’s free.

dark blue fantasy

List of Standard HTML 5 Elements

All standard HTML5 elements are listed here, described by their opening tag and grouped by function. Contrary to the HTML Element index which lists all possible tags, standard, non-standard, valid, obsolete or deprecated ones, this list only the valid HTML5 elements. Only the elements listed here should be used in new Web sites.

The symbol This element was added as part of HTML5 indicates that the element was added in HTML5. Note that other elements listed here may have been modified or extended in their meaning by the HTML5 specification.

via HTML5 element list – Web developer guide | MDN.

Good list of standard HTML 5 elements, maintained by the folks at Mozilla.

Coder: Learn to Code in a Web Browser With This Version of Raspberry Pi

Coder is a free, open source project that turns a Raspberry Pi into a simple platform that educators and parents can use to teach the basics of building for the web. New coders can craft small projects in HTML, CSS, and Javascript, right from the web browser.

via Coder for Raspberry Pi.

Just watching the video below is enough to make you want to get coding. This is yet another example of how the Raspberry Pi can change our relationship with computers.

Typing...

Intention.js Allows You To Restructure HTML In Response To Just About Anything

Intention.js offers a light-weight and clear way to dynamically restructure HTML in a responsive manner.

Easily increase layout options and flexibility, reducing development time and lessening the necessity of media-query-driven stylesheet overrides.

via intention.js.

Very interesting JavaScript library that promises to provide developers with tools to dynamically restructure HTML on a page based upon the context that the page is opened in. Built in are the responses to device contexts that allow you to swap out assets and HTML based upon screen size. The really interesting thing is that you can extend it to respond to other contexts, like time of day, touch capabilities, and more.

Intention.js requires jQuery and Underscore.js to work.

Typing...

Add Encryption toYour Web App With The Stanford Javascript Crypto Library

The Stanford Javascript Crypto Library (hosted here on Stanford’s server or here on GitHub) is a project by the Stanford Computer Security Lab to build a secure, powerful, fast, small, easy-to-use, cross-browser library for cryptography in Javascript.

via Stanford Javascript Crypto Library.

This looks like a great way to add encryption to web apps. Found out about it from Dave Winer’s mention of it in his announcement about the addition of encryption to Fargo. Seems like something that will be of use as I look into things like annotation schemes for ebooks and the Free Law Reporter. May also be of use for things like A2J Author as it moves to a browser based editor.

 

CSV display on GitHub

GitHub Now Renders CSV and TSV Files As Tables

When viewed, any .csv or .tsv file committed to a GitHub repository automatically renders as an interactive table, complete with headers and row numbering. By default, we’ll always assume the first row is your header row.
You can link to a particular row by clicking the row number, or select multiple rows by holding down the shift key. Just copy the URL and send it to a friend.

via Rendering CSV and TSV data · GitHub Help.

This means that GitHub can now be used to share data sets in a meaningful manner. All you need to do is commit a .csv or .tsv file to your GitHub repo and visitors will see the data a searchable interactive table.

 

How Twitter Runs And Runs And Runs

Everybody has this idea that Twitter is easy. With a little architectural hand waving we have a scalable Twitter, just that simple. Well, it’s not that simple as Raffi Krikorian, VP of Engineering at Twitter, describes in his superb and very detailed presentation on Timelines at Scale.
If you want to know how Twitter works – then start here.It happened gradually so you may have missed it, but Twitter has grown up. It started as a struggling three-tierish Ruby on Rails website to become a beautifully service driven core that we actually go to now to see if other services are down. Quite a change.

via High Scalability – High Scalability – The Architecture Twitter Uses to Deal with 150M Active Users, 300K QPS, a 22 MB/S Firehose, and Send Tweets in Under 5 Seconds.

Read the article for a good summary of how Twitter runs. As noted, it isn’t all that easy anymore. The entire 38 minute talk is worth listening to, especially for anyone with an interest in designing next generation web apps.

One of the key points in the talk is that Twitter isn’t really a web site, it’s really an API with a web application built on top. The work is in getting the API to run as fast and as effectively as possible. The tech used to accomplish this is interesting because it isn’t just a bunch of database tables, and it is the future of the interactive web.

When You Want to Browse the Web Without a Browser

Sometime you need to get stuff from the web without that pesky browser getting in the way. Screenshots, testing, archives, scraping, and such often call for getting a page from the web and doing something with it. Automating this with a conventional browse is no fun. Linux folks have the advantage of wget and cURL running from the command line. Programmers and developers will use the language and libraries of their choice. But it is still a chore. Well, there may be an easier way.

I’ve found a couple of javascript libraries, PhantomJS and SlimerJS (yes, very ghosty!) that provide tools for building JavaScript that can manipulate web pages, effectively browsing the web without the browser. PhantomJS “is a headless WebKit scriptable with a JavaScript API. It has fast and native support for various web standards: DOM handling, CSS selector, JSON, Canvas, and SVG.” SlimerJS “is useful to do functional tests, page automaton, network monitoring, screen capture, etc. SlimerJS is similar to PhantomJs, except that it runs Gecko, the browser engine of Mozilla Firefox, instead of Webkit.”

I’ve been looking for a way to generate screenshots of pages that I’ve generated shortened URLs for with my shortener figuring that it would be nice to have a browsable library of pages. Either of these libraries will do the trick.

You can find both on Github: SlimerJS on GH & PhantomJS on GH.

Notes from Drupalcamp Atlanta 10/27/12

These are my notes from dcATL.
  • Josh Clark @globalmoxie
  • The mobile future
  • Mobile is a new platform. What do we do with the new platform?
  • How do we do more with mobile?
  • Sensors give us super powers.
  • Mobile provides the opportunity to interpret the environment, think of augmented reality.
    • Think of ways to use camera and audio in classroom, like prof mentions case and it pop ups on device.
  • Table Drum app usess augmented audio.
  • AnyTouch turns everyday objects into interface objects.
  • Leap Motion moves touch interface into 3d space, natural gestures.
  • Natural gestures are the next break through in interfaces.
  • We need to design for natural gestures.
  • Windows 8 is intended to work with any input interface. Hugely challenging.
  • Medical field is using all sorts of special sensors with mobile devices to drive data collection.
  • Personal sensors make sense of our environment.
  • But we don’t need more operating systems, interfaces.
  • Remote control is an answer.
  • Ambiguous control among devices is coming, think of phones in cars. Your car rings. When you park the car, the interface follows you. Migrating interface.
  • http://bit.ly/day-glass- A day made of glass from Corning.
    • One smart device somewhere that is driven by ambiguous interfaces
  • Wii U
  • Grab Magic http://bit.ly/grab-magic
  • http://bitly.com/proto-gestures
  • Sifteo cubesare social toys.
    • Download software as it needs it.
  • Web is just in case, everything is loaded in case we need it. Needs to move to just in time, software loaded when we need it.
  • Passive interfaces just work on their own, doing the things they need to do to perform the functions they are designed to do.
  • Devices will get both dumber and smarter.
  • Metadata is the new art direction – Ethan Resnick @studip101
  • A cloud of social devices
  • Look beyond the interface, beyond the device, the presentation to the content and the services.
  • Push sensors
  • Think social not FB
  • Your ecosystem
  • We’re all cloud developers
  • Mind your metadata
  • New input methods
  • The future is here
  • Eric Webb @erikwebb
  • See slideshare
  • Evaluating modules
    • Supported version, maintainer rep, usage, # of open issues, usage over time.
    • Record before and after install using Devel module
    • Search for tag ” performance ” to weed out general issues.
    • What to look at
      • When does it run?
      • How does it scale?
      • What if it fails?
      • Does my site care?
      • Do I need this module?
    • ID the problem
    • Where problems occur
      • Page building like views and panels
      • External web services
      • Overall complexity
        • Views in panels in panels….
      • Misconfigured components
    • Keep records, establish a metric, adopt a definition of done, don’t hide behind infrastructure
  • Types of caching
    • App level caching is not really configurable. Tings like menus, forms
    • Component level caching, user facing stuff like blocks, views, panels
      • Best to speed up for authenticated users
    • Page level caching is important mostly for anon users
  • Configuring Drupal

  • Randall Kent @randallkent rkent@sevaa.com
  • http://bit.ly/dcatl-services
  • Web services as the tip of the iceberg.
  • REST is the key to getting at the stuff in Drupal. REST is one way to create an API on Drupal.
  • REST
    • built on http
      • GET, POST, PUT, DELETE
    • Client/Server
      • Separates ui from data storage
    • Stateless
      • All info necessary to process request must be included in the request itself
    • Cacheable
    • Layered
    • Uniform interface
  • /myapi/node – gets XML
  • /myapi/node.json – get JSON
  • REST console for Chrome
  • http://github.com/randallkent
    • DrupalREST.php
    • DrupalREST.net
  • See http://drupanium.org
  • David Bassendine @dbassendine
  • Open data, social, business tools
  • Few modules for consuming services
  • Always start with looking on line for a module
  • REST vs SOAP
  • Get to know the API you are working with
    • URL and path structure
    • Testing in browser for GET, POST requires extension/plugin
  • Services client for D7 will consume Services from another Drupal instance
  • REST API and Query API handle some RESTful APIs that serve json
    • See red mine module for example
  • Core HTTP API for other services
    • drupal_http_request($url,$options(headers,methods,data))
    • Slightly diff D6 & D7
  • Last 2 require custom modules to do the work
  • Krumo – http://krumo.sourceforge.net/
  • Talking to Web Services – Resources


  • Matthew Connerton @connerton
  • AJAX allways for there fresh of data in the browser page with refreshing the whole page.

    Sample code for AJAX in Drupal7

  • Replaces AHAH, which is a good thing. Pulls lots in crooks stuff
  • “use-ajax” class
    • drupal_add_library(drupal.ajax) to get Ajax in.
    • Pulls jquery in
  • $form['#ajax']
    • drupal_add_library(drupal.ajax) to get Ajax in.
    • Blur is the default trigger.
  • It’s may ease the pain of the auth code stuff.
  • Check Drupal API for AJAX Framework docs.
    • includes/ajax.inc
  • Using #states in Form API
    • conditional fields moduleadds a UI to #states
      • Adds manage dependencies to content types
    • drupal_process_states
    • #states may be faster than #ajax
  • Ctools modal to open modal boxes for editing and such.
    • “ctools-use-modal” class
  • Doug Vann dougvann.com
  • Module filter is cool
  • DraggableViews
    • Makes rows of views draggable
    • Can be rearranged by drag and drop
    • Has AJAX
    • No relationship required
    • Could use this to provide a sort on Lesson topics based on order in the topic grid
    • Use this to rearrange stuff on the topic list view itself on the home page
    • No subsets or at least not easily handled
  • Nodequeue
    • Collect nodes in an arbitrary order
    • Requires relationship in order to bring stuff into proper scope