------art_1370_26420177.1119977535077
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

I also cannot access your server.

On 6/27/05, Ezra Zygmuntowicz <ezra / yakima-herald.com> wrote:
> 
> I cannot access your server either. I have tried both times you
> posted it and it would just time out multiple times.
> -Ezra
> On Jun 27, 2005, at 1:24 PM, Daniel Nugent wrote:
> 
> > I'm doing that right now actually, I just want to add the ability to
> > do data: URIs, which should be pretty easy I think.
> >
> > It's strange that you can't access my server Adam, is anyone else
> > having that problem?
> >
> > On 6/27/05, Carl Youngblood <carl.youngblood / gmail.com> wrote:
> >
> >> One thing that would make sparklines a lot more universally
> >> accessible to
> >> all browsers would be to get rid of the dependency on data urls.
> >> The basic
> >> idea is to return the proper MIME type to the browser and then
> >> just start
> >> spitting out the raw binary data of the PNG.
> >>
> >> Here is an example:
> >>
> >> #!/usr/bin/ruby
> >>
> >> require 'base64'
> >> require 'cgi'
> >> require 'zlib'
> >>
> >> def build_png_chunk(type,data)
> >> to_check = type + data
> >> return [data.length].pack("N") + to_check +
> >> [Zlib.crc32(to_check)].pack("N")
> >> end
> >>
> >> def build_png(image_rows)
> >> header = [137, 80, 78, 71, 13, 10, 26, 10].pack("C*")
> >> raw_data = image_rows.map { |row| [0] + row }.flatten.pack("C*")
> >> ihdr_data = [image_rows.first.length,
> >> image_rows.length,
> >> 8,2,0,0,0].pack("NNCCCCC")
> >> ihdr = build_png_chunk("IHDR", ihdr_data)
> >> idat = build_png_chunk("IDAT", Zlib::Deflate.deflate(raw_data))
> >> iend = build_png_chunk("IEND", "")
> >>
> >> return header + ihdr + idat + iend
> >> end
> >>
> >> def bumpspark(results)
> >> white, red, grey = [0xFF,0xFF,0xFF], [0,0,0xFF], [0x99,0x99,0x99]
> >> rows = results.inject([]) do |ary, r|
> >> ary << [white]*15 << [white]*15
> >> ary.last[r/9,4] = [(r > 50 and red or grey)]*4
> >> ary
> >> end.transpose
> >> return build_png(rows)
> >> end
> >>
> >> def send_to_browser(results)
> >> puts "Content-type: image/png"
> >> puts "Expires: Wed, 11 Nov 1998 11:11:11 GMT"
> >> puts "Cache-Control: no-cache"
> >> puts "Cache-Control: must-revalidate"
> >> puts
> >> print bumpspark(results)
> >> end
> >>
> >> send_to_browser (0..22).map { rand 100 }
> >>
> >>
> >> See this in action at the following URL:
> >>
> >> http://youngbloods.org/sparkline.cgi
> >>
> >> Carl
> >>
> >>
> >>
> >
> >
> > --
> > -Dan Nugent
> >
> >
> 
> -Ezra Zygmuntowicz
> Yakima Herald-Republic
> WebMaster
> 509-577-7732
> ezra / yakima-herald.com
> 
> 
>

------art_1370_26420177.1119977535077--