Jophpic.com is a tool (one of the 5 sample websites, also located at jophpic.jophr.net) which lets you organize and share your image folders. It makes use of 2 open source third-party tools: an embedded web server called Jetty, and a text search engine called Lucene. Users must first launch the Jophpic web launcher and then point their web browsers to http://localhost:6886/. All image files are stored on the user's local hard drive. Jophpic makes use of a markup language (simplified HTML) called Lystagger.
Qpic Folders
A qpic is a queue of image files contained in a folder, and qpic folders can contain other qpic folders recursively. Newly added image files go to the head of the queue in each qpic. Every qpic contains a special queue which is a subset of the main queue of images. Both the main and the special queues support image reordering commands: head, tail, move left, move right. The head of the queue is the leftmost image in the queue. Every qpic has 2 yes/no flags: the H-flag and the X-flag. H stands for hidden (not shared publicly) and the X-flag warns users that its images are such that if the user is at work or sitting at a public computer, then proceed with caution. By default, qpics having an X-flag value of yes are hidden from the user.
Business Model
Jophpic no-name users pay no fees. Jophpic members must be Jophrium members. All users can share qpics with other users by emailing links. All users can perform text-based searches, based on image captions, slide panels, and qpic names/descriptions. All users can browse non-hidden qpics of members without restrictions. All images contained in qpics of no-name users can be browsed, but any sub-qpics of a given no-name user's qpic are not displayed. All search results returned belonging to no-name users are stripped of all text: image captions, qpic names/descriptions, and user names. All of that same text information, including user names, is not displayed when browsing images in any qpic of a no-name user.
Commands
- Enter - down a level
- Up Arrow - up a level
- Left/Right Arrow - previous/next
- qpic/screen/image/slide
- Down Arrow - toggle main/special
- Ctrl+Down Arrow - toggle slide mode
- 1 - first
- 0 - last
- Shift+Up Arrow - move to top
- Shift+Left Arrow - move left
- Shift+Right Arrow - move right
- Shift+Down Arrow - move to bottom
- L - like image: make it special
- U - undo L command
- I - insert image/qpic
- D - delete (slide mode)
- Ctrl+D - delete image/qpic
- Ctrl+X - cut qpic
- Ctrl+C - copy qpic
- Ctrl+V - paste qpic
- Ctrl+N - new qpic
- Ctrl+R - rename qpic
- J - justify (left, center, right)
- B - bookmark qpic/access bookmarks
- H - hidden qpic on/off
- X - X-flag qpic on/off
- Y - sync qpic
- S - search
- Q - quit
- F1 - cycle: menu/help/normal
- F11 - fill screen
- [x] - close menu bar
Folders Mode
Displays parent folder name followed by an indented list of folder names. Current folder is highlighted (enclosed in square brackets). Folder properties: name, description, img-flag, H-flag, X-flag. If img-flag is false, folder contains no images, only other folders. By convention, images stored in non-image folders reside in a sub-folder called "$".
Tiles Mode
Whenever the user is in Folders Mode and presses Enter when an image folder is highlighted, the current mode becomes Tiles Mode. The display is divided into 3 rows of equal height (or n rows where n > 1). Each row contains images. All portrait-mode images are of equal height but of varying widths. Every landscape-mode image is the same width as the height of the row which contains that image. All images are separated by a white, one-pixel gap (user may increase pixel count of gap, globally). Clicking on an image will display it in Image Mode. Pressing Up Arrow makes the current mode become Folders Mode.
Image Mode
Single image is displayed, expanded by the maximum amount available on the user's display. Pressing L or U modifies special flag if needed and the current mode becomes Tiles Mode. Pressing Up Arrow makes the current mode become Tiles Mode. Pressing Enter enables editing of one-line caption, and/or toggling display of image captions, and/or toggling the filtering out of images which lack captions. If this image is accompanied by a link to a video, click on play to follow that link under a new browser tab. The image-view count of the user who is the image owner is incremented, if different from the user viewing the image.
Slide Mode
Press Ctrl+Down Arrow to toggle between Tiles Mode and Slide Mode. Slide Mode displays between 1 and 3 images per slide. Each slide tries to fill the entire display. Click on an image in slide mode to enter image mode, then press D to delete the image from the slide. In slide mode, press I to insert an image. The next time the I command is used in image mode, the image is inserted into the slide. Various image arrangements (side-by-side, stacked, or some combination) are used automatically, depending on the aspect ratios of the images on the slide. New slides can only be inserted at the head of the slide list. One of the panels on a given slide (which contains 1 to 3 panels) can contain Lystagger code instead of an image.
Image Folder Sharing
Google Drive (or possibly Dropbox) will be used as the image sharing platform. Users can use Jophpic to keep track of their favorite image-sharing users and the names of their favorite image folder names shared by those users.
Bookmark/Insert Commands
The Insert command displays the select-user web page. After selecting a user, the Local mode switch is off. Further Insert commands insert images/folders into the current local folder, and allow the user to change the current local folder. The Quit command sets the Local mode switch back to on. The Bookmark command bookmarks the current folder when Local mode is off (enabling bookmark parent list selection), and accesses the bookmark tree when Local mode is on.
Searching
Popularity is used in searches: how many times an image/folder has been viewed, downloaded, or bookmarked. Searching is used to search for users and the images held by those users. Text searches involve qpic names/descriptions, image captions, and slide panels.
Image File Names
Newly added image files can have arbitrary file names. After the sync command is used, newly added image files (except for the least recently added image, which is manually appended with .1 when saved by the user) are renamed to $QNNNN.ext, where ext is a graphics file type such as PNG or JPEG and NNNN is a 4-digit number. Clock arithmetic is used, where 9999 corresponds to -1, 9998 corresponds to -2, and so on. Usually, the head of the queue is positive, and the tail of the queue is 0 or negative. No qpic can have more than 10,000 image files.
The sync command programmatically removes the .1 extension of the least recently added image. When the user goes to add the next batch of newly added images, and tries to save the same image file F that originally had the .1 extension, it will already exist in the current qpic. This will let the user know when to stop adding images. The next time the sync command is performed, image file F is renamed to have the same $QNNNN format as all of the older image files in the current qpic.