

Show HN: My weekend project, QR-codes for everybody - siavash
http://lilqr.com/
I wanted QR codes to be really simple to implement everywhere and for everyone. So I spent some time on my weekends trying to write a fast QR generator module for Apache, and here are the results:
ab -n 5000 -c 100 http://lilqr.com/qr
Requests per second:    4301.78 [#/sec] (mean)
======
randomwalker
One problem you're probably going to run into is caches (especially caching
proxies) ignoring your nocache header, causing users to see the wrong QR code.

A standard way to avoid this is by making the image URL
<http://lilqr.com/qr?rand=[nonce]>, where you'd generate the nonce randomly on
each page load. You can ignore it on the server of course.

~~~
siavash
Your right, some proxies simply ignore the Cache-Control directive. In some
cases even Google Chrome handles this directive poorly, as it will serve a
cached version when you use the back/forward-buttons between pages no matter
what cache directive you give the image. IE and FF are flawless in this
regard.

Feel free to suffix the URL with a random get-varaible, as this wont affect
the service more then ensuring that proxies and cache hungry browser are less
likely to cache the image.

~~~
jiaaro
You could also add an optional GET param that allows the user to override the
url for which a QR code is generated (so ?url=... would override the default
functionality of detecting the url)

~~~
pronoiac
That parameter would also be useful and needed for https urls - browsers
aren't supposed to pass those along as referrers.

~~~
siavash
This is true unless the image is served from https aswell. In that case
referer is sent just as normal. I'm getting a certificate this week to serve
https QRs!

------
LoonyPandora
I think you need a little more instruction. What does this do?

My first thought was that it would generate a QR code for any string you
provide, through url hacking. (i.e anything after the domain name is used as
the string to encode) - This doesn't seem to be the case.

Very little instruction on the website, nothing on twitter, and no info here…
Could you shed a little light please?

EDIT: As tiwilliam informed me, it uses the HTTP referer to create a QR code
that contains a link back to that same HTTP referer. If it is not present, the
default is lilqr.com.

It's a nice idea, but I don't see the value in having a QR code that links to
the page you are already on? A bit more explanation is still necessary :)

~~~
siavash
Sorry, I just wanted to launch it as early as possible. Just put the img-tag
on whatever page you would like to have a QR code for and it will create one
to the URL of that page.

~~~
noinput
"Just paste this snippet on any page and get a QR-code to it!" made fine sense
to me. nice work

------
nostromo
This got me thinking -- I wish there was a browser extension that would create
a QR code for whatever page I'm currently on. (Why? Because often I want to
quickly open the URL on my desktop on my mobile.)

Turns out there is one -- looks pretty handy!
[https://chrome.google.com/webstore/detail/bcfddoencoiedfjgep...](https://chrome.google.com/webstore/detail/bcfddoencoiedfjgepnlhcpfikgaogdg)

I wish someone would create a browser extension (Rapportive, this one is for
you!) that would create a QR code for contact info from a person's email
signature. If I want to quickly add someone's info from an email to my phone
and call them, it's so much easier to scan a QR code than to deal with Address
Book and then sync my phone.

~~~
etherealG
if you're running android, give chrome to phone a try. just 1 click and the
site will open on your mobile without the hassle of opening a camera app to
load the QR code.

[https://chrome.google.com/webstore/detail/oadboiipflhobonjjf...](https://chrome.google.com/webstore/detail/oadboiipflhobonjjffjbfekfjcgkhco)

~~~
Osiris
This is a really great extension and works with Maps also (to load the Maps
app directly). There's an extension for Opera that also utilizes the Chrome to
Phone API. Not sure about Firefox.

~~~
doublec
For Firefox there's Fox To Phone.

------
matthew-wegner
Clever implementation! For anyone looking to do larger/smaller/different data,
the Google Charts interface works well:
[http://code.google.com/apis/chart/image/docs/gallery/qr_code...](http://code.google.com/apis/chart/image/docs/gallery/qr_codes.html)

------
atuladhar
Pretty cool. One downside I see of the easy way of integration (as opposed to
having to use a site-specific URL) is that the browser cache cannot be used
(and as expected, the image comes back with a "no-cache" header), since the
browser might end up using the same image for multiple sites using the
feature. Is there any caching on the server to avoid having to generate the
image every time?

------
megamark16
This is very cool, and through this thread I discovered the Google Chart API
for creating QR codes. Here's my snippet that does kind of the same thing
you're doing:

<img id="qrCode" /> <script type="text/javascript">
document.getElementById("qrCode").src =
"[https://chart.googleapis.com/chart?chs=150x150&cht=qr...](https://chart.googleapis.com/chart?chs=150x150&cht=qr&chl=)
\+ window.location + "&choe=UTF-8"; </script>

I'm going to HAVE to play with this some more. This evening my wife and I were
driving around looking at houses for sale and I was thinking that every For
Sale sign should have a big old QR code on it that takes you directly to a
webpage for that specific house with the listing price and details about the
house. I shouldn't have to jump out and grab an info sheet, I should be able
to scan the big ol' QR code from my car and see the details about the house.

------
mike-cardwell

      #!/usr/bin/perl
      use GD::Barcode::QRcode;
      my $url = 'http://news.ycombinator.com/';
      print "Content-type: image/png\r\n\r\n";
      print GD::Barcode::QRcode->new($url,{Version=>3})->plot->png;
    

Personally, I don't think it's a good idea to rely on third party services to
do things which can be trivially performed locally.

~~~
brk
_Personally, I don't think it's a good idea to rely on third party services to
do things which can be trivially performed locally._

I agree with you totally. However, there is a whole army of marketeers who can
barely manage to paste some javascript into an HTML file without messing the
whole thing up. Those are the folks that you can monetize off of projects like
this.

BTW, it's always good to see another perlmonger.

------
amanuel
If want to generate QR Codes locally I shared the qrcode generator I use in my
Safari Extension (Tab Transmit).

<https://github.com/amanuel/JS-HTML5-QRCode-Generator>

------
brk
Great way to jump on QR trend. Amazingly simple implementation.

Would be nice to have some way to put in the URL on a page and have it
generate PNGs of different sized codes, like for printing on a brochure or
poster.

~~~
siavash
I'm working on some basic customization but first up is stats for number of
scans, though that would require a redirect through the service (with URL
shortening ofcourse). What do you think of that?

~~~
brk
Stats are certainly good.

Do you do any sort of detection of things like detecting that www.foo.com/bar
and foo.com/bar are the same page, so they can share a code? Maybe for
advanced users almost like some kind of re-write rules so that requests
for/from certain pages can be linked to a static QR code?

------
aristidesfl
What is the poing of having a QR-code of a page in the page itself?

~~~
cjdavis
At Hive13, we are putting QR codes on equipment description pages using a wiki
template - <http://wiki.hive13.org/Equipment>. Our next step is to print the
template info to a sticker, which is placed on the equipment described. Then
you have an easy link using your phone to further information directly on the
tool itself.

------
siavash
Wow, didn't really expect hitting the front page, even less #1. Thanks for all
the encouring comments! They're really motivating when you spend your spare
time developing an Apache module to generate QR-codes. In 4 hours we have had
32308 generated QR codes and 5656 visitors! I intend to keep the service just
as simple, but will likely add lilqr.com/qr+ for some of the more advanced
features pointed out here. Once again, thanks!

------
ams6110
I'm reminded of <http://www.joelonsoftware.com/articles/fog0000000037.html>

------
bauchidgw
three words: very very awesome

i wonder which other tools could be implemented that simple...

------
alistair_uk
As with many things it has already been done I am afraid.
<http://www.smallqr.com/magic> :-)

~~~
18pfsmt
If it's as you suggest, and there are people that have done this previously.
it would seem there was insufficient marketing. It would be interesting to
hear the details of this incident and thought process.

~~~
alistair_uk
SmallQR officially went beta only the day before I see the lilqr domain was
registered so perhaps Siavash did not know about it, or perhaps he was
inspired by it and thought he could do better. Either way there is a more
advanced and refined service out there.

------
tiwilliam
Really, really simple to implement on my site, thanks!

------
rakkhi
Absolutely brilliant! Now that is user interface! so easy to use, already
added to my blog and will be adding to my business card. Thanks a lot

~~~
rakkhi
Any chance you could add an option to create a QR code based on a link
entered? e.g. would like to create one for my Linked in page

~~~
icebraining
<http://qrcode.kaywa.com/>

~~~
rakkhi
Thanks a lot

~~~
bauchidgw
or <http://miniqr.com/>

------
elb0w
Anyone else have an issue with this generating a url for ssl? All of mine
resolve to lilqr.com. Http works fine though.

------
abava
check out <http://qr.linkstore.ru> Just copy/paste any text and get mobile
landing page as well QR-code for it

------
abava
what if you simply add .qr to the short URL for the current page? You can post
that link on the page if you want.

------
Podenemos
I don't understand why is it on front-page. Did you just re-invent Google Code
/ Kaywa API or is there something I'm missing?

------
kasmura
javascript:document.write('<img
src="[http://lilqr.com/qr>](http://lilqr.com/qr>))

;)

~~~
spicyj
What?

------
alvivar
awesome! so easy to use...

------
discover
Brilliant stuff there sisvash! Grab a proper short url and you're golden.

I see QR codes really taking off this year and next.

------
socialmediaking
My company uses QR code demonstrations and giveaways to get clients, this
might just come in handy for us. Thank you.

ps if anyone out there is interested in selling mobile websites for us,
typical commission is around $300 and you do not need to know any coding.
please contact me on skype or jobs@sanfranciscomobilewebsites.com

~~~
socialmediaking
since i see people asking how this can be useful, think about putting this on
a coupon page. people are at their computer looking at the coupons before they
visit a business. they simply scan the code and it brings up a mobile version
with which they can use to redeem the coupon when they go to the business.

