Archive for November, 2006

AJAX Grocery List Manager

Monday, November 27th, 2006

Here’s an idea I’ve had for an AJAX web application for a while, but have never actually got around to implementing yet. It’s pretty simple. My hope is that someone makes something like this so I don’t have to. There’s a lot of other stuff I’m working on, and this seems so simple, yet so hard to get perfect because this is competing with pen and paper, and pen and paper isn’t THAT bad for making grocery lists.

What I’m looking for is an application which manages my grocery list. The main point of it, is to remember what I usually buy, and have that be the default list for the next time I go shopping. From there, I should be able to add/edit/delete items. I should be able to print the list and/or send it to my cell phone or PDA somehow. There… that’s the basics.

A few other non-essential features come to mind with this grocery list manager. When giving my grocery list to someone else so that they can shop for me, they will need to know specifically which items I prefer. For example, below is a mapping from what I should be able to type and what should show up on the other person’s list based on what I usually buy. If I have to type this in the first time, no big deal, its a one time thing unless you want to change something.

milk => 1 Gallon Skim Milk
deli meat => Plumrose brand sliced turkey and ham
salad => 2 bags of Dole Greener Selection salad
carrots => large bag of Bolthouse Farms Baby-Cut Carrots
cereal => Granola with rasins, Basic 4
pasta sauce => Ragu Super Chunky Mushroom

So, if an entire house (ours being an example with 7 guys) wants to put their lists up on the site, people won’t have to go shopping as much because when someone goes, they can just pull up everyone’s individual lists and buy everything. When it aggregates these lists it should be able to indicate who wants what in order to keep track of money if its not all coming from the pot.

I’m thinking that the grocery list should have categories organized similarly to how a real grocery store is organized so that when you go to the store, items near each other in the store are near each other on your list. It should be able to tell you which isles you need to go down and which you can skip, but this may require some information on the layout of the specific store. A map of the store itself and where you can find everything is another feature which may be useful.

Also, it would be nice if the list knew how often you needed things, and could suggest things based on when you actually need them. I suppose it could make intelligent guesses based on how often you put things on your list.

Blog Spam

Thursday, November 9th, 2006

Before I implemented a blog spam blocker… basically asking comment writers to type my name into a box, I got a ton of blog spam. I took a look at it one day, and noticed some interesting phrases that the spam used. I’ll let you decide what they mean… Leave (real) comments in the comments section.Here ya go:

Pants are now available in all browsers!

I just don’t have anything to say right now.

Your site is very cognitive. I think you will have good future.:)

Move the truck! Theyre gonna draw a bead on you!

Captain! Get your men on this artillery and blow that truck to Kingdom on line casino.

Cool guestbook, interesting information… Keep it UP. excellent site i really like your stuff.

Pretty much nothing going on recently. Ive just been letting everything wash over me recently. I havent been up to much recently. My lifes been completely dull. Not much on my mind to speak of, but what can I say?

Very good site. Thank you!

Ive pretty much been doing nothing to speak of. My lifes been bland these days. I havent been up to much. I feel like a void.

I just dont have anything to say lately. I cant be bothered with anything lately. Today was a total loss, but shrug. Its not important.

I havent gotten much done for a while. Shrug. Maybe tomorrow. My mind is like an empty room. Ive just been hanging out doing nothing, but whatever.

Great guestbook! Wonderful artwork!

Ive just been sitting around not getting anything done, not that it matters. I havent been up to anything these days. Shrug.

Very good site. Thanks for author!

Excellent site, added to favorites!!

Best site I see. Thanks.

Hello Jane, great site!

Not much on my mind today. Ive just been hanging out not getting anything done, but maybe tomorrow. Nothing seems worth thinking about. Today was a total loss. I havent gotten much done lately. I just dont have much to say lately.

My mind is like a bunch of nothing. Today was a total loss. Not much on my mind lately. I havent gotten much done today, not that it matters. Shrug. More or less nothing seems worth doing.

Umich Cosign… A Conversation

Thursday, November 9th, 2006

So, one of my classmates a couple semesters ago IMed me today, and we had the following conversation about the University of Michigan‘s Cosign system (see previous post), and also how to get user information from the umich directory. I thought other people at UofM looking to implement web applications using the uniqname login system, might find this discussion useful.

1:29:54 PM Yaniv: i am hoping for some advice about setting up and using cosign
1:30:23 PM Kyle Mulka: for what purpose?
1:30:30 PM Yaniv: the idea is to have students log into a site with kerberos uniqnames, and be able to submit a vote
1:30:41 PM Kyle Mulka: I ask because if its for a University thing, then you should have the University set it up for you
1:30:53 PM Kyle Mulka: on their servers
1:31:13 PM Yaniv: yeah, i’ve been talking to the UM webmaster team also
1:31:17 PM Kyle Mulka: ITCS is good about setting cosign up on their web servers if you ask them
1:31:23 PM Kyle Mulka: and usually pay them
1:32:07 PM Yaniv: is it possible to set up on an independent server, and communicate with kerberos somehow?
1:32:15 PM Kyle Mulka: yes, it is… but its hard
1:32:21 PM Yaniv: liveugli, for example, is its own domain right?
1:32:42 PM Kyle Mulka: we’ll… you’ll notice that you don’t actually login to the liveugli domain
1:32:50 PM Kyle Mulka: just hosts the front page
1:33:03 PM Kyle Mulka: but… it is possible to use cosign on a non-umich domain
1:33:28 PM Yaniv: but you’d recommend to have itcs host it and they would set up cosign?
1:33:43 PM Kyle Mulka: yes
1:33:51 PM Kyle Mulka: I mean… is there a reason not to go that route?
1:34:07 PM Kyle Mulka: liveugli was able to get cosign setup through the GROCS program
1:34:19 PM Kyle Mulka:
1:34:30 PM Kyle Mulka: we’re considered a “project in residence”
1:34:33 PM Yaniv: the group this project is for already has a webhost from a third party
1:35:11 PM Yaniv: so lets assume that ITCS would host it
1:35:42 PM Yaniv: then with some language, i could say something like:
1:35:58 PM Yaniv: authenticatedUser -> getGraduationYear()
1:36:06 PM Yaniv: and find some attributes about the person?
1:37:14 PM Kyle Mulka: you can query people’s year (Fresh, Soph., Junior, Senior) from the directory
1:37:28 PM Kyle Mulka: all cosign gives you is the uniqname
1:37:43 PM Yaniv: oh i see
1:37:49 PM Yaniv: and which directory are you talking about?
1:37:51 PM Kyle Mulka:
1:37:56 PM Yaniv:
1:38:11 PM Kyle Mulka: yes
1:38:19 PM Yaniv: oh very nice
1:38:24 PM Yaniv: is there an API for that?
1:38:31 PM Kyle Mulka: is just a front end for the LDAP directory
1:38:44 PM Kyle Mulka: LDAP is a standard directory protocal
1:39:03 PM Kyle Mulka: replace my uniqname in that URL with yours…
1:39:13 PM Kyle Mulka:
1:39:21 PM Kyle Mulka: that’s all the info you can pull from the directory…
1:39:34 PM Kyle Mulka: however, not all of it is public… some people have made theirs private
1:39:49 PM Yaniv: right
1:39:59 PM Kyle Mulka:
1:40:13 PM Yaniv: so the umich LDAP server is publicly available?
1:40:28 PM Kyle Mulka: yes
1:41:06 PM Kyle Mulka: here’s the source code for that script if you want to use it
1:41:06 PM Kyle Mulka:
1:41:39 PM Kyle Mulka: you’ll notice the host name for the ldap server:
1:41:40 PM Kyle Mulka:
1:42:40 PM Kyle Mulka: but… when it comes down to it, if you just want to run elections… I would recommend not writing your own program, and using the one MSA, LSA-SG, and UMEC uses
1:42:49 PM Kyle Mulka:
1:43:44 PM Yaniv: right right, i’ve been in contact with their developer about that, we’re trying to arrange something
1:43:59 PM Yaniv: but I wanted to have a sense of what is involved in case that doesn’t work out
1:44:25 PM Kyle Mulka: you have a better chance with that than getting cosign running yourself
1:45:06 PM Kyle Mulka: but… if you want the adventure, feel free to give it a try
1:45:41 PM Kyle Mulka: here’s some of my notes from when I did it a couple years ago
1:45:41 PM Kyle Mulka:
1:45:58 PM Kyle Mulka: and… you’ve probably seen the cosign page
1:45:59 PM Kyle Mulka:
1:46:26 PM Yaniv: suppose i get cosign installed on an independent server, i still have to tell it to communicate with the UM credentials somehow, right?
1:46:37 PM Kyle Mulka: uh… yea…
1:47:00 PM Kyle Mulka: basically, you have to generate a certificate and get it signed by the UM webmasters
1:47:37 PM Kyle Mulka: digital certificate, digitally signed if that wasn’t already clear
1:47:58 PM Yaniv: ok, so in these 10 minutes, i concluded that its much better to have itcs host it
1:48:09 PM Yaniv: and even better to use the existing voting site
1:48:23 PM Kyle Mulka: and… if you do an independent thing, you’ll have to pay for a certificate if you don’t want that annoying box coming up
1:48:33 PM Kyle Mulka: which … costs about $100
1:48:46 PM Yaniv: right, thats true, i forgot about that
1:48:50 PM Yaniv: needs the SSL
1:49:04 PM Kyle Mulka: ssl isn’t actually required though… just recommended
1:49:19 PM Kyle Mulka: liveugli doesn’t use ssl
1:49:31 PM Yaniv: oh.. i see..
1:49:52 PM Kyle Mulka: one reason we don’t use it is because IE would complain on every page load that there were “unsecure” things on the page
1:49:58 PM Kyle Mulka: like… the Google Maps APi
1:50:27 PM Yaniv: yes, that would be annoying
1:50:53 PM Yaniv: ok, well that was very helpful, i do have a much better understanding of the big picture
1:50:58 PM Yaniv: thank you very much
1:51:03 PM Kyle Mulka: you’re welcome
1:51:56 PM Kyle Mulka: I probably should have pointed you to this too…
1:51:57 PM Kyle Mulka:
1:52:09 PM Yaniv: oh and thanks for that php code, i’ll look at it more closely, i’ll let you know if i use it and credit you if i do
1:52:34 PM Kyle Mulka: k, thanks
1:54:01 PM Yaniv: your articles are very good, i should have searched for them :)
1:55:59 PM Kyle Mulka: I appreciate the compliment, thanks
2:02:17 PM Kyle Mulka: Yaniv, do you mind if I post the transcript of this conversation?
2:11:53 PM Yaniv: no, not at all, please do