Talk:Foxmarks: Frequently Asked Questions
From Foxmarks Wiki
Strange error
I am tring to sync up with the server on a new machine and I get a strange error when I both run the wizard and/or try to do a manual download: CopyResource: Found no type associated with rdf:#$TYQdX2
Any idea whats up with this error and how I can get around? Using FireFox 1.5.0.1
- From what we can tell, it looks like you resolved this problem yourself. If that's not the case, please mail us, including your username, and we'll try to help. --Todd 14:03, 24 March 2006 (EST)
how to delete the bookmarks
Hi, i've found that the plugin will be not able to syncronaze correctly the bookmarks if I start with two different bookmarks set.
An idea to fix immediatly the problem is to add a button I could use to remove all the remote bookmarks, after this operation I will insert it again.
If you have other solutions I'll appreciate it very much.
Regards, Maurizio
Accessing Bookmarks Remotely
An anonymous user wrote on the FAQ page:
- Earlier versions of the software used to have a place where you could manually enter some XML tags which would be stored at the beginning of the XML file saved on the server, so that when you point your browser to the stored XML file, it would use a stylesheet to transform the raw list of items into a nice-looking web page with clickable links. This feature was removed, although it's rather interesting that this functionality (being able to access your stored bookmarks from other browsers) is still available if you're willing to sign up for their service.
- You must be talking about some other software, as this has never been part of Foxmarks. --Todd 03:15, 11 December 2006 (EST)
What happens to my existing bookmarks when I install Foxmarks? Will my bookmarks get overwritten?
Abstract: From my experience, this paragraph needs to get revised. It does not reflect what's really going on when Foxmarks is installed on multiple computers with similar (but different) bookmark sets. Initial synchronisation of bookmarks on different computers needs improvement.
Environment: I am using Foxmarks on my own ftp server. I installed Foxmarks 0.84 on two computers disabling Automatic Synchronization to ease replaying the steps.
Description: When installing Foxmarks on the first computer, it created the master set foxmarks.xml. After I installed Foxmarks on the second computer, pressing Synchronize Now opened the following pop up window:
This appears to be the first time synchronizing. A remote synchronization file already exists. Do you want to use the local or remote file as the master? [ ] Merge Contents <Local> <Cancel> <Remote>
(hint for revision: this dialoge is not really matching the three alternatives in the FAQ paragraph.) I checked Merge Contents and clicked on Remote. After synchronizing was finished, I clicked Synchronize Now on the first computer. What happened was that basically the bookmarks of the second computer took over. I did not seem like merging took place. It rather looks like overwriting.
Then I resetted the configuration (i.e. restored old bookmarks, delete Foxmarks configuration, deleted foxmarks.xml). I tried the same as above but this time (on the second computer) I clicked Local instead. After synchronizing was finished, I clicked Sync Now on the first computer and a window popped up, telling me that "Foxmarks has detected that you have uploaded a sync file from another computer to the server" and suggested merging. So I clicked on the button Merge but again I bascially ended up with the bookmarks of the second computer.
How do I join different bookmark sets across several computers?
Added: MergeTestCase
-- Kabsi 17:00, 10 February 2007 (EST)
screenshots of the bookmarks
Please include in your good soft supporting the screen shots of the site pages
Security
I haven't found the question I am looking for. What are the security protections or guarantees from Foxmark that one's bookmark profile is secure from snooping from the outside? Particularly the government. Recall the issues of snooping and data-mining with Google inquiries creating a database on users.
Interested in using this program...
Comment from a Foxmarks user: I've setup foxmarks to use my own WebDAV server via https (using my own ssl certificate). That should take care of information leaks along the way and at the server side. I havn't fired up wireshark yet to check if foxmarks only connects to my server, though. If anybody has, please let us know.
Is encryption supported? If not currently, are there future plans for it?
Is this subject line above on the FAQ article page still relevant? I see there is an encryption option in Foxmarks. --quatermass 09:42, 23 October 2007 (UTC)
- Thanks for pointing out the lack of clarity in that entry; I've gone ahead and updated it to differentiate between the encryption of data in transit versus encryption of the data on the server (the former being supported presently, the latter not yet). —Foxworth 17:24, 23 October 2007 (UTC)
- I think this subject is still relevant as I think that encryption to store data on the server is really important. I have Foxmarks but never sync my bookmarks because the server storage is not secured. When do you think to implement it? --MaGrandMereChinoise 15:28, 4 November 2008 (UTC)
- There are no plans currently for server-side encryption of bookmark data, though password data is completely encrypted before storage on the Foxmarks server. —Foxworth 17:20, 5 November 2008 (UTC)
proxy issues with 'own server' SSL connections
I notice that the issue with own server bookmarks syncing via a proxy is only an issue when using SSL. It seems to incorrectly send the username has the hostname (i.e. for https://username@example.com it'll try to CONNECT username rather than CONNECT example.com)
I've temporarily got round this by setting up the apache user to be the same as my hostname! (i.e. https://example.com@example.com) --Geordieboozer 12:35, 8 December 2009 (UTC)
View self-hosted foxmarks.json files online
If you're hosting your own foxmarks webdav server, you can view your bookmarks online at a url with the following python script. This comes in handy if you have different bookmark profiles, or if you're on somebody else's computer.
Requirements
- Ensure you webserver can run Python, and download the simplejson module. (Link in script.)
- Put your Foxmarks files' URLs in the urls tuple in the script. (Replace "user" and "pwd" with your username and password if necessary.)
- For convenience, if you want this to be the index page, change .htaccess to include "DirectoryIndex index.py"
#!/usr/bin/python
# index.py by David Blume
# This script reads foxmarks.json files and prints links out.
import urllib
import simplejson # http://www.undefined.org/python/
import bisect
urls = ( ('Home Computer', r'http://user:pwd@url.com/fm/foxmarks.json'),
('Work Computer', r'http://user:pwd@url.com/fmw/foxmarks.json')
)
def do_insert(folders, command):
if 'nid' in command:
args = command['args']
if 'ntype' in args:
if args['ntype'] == 'folder':
my_folder = []
folders[command['nid']] = my_folder
if command['nid'] != 'ROOT':
parent = folders[args['pnid']]
bisect.insort(parent, (command['nid'], args['name'], my_folder))
elif args['ntype'] == 'separator':
parent = folders[args['pnid']]
parent.append((command['nid'], '---'))
else: # 'bookmark'
parent = folders[args['pnid']]
parent.append((command['nid'], '<a href="%s">%s</a>' % (args['url'], args['name'])))
def print_folders(folders, indent):
for item in folders:
print '%s%s' % (' '*(indent * 4), item[1].encode('iso-8859-1', 'replace'))
if len(item) > 2:
print_folders(item[2], indent + 1)
if __name__=='__main__':
print "Content-type: text/html; charset=ISO-8859-1\n\n"
print '<pre>'
for url in urls:
print '<h2>%s</h2>' % url[0]
sock = urllib.urlopen(url[1])
json = simplejson.load(sock)
sock.close()
folders = {}
for command in json[u'commands']:
do_insert(folders, command)
print_folders(folders['ROOT'], 0)
print '</pre>'
If you want to generate a styled HTML with interactive folders, you can try fox2html, a more elaborate python script partly based on the code above.
View self-hosted foxmarks.json files online - iPhone friendly
If you're hosting your own foxmarks webdav server, you can view your bookmarks online at a url with the following php script. This comes in handy if you're on somebody else's computer or to view your bookmarks on a iPhone. The layout is in iPhone style (see http://www.inf.unibz.it/~franconi/images/iPhone-Foxmarks.jpg ).
Requirements
- Ensure you webserver can run php.
- Put your Foxmarks files' name in the script. The script should be in the same filesystem as the WebDAV.
- You need two icon files: one roundarrow and one iPhone desktop icon; the roundarrow could be, eg: http://images.google.it/images?imgsz=icon&q=roundarrow
- Below are the index.php and the foxmarks.css files.
File index.php :
<?php
/* Reads Firefox bookmarks from foxmarks.json and displays it as HTML.
* Created by Stefan Macke, modified by Enrico Franconi <franconi@gmail.com>
*/
$foxmarksFile = "foxmarks.json";
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="viewport"
content="width=device-width; initial-scale=1.0;
maximum-scale=1.0; user-scalable=0;" />
<link rel="apple-touch-icon" href="ff_icon.png"/>
<title>Foxmarks Bookmarks</title>
<link rel="stylesheet" type="text/css" media="all" href="foxmarks.css" />
<script type='text/javascript'>
function toggleFolderView (szDivID) {
var obj = document.layers ? document.layers['folder'+szDivID] : document.getElementById ? document.getElementById('folder'+szDivID).style : document.all['folder'+szDivID].style;
obj.display = (obj.display == 'block' ? 'none' : 'block');
var obj_title = document.layers ? document.layers['foldertitle'+szDivID] : document.getElementById ? document.getElementById('foldertitle'+szDivID).style : document.all['foldertitle'+szDivID].style;
obj_title.backgroundImage = (obj_title.backgroundImage == "url(roundarrow_icon.png)" ? "url(roundarrow_icon.png)" : "url(roundarrow_icon.png)");
}
</script>
</head>
<body>
<?php
$content = file_get_contents($foxmarksFile);
$json = json_decode($content);
if (($json != null) && ($json->commands != null))
{
$nodes = array();
foreach ($json->commands as $node)
$nodes[] = $node;
$tree = array();
createTree($tree, $nodes, "ROOT");
printTree($tree, 0);
}
function createTree(&$tree, $nodes, $rootNodeId)
{
for ($i = 0; $i < count($nodes); $i++)
{
if ($nodes[$i]->args->pnid == $rootNodeId)
{
$id = $nodes[$i]->nid;
$type = $nodes[$i]->args->ntype;
$name = $nodes[$i]->args->name;
switch ($type)
{
case "folder":
$folder = array("id" => $id, "type" => $type, "name" => $name, "children" => array());
createTree($folder['children'], $nodes, $id);
$tree[] = $folder;
break;
case "bookmark":
$url = $nodes[$i]->args->url;
$icon = "";
$tree[] = array("id" => $id, "type" => $type, "name" => $name, "url" => $url, "icon" => $icon);
break;
case "separator":
$tree[] = array("id" => $id, "type" => $type, "name" => "", "url" => "", "icon" => "");
break;
default:
break;
}
}
}
}
function printTree($tree, $indent, $folderId = "")
{
echo str_repeat("\t", $indent) . "<ul";
if ($folderId != "")
{
echo ' id="folder' . $folderId . '"';
}
else
{
echo ' id="root"';
}
echo ">\n";
if(count($tree) == 0){
echo '<li class="empty">(empty)</li>'."\n";
}
foreach ($tree as $node)
{
switch ($node['type'])
{
case "folder":
echo str_repeat("\t", $indent + 1) . '<li class="folder" id="foldertitle' . $node['id'] . '"><a href="JavaScript:toggleFolderView(\'' . $node['id'] . '\')">' . htmlspecialchars($node['name']) . "</a>\n";
printTree($node['children'], $indent + 1, $node['id']);
echo str_repeat("\t", $indent + 1) . "</li><!-- " . $node['name'] . "-->\n";
break;
case "bookmark":
$name = htmlspecialchars($node['name']);
$url = preg_replace("#&#msi", "&", $node['url']);
$name = trim($name) != "" ? $name : $url;
echo str_repeat("\t", $indent + 1) . '<li class="bookmark"><a href="' . $url . '" title="' . $name . '" target="_blank">• ' . $name . "</a></li>\n";
break;
case "separator":
echo str_repeat("\t", $indent + 1) . '<li class="separator"></li>' . "\n";
break;
default:
break;
}
}
echo str_repeat("\t", $indent) . "</ul>\n";
}
?>
</body>
</html>
File: foxmarks.css :
body {
margin: 0;
font-family: Helvetica;
background: #FFFFFF;
color: #000000;
overflow-x: hidden;
-webkit-user-select: none;
-webkit-text-size-adjust: none;
}
body > .toolbar {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
li {
position: relative;
margin: 0;
border-bottom: 1px solid #E0E0E0;
padding: 10px 0 10px 0px;
font-size: 20px;
font-weight: bold;
list-style: none;
}
li.folder {
background: #fff url(roundarrow.png) top left no-repeat;
}
li.folder a {
font-family: Helvetica;
font-size: 20px;
font-weight: bold;
padding-left: 36px;
color: #000;
display: block;
text-decoration: none;
color: inherit;
}
li.bookmark {
padding-left: 0px;
}
li.bookmark a {
font-family: Helvetica;
font-size: 18px;
font-weight: normal;
font-color: blue;
display: block;
text-decoration: none;
color: inherit;
padding-left: 5px;
padding-right: 20px;
background: url(listArrow.png) no-repeat right center;
}
li.separator {
margin: 5px 0 5px 0;
padding: 5px 0 5px 0;
background: lightgray;
}
li.empty {
color: #999;
}
a:hover {
}
a {
text-decoration: none;
}
ul {
display: none;
padding: 0.2em;
border: 1px solid #aaa;
margin: 0.2em;
list-style-type: none;
}
ul#root {
display: block;
border: 0;
}
#preloader {
display: none;
background-image: url(listArrow.png), url(roundarrow.png);
}
Feature Requests
Put your feature requests here.
- Foxmarks icon in the status bar should display list of items(bookmarks+passwords) to be synchronized.
- After every synchronization, foxmarks icon should display list of synchronized items.
- Ability to undo last synchronization.
- Actually, ideas and suggestions should be posted at http://getsatisfaction.com/foxmarks --Foxworth 16:02, 2 December 2008 (UTC)
Moving forward...
Moving forward can "Moving forward" be replaced with "In future" in the Can I use Foxmarks with my own server? section. Please.
- Moving forward, FTP will probably not be so well supported, as it's just a more limited server.
+ In future, FTP will probably not be so well supported, as it's just a more limited server.
