Some comments on my iPhone Comic database project

已查看 13 次
跳至第一个未读帖子

Dr. Sascha Herpers

未读,
2010年6月8日 13:29:372010/6/8
收件人 gcd-...@googlegroups.com
Hi everybody,

Henry proposed that I should tell you about my own little project, which
is based on the gcd database. I am glad he did for a couple of reasons:

1) I wouldn't have sent this mail, because I thouhgt gcd-tech is mainly
for discussing development question concerning the database, website and
so on.
2) My project runs on iPhones. Maybe you own one yourself, so this might
be interesting app for you.
3) I love software development and I love to talk about it. ;)

Since I don't know how to write short mails, I'll give you a summary of
what my project is. Maybe you can skip the rest of the mail.

Summary:
My project is called "iPhone Comic Database" (iCdb) and is based upon
the database dump published on dev.comics.org/data. You can see
screenshots here: http://www.icdbapp.com/screenshots
Its main purpose is to get rid of hand written lists that you carry in
your wallet, that tell you which issues to buy when you are at your
favourite comic store. As you can see on the following screenshot you
can record the number of copies you have of each issue:
http://www.icdbapp.com/media/images/screenshots/issues_fewzero.png
Based on these counts you can filter the issues to show only missing
issues (for example).

For this to work iCdb provides a search screen where you enter the name
of the comic series (or parts of it), e.g. "sandman". You'll get a list
of matching series and pick the one you want and iCdb downloads (most
of) the bibliographic data.

You should go to http://www.icdbapp.comfor a more detailed overview of
the implemented features. Besides, one unique user per day makes my
website feel a little lonesome... ;)

------ end of summary -------

Let me point out one or two more things about iCdb.

This is a rather small application (even though I spent a lot of time
coding it; it's written in objective-c, which is a mixture of plain-c
and smalltalk; you probably have to like that language...took some time
to get used to it). There are still a lot of feature to include into the
app itself, but also on the backend. Right now I have 3 servers (running
on windows + xampp + cygwin). One is the master and the other are kept
in sync with cron jobs, unison and a little php. I will replace those 3
by ubuntu server systems once I have the time.
Other feature to be implemented for iCdb concern additional (but
optional) data to be downloaded for each issue (like descriptions) or
additional data that can be stored by the user (comments, condition of
issues, ...).

One of the features I implemented recently is a search assistent.
Looking at the search requests I noticed that a lot of user are not sure
what they are looking for (even though that sounds a little rediculous).
A good example is the following query: "amazing spider-man volume 2".
Remember that the users are supposed to enter a comic series title (or
parts of it). The problem here is, that "volume 2" doesn't belong to the
title (at least not for spider-man comics).

To overcome this problem I implemented a search assistent, which checks
the number of results for each of the words of the search terms and
their combinations. It returns those subqueries that have at least one
matching series. For the above query the search assistent returns the
subqueries shown here:
http://www.icdbapp.com/media/images/screenshots/searchassistent.png

The code for it is rather efficient: For a query "A B C D" it checks
subqueries "A", "B", "C" and "D". Suppose "C" returns zero series, any
comination containng "C" won't be checked (e.g. "A C", "A C D" and so
on). It then checks combinations containing two words "A B", "A D", "B
D". Suppose only "B D" returns a non-zero result the last more complex
query to check is "A B D" (if I haven't forgotten anything). So my
search assistent will return the list of above subqueries along with the
number of matching series for subqueries which matching series can be
found.
The user taps the entry with the subquery that he regards as the most
appropriate to carry out the search.

I must admit, that this is a solution to a problem that only users of
iCdb might have, because entering search terms on the iPhone's small
virtual keyboard is rather tedious. Using a normal keyboard and a
browser you can probably rephrase search queries fast enough so that you
won't need such an assistent. I could still imagine a feature for the
search result page where you could propose a subquery to the user if he
entered something that didn't produce any result. Something like "Did
you mean 'amazing spider-man'?". In any case I would be happy to post
the code to generate the list of successful subqueries without the need
to fully enumerate all combinations. Just tell me.


Another feature I want to add to the search assistent is a spell
checker, which uses all the words from all comic series as a dictionary.
You won't believe how many searches fail because users don't know how
spell their favourite comics. There are so many users who search for
"xmen" instead of "x-men". My spell checker will be based on
aspell/pspell and will give a list of suggestions for each word that it
considers to be misspelled. (That is another reason why I need to move
to ubuntu, because the support for aspell on windows/xampp isn't very good).

Go here for a short tutorial and some screenshots for the search
assistent: http://www.icdbapp.com/?action=tutorials/searchassistent

(Another of my favourite feature is the cover slideshow, even though
there is a bug: the covers cycle to fast. If you really download iCdb go
here for a bug workaround: http://www.icdbapp.com/b1)

I guess that's about it. If you have questions I would be glad to anwser
them. Feel free to make suggestions about what to change or add to
iCdb. You might not have noticed ;) but I am not a native speaker, so I
am even happy if you find grammer or other mistakes on my website or in
iCdb, but please tell me about it. :)
Contact me at devel...@icdbapp.com, if you would like to become a
beta tester.

And for those of you, who made it through this mail up to this point:
thanks...you are really tough. :)

Best regards,
Sascha


--
_____________________________________________________________

Dr. Sascha Herpers
Brainpower UG (haftungsbeschrï¿œnkt)
Burbacher Str. 2a
50354 Hï¿œrth
Germany

E-Mail: sascha....@icdbapp.com
Tel.: +49 (0) 2233 - 10 02 32
WWW: http://www.icdbapp.com
iTunes: http://itunes.apple.com/en/app/icdb/id350644518?mt=8
iTunes: http://itunes.apple.com/de/app/icdb/id350644518?mt=8
_____________________________________________________________

Alexandros Diamantidis

未读,
2010年6月8日 16:25:432010/6/8
收件人 gcd-...@googlegroups.com
* Dr. Sascha Herpers [2010-06-08 19:29]:

> Henry proposed that I should tell you about my own little project, which

Hi Sascha! Your project looks very nice and useful. Thanks for the
detailed description. Unfortunately I don't have (or plan to get) an
iPhone, but I'm sure you'll get lots of happy users as soon as word of
your app gets around - although it seems like you've got them already ;-)

> One of the features I implemented recently is a search assistent.

[...]


> Another feature I want to add to the search assistent is a spell
> checker, which uses all the words from all comic series as a dictionary.

The new GCD search engine is currently being implemented by Timmy Leahy
using Solr, which seems to support both of these features with little
extra work. I hope we'll have them in the main GCD site when the new
search is finished. I think they're useful both for mobile users and
those using a full keyboard, since it's easy to find yourself not knowing
the exact spelling, especially for creator or character names.

> am even happy if you find grammer or other mistakes on my website or in
> iCdb, but please tell me about it. :)

Your grammar seems fine to me (another non-native English speaker)
although you might want to run a spell-checker over all the website text
since I noticed a couple of typos.

Alexandros

Dr. Sascha Herpers

未读,
2010年6月8日 16:46:242010/6/8
收件人 gcd-...@googlegroups.com
Hi,

> The new GCD search engine is currently being implemented by Timmy Leahy
> using Solr, which seems to support both of these features with little
> extra work. I hope we'll have them in the main GCD site when the new
> search is finished. I think they're useful both for mobile users and
> those using a full keyboard, since it's easy to find yourself not knowing
> the exact spelling, especially for creator or character names.

I marvel at all the fancy technology you use. Even splitting mysql and
apache across two different machines (like you did a couple of weeks
ago, if I remember correctly) is high-tech for me. :)
After all it's a fun project.

> Your grammar seems fine to me (another non-native English speaker)
> although you might want to run a spell-checker over all the website text
> since I noticed a couple of typos.

Oh well...I knew it. That's probably because I like to spent time on
writing code then on writing text. Anybody else? ;)

Thanks for the comments.

Sascha
--
_____________________________________________________________

Dr. Sascha Herpers
Universit�t zu K�ln
Seminar f�r Supply Chain Management und Produktion
Albertus-Magnus-Platz
50923 K�ln

E-Mail: her...@wiso.uni-koeln.de
Tel.: (0221) 4 70 - 37 40
Fax: (0221) 4 70 - 51 40
WWW: http://www.scmp.uni-koeln.de
_____________________________________________________________

Ralf Haring

未读,
2010年6月8日 17:17:002010/6/8
收件人 gcd-tech
On Tue, Jun 8, 2010 at 13:29, Dr. Sascha Herpers
<her...@wiso.uni-koeln.de> wrote:
>
> 1) I wouldn't have sent this mail, because I thouhgt gcd-tech is mainly
> for discussing development question concerning the database, website and
> so on.

Anything tech-related to the GCD is welcome here.

> Summary:
> My project is called "iPhone Comic Database" (iCdb) and is based upon
> the database dump published on dev.comics.org/data. You can see
> screenshots here: http://www.icdbapp.com/screenshots
> Its main purpose is to get rid of hand written lists that you carry in
> your wallet, that tell you which issues to buy when you are at your
> favourite comic store. As you can see on the following screenshot you
> can record the number of copies you have of each issue:
> http://www.icdbapp.com/media/images/screenshots/issues_fewzero.png
> Based on these counts you can filter the issues to show only missing
> issues (for example).

I don't think doublet is the word you're looking for. That is
apparently a 14-17th century men's jacket. :-)
http://en.wikipedia.org/wiki/Doublet_(clothing) I would suggest
"doubles".

> This is a rather small application (even though I spent a lot of time
> coding it; it's written in objective-c, which is a mixture of plain-c
> and smalltalk; you probably have to like that language...took some time
> to get used to it).

Smalltalk definitely takes a bit to wrap your head around if someone
has only ever used C-like languages. One project I worked one had the
main engine written in smalltalk. When the original dev team was
fired, other parts could be picked up relatively easily but the engine
just kind of lingered in the same state until the product died. :-/
iPhone development only being available if you had a Mac was
disappointing when I first got an iPhone and looked into it.

> (Another of my favourite feature is the cover slideshow, even though
> there is a bug: the covers cycle to fast. If you really download iCdb go
> here for a bug workaround: http://www.icdbapp.com/b1)

5 seconds seems fine to me.

> I guess that's about it. If you have questions I would be glad to anwser
>  them. Feel free to make suggestions about what to change or add to
> iCdb. You might not have noticed ;) but I am not a native speaker, so I
> am even happy if you find grammer or other mistakes on my website or in
> iCdb, but please tell me about it. :)

On the faq page of the website, "there spare time" should be "their
spare time". A couple suggestions about the app itself:
-swipe series name to bring up the delete button. took me a few
seconds to figure out to go to edit first.
-delete entire publishers instead of going through each series one by one
-inside an issue, swipe left and right to next/prev issue instead of
having the up/down buttons. initially I thought those would scroll
up/down between stories faster

The interface from publishers down the issue data is very smooth.
Large search results are able to be nicely managed quickly by the
different groupings.

The $8 pricetag for storing more than 3 series might be a bit high. A
free trial version is good. Most apps seems to be priced $1-3, in my
experience. The ones that are more than $5 are more likely to be games
or power user apps like (Sling, TomTom, etc.)

Very cool overall!

-Ralf

Alexandros Diamantidis

未读,
2010年6月8日 17:37:552010/6/8
收件人 gcd-...@googlegroups.com
* Dr. Sascha Herpers [2010-06-08 22:46]:

> I marvel at all the fancy technology you use.

You know, for any new fancy technology there is a learning curve in the
beginning, but as soon as you get up to speed, you get to build
on the work of others and make great progress with much less work.
For serious work, it really helps - and GCD being fun doesn't mean
it's not serious work!

> Even splitting mysql and apache across two different machines (like
> you did a couple of weeks ago, if I remember correctly) is high-tech
> for me. :)

That's not hard! Since both MySQL and Apache are stand-alone servers,
it doesn't take any more work to run them on different machines, and can
help a lot performance-wise when you start getting any significant
traffic.

You mentioned you're currently using Windows servers, so I think that's
part of the problem. Under Linux or BSD, it's very easy to install
specific software packages and keep them up-to-date, since they're
provided as system packages - you don't have to install and upgrade them
by hand. Of course it's easy for me to say that, since I have much more
experience with Linux than Windows, but I think, all things considered,
it's easy to gain basic proficiency in system administration under
Linux, given a little guidance and help when you're starting.

Alexandros

Dr. Sascha Herpers

未读,
2010年6月9日 00:48:002010/6/9
收件人 gcd-...@googlegroups.com
Hi,

> Anything tech-related to the GCD is welcome here.

ok, I'll post updates on iCdb once in a while (only the big ones).

> I don't think doublet is the word you're looking for. That is
> apparently a 14-17th century men's jacket. :-)
> http://en.wikipedia.org/wiki/Doublet_(clothing) I would suggest
> "doubles".

Will be changed in the next release.

> Smalltalk definitely takes a bit to wrap your head around if someone
> has only ever used C-like languages. One project I worked one had the
> main engine written in smalltalk. When the original dev team was
> fired, other parts could be picked up relatively easily but the engine
> just kind of lingered in the same state until the product died. :-/
> iPhone development only being available if you had a Mac was
> disappointing when I first got an iPhone and looked into it.

Smalltalk by itself isn't that bad. The problem with objective-c is that
they mix two totally different languages. Before making a function call
you have to whether it's from plain-c or from smalltalk, because that
decides which syntax to use. Usually it doesn't take much to learn a new
programming language, but objective-c was kind of a challenge.

> 5 seconds seems fine to me.

5 seconds for the slideshow is perfect. On some iPhones my app fails to
load the default value from the user's settings. In that case it
defaults to 0 seconds. That is to short. :)

> On the faq page of the website, "there spare time" should be "their
> spare time". A couple suggestions about the app itself:

Stupid mistake. Fixed it.

> -swipe series name to bring up the delete button. took me a few
> seconds to figure out to go to edit first.

Added it to my todo list.

> -delete entire publishers instead of going through each series one by one

That's a good one, too.

> -inside an issue, swipe left and right to next/prev issue instead of
> having the up/down buttons. initially I thought those would scroll
> up/down between stories faster

That won't be a problem, even though I don't think I can do this with
animation. I planned the same thing for the cover view.

> The interface from publishers down the issue data is very smooth.
> Large search results are able to be nicely managed quickly by the
> different groupings.

That is already on my list for the next release. Especially for series
like batman grouping is a must-have.

> The $8 pricetag for storing more than 3 series might be a bit high. A
> free trial version is good. Most apps seems to be priced $1-3, in my
> experience. The ones that are more than $5 are more likely to be games
> or power user apps like (Sling, TomTom, etc.)

Oh well...yes...I guess you are right. I will reduce the price next
week, even though I feel sorry for those who already bought it for the
current price.

> Very cool overall!
Thanks and thanks for the detailed review.

Best Regards,
Sascha

--
_____________________________________________________________

Dr. Sascha Herpers
Brainpower UG (haftungsbeschr�nkt)
Burbacher Str. 2a
50354 H�rth

Dr. Sascha Herpers

未读,
2010年6月9日 01:50:272010/6/9
收件人 gcd-...@googlegroups.com
Hi,

> You know, for any new fancy technology there is a learning curve in the
> beginning, but as soon as you get up to speed, you get to build
> on the work of others and make great progress with much less work.
of course. Right now I spend the little time I have implementing
features, fixing bugs, working on the website and promoting my app.
Introducing new technology for feature that already work won't rank very
high on my priority list. :) But I get the point and you are right.

> For serious work, it really helps - and GCD being fun doesn't mean
> it's not serious work!

Oh, I hope you didn't think I called the GCD a fun project.
I wanted to say, that iCdb is a fun project.

> That's not hard! Since both MySQL and Apache are stand-alone servers,
> it doesn't take any more work to run them on different machines, and can
> help a lot performance-wise when you start getting any significant
> traffic.

Yes, that is already on my list. MySQL can sync databases. That is
something I would love to use as well. Right now I don't have the
traffic to make this a midium-priority task.

> You mentioned you're currently using Windows servers, so I think that's
> part of the problem. Under Linux or BSD, it's very easy to install
> specific software packages and keep them up-to-date, since they're
> provided as system packages - you don't have to install and upgrade them
> by hand. Of course it's easy for me to say that, since I have much more
> experience with Linux than Windows, but I think, all things considered,
> it's easy to gain basic proficiency in system administration under
> Linux, given a little guidance and help when you're starting.

You are right.
I tried to install munin on xampp and gave up after a while. On my new
ubuntu server it was just a matter of calling apt-get with the right
parameters. Great! Makes things so much easier.

Thanks,

回复全部
回复作者
转发
0 个新帖子