Register Guidelines E-Books Search Today's Posts Mark Forums Read

Go Back   MobileRead Forums > E-Book Readers > Amazon Kindle > Kindle Developer's Corner

Notices

Reply
 
Thread Tools Search this Thread
Old 05-28-2012, 04:43 PM   #151
eureka
but forgot what it's like
eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.
 
Posts: 741
Karma: 2345678
Join Date: Dec 2011
Location: north (by northwest)
Device: Kindle Touch
Quote:
Originally Posted by ixtab View Post
NO WAY!

Seriously: patches affect the CORE "Operating System" of the Kindle, so they should be well-tested, stable, and without side effects. I really don't want script kiddies releasing some random code which might or might not work (and that is the best case I can imagine).

On a side note, if you're using Eclipse, you don't even have to compile the patches after changing the source code, because Eclipse does it automatically. All you have to do is to scp one file to the device...

That said: Feel free to create a Patch which can load JS/Jython/JRuby or even COBOL/FORTRAN/PROLOG patch definitions
Hm, unexpected reasoning...

But I think I can understand where it's coming from. Yes, random text files as instructions for patching Java part of UI is bad.

However, BeanShell syntax (for script file) has minimal differencies with original Java syntax. So the only difference between script and .class (and the only barrier for script kiddie) will be in invoking javac. It's pretty easy in fact. (But become tedious).

And it's a bit harder to audit random .class files than random text files with scripts.

Anyway, I'm not arguing because of preaching for embedding script engine. Just advocating the devil

Quote:
Originally Posted by knc1 View Post
All *nix (and *nix related) systems have that: it is called a: "package management system".

Often not included (internally) in an embedded system build, but there is 3Gbyte of r/w storage on these things, so plenty of room to put it back in.
Question isn't in form of distribution channel (packages or archives or anything). Question is (or was) in form of distributed product.
eureka is offline   Reply With Quote
Old 05-28-2012, 05:18 PM   #152
ixtab
(offline)
ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.
 
ixtab's Avatar
 
Posts: 2,907
Karma: 6736092
Join Date: Dec 2011
Device: K3, K4, K5, KPW, KPW2
[WiP] Hyphenation

Just a short "Work in Progress" announcement: I'm currently looking into .mobi/.azw hyphenation.

Yes, besides tampering around with the internals of the KT, I'm also actually using it to read books

... and there is one thing that has always seriously bugged me: the page layout. In principle, text is justified... well, except if there are long words. And my native language features a lot of long words, so the result is rather ugly to read on the Kindle.

Interestingly enough, the mobi reader of the Kindle actually does include hyphenation support, but it is deactivated by default, most probably because it's simply buggy.

The screenshot below shows a very, very early development version of an attempt to fix this.

Click image for larger version

Name:	hyphenation-sample.png
Views:	462
Size:	66.8 KB
ID:	87026

Notes:
  • The strange page layout is intended. It is used because it results in a higher amount of hyphenations.
  • The weird hyphenation character ("@" instead of "-") is also intentional, because it eases visual verification and debugging.
  • Hyphenation is completely dumb, at this time. It simply assumes that a word can be "hyphenated" at every character, and does not account for syllables or language. This is why it produces wrong results (obvious from the example, at least for german readers)
  • The green arrows show where hyphenation has kicked in, "correctly" as per the definition above.
  • The red boxes show where line spacing is still wrong. I currently don't know where that comes from, but it's annoying. It might be that the next word is not long enough for hyphenation (improbable), or that the previous word is too short to trigger adjustment/hyphenation (probable). In any case, it's most probably a bug in the reader. I'll look into it later.

As said, this is still under development, and I have no idea when it will be ready to be published, especially because correct hyphenation is language dependent. If you think you can help with this, whether "technically" or "linguistically", all suggestions are really appreciated.

PS: +300 Karma for the first person to comment about the book that the above excerpt is from. And please, don't cheat - either you have actually read the book, and your answer is interesting, or you just googled it up, and your answer is worthless (... but if you already went through the pain of looking it up, then just read it - It's free, it's a classic of literature, and it's really worth reading!) .

Last edited by ixtab; 05-28-2012 at 06:54 PM.
ixtab is offline   Reply With Quote
Old 05-28-2012, 05:42 PM   #153
eureka
but forgot what it's like
eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.
 
Posts: 741
Karma: 2345678
Join Date: Dec 2011
Location: north (by northwest)
Device: Kindle Touch
Quote:
Originally Posted by ixtab View Post
PS: +300 Karma for the first person to comment about the book that the above excerpt is from. And please, don't cheat - either you have actually read the book, and your answer is interesting, or you just googled it up, and your answer is worthless.
да ну нахер ещё бы на китайском книжка была
i.e. a handicap is given to German-speaking users
eureka is offline   Reply With Quote
Old 05-28-2012, 06:14 PM   #154
ixtab
(offline)
ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.
 
ixtab's Avatar
 
Posts: 2,907
Karma: 6736092
Join Date: Dec 2011
Device: K3, K4, K5, KPW, KPW2
Yep, there is indeed a slight "advantage" for germans, because the text was written by some german guy - but it won't ever be chinese, as per your russian suggestion - ma chi se ne frega? À vrai dire, ça ne change rien du tout.

(Oh dear, international forums can get complicated... )

Last edited by ixtab; 05-28-2012 at 06:30 PM.
ixtab is offline   Reply With Quote
Old 05-28-2012, 07:28 PM   #155
alaiksander
Enthusiast
alaiksander began at the beginning.
 
alaiksander's Avatar
 
Posts: 35
Karma: 10
Join Date: Feb 2012
Location: Indonesia
Device: Kindle Touch 5.1.0
Quote:
Originally Posted by ixtab View Post
And read the comment in the file again. The margins are cached by the Kindle, so if you change the setting, you will not see the effect until you switch to another "mode", then back to the one you want.
I did read the note you mentioned, glad it was there. About the 'mode' you mentioned, just how can I enter that mode and test the result of my settings?

Quote:
Originally Posted by ixtab View Post
I'm already doing this, and yes, I will keep doing so.
Glad to read this one
alaiksander is offline   Reply With Quote
Old 05-28-2012, 07:41 PM   #156
ixtab
(offline)
ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.ixtab ought to be getting tired of karma fortunes by now.
 
ixtab's Avatar
 
Posts: 2,907
Karma: 6736092
Join Date: Dec 2011
Device: K3, K4, K5, KPW, KPW2
Quote:
Originally Posted by alaiksander View Post
I did read the note you mentioned, glad it was there. About the 'mode' you mentioned, just how can I enter that mode and test the result of my settings?
Really simple: temporarily change to any other "words per line setting" than what you want, then change back to the one that you really want. See the screenshot below.

Click image for larger version

Name:	screenshot_2012-05-28T23_31_13-0000.png
Views:	390
Size:	44.7 KB
ID:	87037
ixtab is offline   Reply With Quote
Old 05-28-2012, 08:39 PM   #157
alaiksander
Enthusiast
alaiksander began at the beginning.
 
alaiksander's Avatar
 
Posts: 35
Karma: 10
Join Date: Feb 2012
Location: Indonesia
Device: Kindle Touch 5.1.0
Quote:
Originally Posted by ixtab View Post
Really simple: temporarily change to any other "words per line setting" than what you want, then change back to the one that you really want.
I think you should mention this on the hack's post.


Hmm..will there be support for arabic with your hack? currently it displays arabic but doesnt support RTL (on mobi/azw).

for the time and effort to develop the hacks.

Last edited by alaiksander; 05-28-2012 at 09:18 PM.
alaiksander is offline   Reply With Quote
Old 05-29-2012, 12:44 AM   #158
diba
Addict
diba is generous with chocolatediba is generous with chocolatediba is generous with chocolatediba is generous with chocolatediba is generous with chocolatediba is generous with chocolatediba is generous with chocolatediba is generous with chocolatediba is generous with chocolatediba is generous with chocolatediba is generous with chocolate
 
Posts: 396
Karma: 33660
Join Date: Jul 2011
Device: Kindle 3, Kindle 4, Kindle PW, Nexus7 3G
Should be Goethe, have read it in school ages ago. But its too long ago to write something useful about , have to read first again ...

Other possibility is it is a part of the history that led to the findings of the recipe of "Werthers Echte" ;-))))

And I am quite astonished again and again about your work and now as well about your education ..., much broader than usual, Goethe, language skills ...

Last edited by diba; 05-29-2012 at 01:05 AM.
diba is offline   Reply With Quote
Old 05-29-2012, 01:51 AM   #159
morantis
Zealot
morantis ought to be getting tired of karma fortunes by now.morantis ought to be getting tired of karma fortunes by now.morantis ought to be getting tired of karma fortunes by now.morantis ought to be getting tired of karma fortunes by now.morantis ought to be getting tired of karma fortunes by now.morantis ought to be getting tired of karma fortunes by now.morantis ought to be getting tired of karma fortunes by now.morantis ought to be getting tired of karma fortunes by now.morantis ought to be getting tired of karma fortunes by now.morantis ought to be getting tired of karma fortunes by now.morantis ought to be getting tired of karma fortunes by now.
 
Posts: 125
Karma: 769546
Join Date: May 2012
Device: none
I hope you don't get into one of those chess matches with Kindle where they alter the next update to stop your script, so you re-write the scripts and back and forth. We had written a bunch of libraries for Android and I do believe we finally got them to give up on ICS.
morantis is offline   Reply With Quote
Old 05-29-2012, 12:18 PM   #160
yiming
Zealot
yiming is kind to children and small, furry animalsyiming is kind to children and small, furry animalsyiming is kind to children and small, furry animalsyiming is kind to children and small, furry animalsyiming is kind to children and small, furry animalsyiming is kind to children and small, furry animalsyiming is kind to children and small, furry animalsyiming is kind to children and small, furry animalsyiming is kind to children and small, furry animalsyiming is kind to children and small, furry animalsyiming is kind to children and small, furry animals
 
Posts: 127
Karma: 6744
Join Date: Dec 2011
Device: Kindle Touch, PW2, PW5
@ixtab

just want to say that the Margin Patch works perfectly. i could never understand why Amazon sets a big margin of 120 for the "fewest" setting in the first place.

as for the Java hack, the only problem encountered is with Home Screen landscape orientation - the author names are cut off partly.

thank you so much for your great work
yiming is offline   Reply With Quote
Old 05-29-2012, 04:00 PM   #161
IcyVeins
Junior Member
IcyVeins has a complete set of Star Wars action figures.IcyVeins has a complete set of Star Wars action figures.IcyVeins has a complete set of Star Wars action figures.IcyVeins has a complete set of Star Wars action figures.
 
Posts: 3
Karma: 310
Join Date: Dec 2011
Device: Kindle Touch
Quote:
Originally Posted by ixtab View Post
+300 Karma for the first person to comment about the book that the above excerpt is from. And please, don't cheat - either you have actually read the book, and your answer is interesting, or you just googled it up, and your answer is worthless (... but if you already went through the pain of looking it up, then just read it - It's free, it's a classic of literature, and it's really worth reading!) .
It is Goethe´s "Die Leiden des jungen Werther". Read it in school only three years ago
At school it was rather boring because of the exercises ("write a dialogue..."), but defnitely worth reading!

In addition:
Great job, ixtab! Support of hyphenation would be awesome, especially for german texts

Maybe some day I will start developing for kindle touch, but for now... university
IcyVeins is offline   Reply With Quote
Old 05-30-2012, 02:18 AM   #162
eureka
but forgot what it's like
eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.eureka ought to be getting tired of karma fortunes by now.
 
Posts: 741
Karma: 2345678
Join Date: Dec 2011
Location: north (by northwest)
Device: Kindle Touch
@ixtab, can you say how to compile jbpatcher from command-line?

I've cloned Git repo, found that ant build creates jbpatch.jar. But there were two problems. I've solved first of them (created directory lib and coiped there serp.jar). Second one is pretty tough to me: how to compile all .java file into .class files.

The best solution I've came to is:
Code:
CLASSPATH=/usr/share/java/serp.jar:src:$CLASSPATH javac src/**/*.java
But it still didn't compiled all the files. There are ma-a-ny errors:
Spoiler:
Code:
src/com/mobileread/ixtab/jbpatch/bootstrap/PatchingClassLoader.java:19: warning: sun.misc.Resource is internal proprietary API and may be removed in a future release
import sun.misc.Resource;
               ^
src/com/mobileread/ixtab/jbpatch/bootstrap/PatchingClassLoader.java:20: warning: sun.misc.URLClassPath is internal proprietary API and may be removed in a future release
import sun.misc.URLClassPath;
               ^
src/com/mobileread/ixtab/jbpatch/bootstrap/PatchingClassLoader.java:34: warning: sun.misc.URLClassPath is internal proprietary API and may be removed in a future release
	private final URLClassPath ucp;
	              ^
src/com/mobileread/ixtab/jbpatch/bootstrap/PatchingClassLoader.java:146: warning: sun.misc.Resource is internal proprietary API and may be removed in a future release
	private Class defineClass(String name, Resource res) throws IOException {
	                                       ^
src/com/mobileread/ixtab/jbpatch/bootstrap/PatchingClassLoader.java:167: warning: sun.misc.Resource is internal proprietary API and may be removed in a future release
	private void defineOrVerifyPackage(Resource res, URL url, String pkgname)
	                                   ^
src/com/mobileread/ixtab/jbpatch/bootstrap/PatchingClassLoader.java:207: warning: sun.misc.Resource is internal proprietary API and may be removed in a future release
	private Class defineClass(String name, Resource res, URL url)
	                                       ^
src/com/mobileread/ixtab/jbpatch/bootstrap/Stage1.java:3: package org.osgi.framework does not exist
import org.osgi.framework.BundleActivator;
                         ^
src/com/mobileread/ixtab/jbpatch/bootstrap/Stage1.java:4: package org.osgi.framework does not exist
import org.osgi.framework.BundleContext;
                         ^
src/com/mobileread/ixtab/jbpatch/bootstrap/Stage1.java:6: cannot find symbol
symbol: class BundleActivator
public class Stage1 implements BundleActivator {
                               ^
src/com/mobileread/ixtab/jbpatch/bootstrap/Stage1.java:9: cannot find symbol
symbol  : class BundleContext
location: class com.mobileread.ixtab.jbpatch.bootstrap.Stage1
	public void start(BundleContext arg0) throws Exception {
	                  ^
src/com/mobileread/ixtab/jbpatch/bootstrap/Stage1.java:23: cannot find symbol
symbol  : class BundleContext
location: class com.mobileread.ixtab.jbpatch.bootstrap.Stage1
	public void stop(BundleContext arg0) throws Exception {
	                 ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:6: package com.amazon.kindle.util.lipc does not exist
import com.amazon.kindle.util.lipc.LipcEvent;
                                  ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:7: package com.amazon.kindle.util.lipc does not exist
import com.amazon.kindle.util.lipc.LipcEventListener;
                                  ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:8: package com.amazon.kindle.util.lipc does not exist
import com.amazon.kindle.util.lipc.LipcException;
                                  ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:9: package com.amazon.kindle.util.lipc.helper does not exist
import com.amazon.kindle.util.lipc.helper.DelegatingLipcTarget;
                                         ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:21: cannot find symbol
symbol: class DelegatingLipcTarget
public class NoAdsWatchdog extends DelegatingLipcTarget implements
                                   ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:22: cannot find symbol
symbol: class LipcEventListener
		LipcEventListener {
		^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:52: package com.amazon.ebook.util.log does not exist
	private static com.amazon.ebook.util.log.Log amazonLog = null;
	                                        ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:54: package com.amazon.ebook.util.log does not exist
	private static com.amazon.ebook.util.log.Log getAmazonLog() {
	                                        ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:77: cannot find symbol
symbol  : class LipcException
location: class com.mobileread.ixtab.patch.ads.NoAdsWatchdog
	private void checkInitialState() throws LipcException {
	                                        ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:102: cannot find symbol
symbol  : class LipcEvent
location: class com.mobileread.ixtab.patch.ads.NoAdsWatchdog
	public void onLipcEvent(LipcEvent e) {
	                        ^
src/com/mobileread/ixtab/patch/devcert/DevCertInjectPatch.java:17: package com.amazon.kindle.kindlet.internal does not exist
import com.amazon.kindle.kindlet.internal.KindletExecutionException;
                                         ^
src/com/mobileread/ixtab/patch/devcert/DevCertInjectPatch.java:114: cannot find symbol
symbol  : class KindletExecutionException
location: class com.mobileread.ixtab.patch.devcert.DevCertInjectPatch
	private static KindletExecutionException performInstallation() {
	               ^
src/com/mobileread/ixtab/patch/devcert/DevCertInjectPatch.java:150: cannot find symbol
symbol  : class KindletExecutionException
location: class com.mobileread.ixtab.patch.devcert.DevCertInjectPatch
	private static KindletExecutionException buildException(
	               ^
src/com/mobileread/ixtab/patch/LegalIllegalPatch.java:6: package com.amazon.agui.swing does not exist
import com.amazon.agui.swing.ConfirmationDialog;
                            ^
src/com/mobileread/ixtab/patch/LegalIllegalPatch.java:7: package com.amazon.kindle.settings does not exist
import com.amazon.kindle.settings.SettingsBooklet;
                                 ^
src/com/mobileread/ixtab/patch/passwd/PasswordDialog.java:13: package com.amazon.agui.swing does not exist
import com.amazon.agui.swing.ButtonActionDialog;
                            ^
src/com/mobileread/ixtab/patch/passwd/PasswordDialog.java:14: package com.amazon.agui.swing does not exist
import com.amazon.agui.swing.CommandBar;
                            ^
src/com/mobileread/ixtab/patch/passwd/PasswordDialog.java:15: package com.amazon.agui.swing does not exist
import com.amazon.agui.swing.InputDialog;
                            ^
src/com/mobileread/ixtab/patch/passwd/PasswordDialog.java:17: cannot find symbol
symbol: class ButtonActionDialog
public class PasswordDialog extends ButtonActionDialog {
                                    ^
src/com/mobileread/ixtab/patch/passwd/Password.java:5: package com.amazon.ebook.util.lang does not exist
import com.amazon.ebook.util.lang.UUID;
                                 ^
src/com/mobileread/ixtab/patch/passwd/PasswordDialog.java:31: package ButtonActionDialog does not exist
	public static class ButtonAction extends ButtonActionDialog.ButtonAction {
	                                                           ^
src/com/mobileread/ixtab/patch/passwd/PasswordDialog.java:40: package ButtonActionDialog does not exist
	public static class ButtonReference extends ButtonActionDialog.ButtonReference {
	                                                              ^
src/com/mobileread/ixtab/patch/passwd/PasswordDialog.java:101: cannot find symbol
symbol  : class CommandBar
location: class com.mobileread.ixtab.patch.passwd.PasswordDialog.PasswordAdapter
		public PasswordAdapter(Password encrypted, CommandBar commandBar, JTextArea textArea, String confirmName) {
		                                           ^
src/com/mobileread/ixtab/patch/passwd/PasswordDialog.java:110: cannot find symbol
symbol  : class CommandBar
location: class com.mobileread.ixtab.patch.passwd.PasswordDialog.PasswordAdapter
		private JButton findConfirmButton(CommandBar commandBar,
		                                  ^
src/com/mobileread/ixtab/patch/passwd/PasswordPatch.java:16: package com.amazon.agui.swing does not exist
import com.amazon.agui.swing.ConfirmationDialog;
                            ^
src/com/mobileread/ixtab/patch/passwd/PasswordPatch.java:17: package com.amazon.kindle.content.catalog does not exist
import com.amazon.kindle.content.catalog.CatalogEntry;
                                        ^
src/com/mobileread/ixtab/patch/ScrollbarPatch.java:13: package com.amazon.agui.swing does not exist
import com.amazon.agui.swing.PagingContainer;
                            ^
src/com/mobileread/ixtab/jbpatch/bootstrap/PatchingClassLoader.java:68: warning: sun.misc.URLClassPath is internal proprietary API and may be removed in a future release
		ucp = new URLClassPath(urls);
		          ^
src/com/mobileread/ixtab/jbpatch/bootstrap/PatchingClassLoader.java:120: warning: sun.misc.Resource is internal proprietary API and may be removed in a future release
								Resource res = ucp.getResource(path, false);
								^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:47: operator == cannot be applied to com.mobileread.ixtab.patch.ads.NoAdsWatchdog,<nulltype>
		if (instance == null) {
		             ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:58: package com.amazon.ebook.util.log does not exist
					amazonLog = com.amazon.ebook.util.log.Log
					                                     ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:69: cannot find symbol
symbol  : method addLipcEventListener(com.mobileread.ixtab.patch.ads.NoAdsWatchdog)
location: class com.mobileread.ixtab.patch.ads.NoAdsWatchdog
			addLipcEventListener(this);
			^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:71: cannot find symbol
symbol  : class LipcException
location: class com.mobileread.ixtab.patch.ads.NoAdsWatchdog
		} catch (LipcException e) {
		         ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:78: cannot find symbol
symbol  : method getStringProperty(java.lang.String)
location: class com.mobileread.ixtab.patch.ads.NoAdsWatchdog
		String state = getStringProperty(PROPERTY_LOAD);
		               ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:131: cannot find symbol
symbol  : method getStringProperty(java.lang.String)
location: class com.mobileread.ixtab.patch.ads.NoAdsWatchdog.ModuleReplacerTask
				if (getStringProperty(PROPERTY_LOAD).indexOf(MODULE_ADS) != -1) {
				    ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:132: package com.amazon.ebook.util.log does not exist
					com.amazon.ebook.util.log.Log log = getAmazonLog();
					                         ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:133: package com.amazon.kindle.restricted.ad does not exist
					boolean sleeping = com.amazon.kindle.restricted.ad.e.K(log,
					                                                  ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:137: package com.amazon.kindle.restricted.ad does not exist
						com.amazon.kindle.restricted.ad.e.B(log,
						                               ^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:141: cannot find symbol
symbol  : method setProperty(java.lang.String,java.lang.String)
location: class com.mobileread.ixtab.patch.ads.NoAdsWatchdog.ModuleReplacerTask
					setProperty(PROPERTY_LOAD, MODULE_NORMAL);
					^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:142: cannot find symbol
symbol  : method setProperty(java.lang.String,java.lang.String)
location: class com.mobileread.ixtab.patch.ads.NoAdsWatchdog.ModuleReplacerTask
					setProperty(PROPERTY_UNLOAD, MODULE_ADS);
					^
src/com/mobileread/ixtab/patch/ads/NoAdsWatchdog.java:146: package com.amazon.kindle.restricted.ad does not exist
						com.amazon.kindle.restricted.ad.e.D(log,
						                               ^
src/com/mobileread/ixtab/patch/devcert/DevCertInjectPatch.java:94: cannot find symbol
symbol  : class KindletExecutionException
location: class com.mobileread.ixtab.patch.devcert.DevCertInjectPatch
		if (!failedBefore && sourceException instanceof KindletExecutionException) {
		                                                ^
src/com/mobileread/ixtab/patch/devcert/DevCertInjectPatch.java:95: cannot find symbol
symbol  : class KindletExecutionException
location: class com.mobileread.ixtab.patch.devcert.DevCertInjectPatch
			KindletExecutionException ke = (KindletExecutionException) sourceException;
			^
src/com/mobileread/ixtab/patch/devcert/DevCertInjectPatch.java:95: cannot find symbol
symbol  : class KindletExecutionException
location: class com.mobileread.ixtab.patch.devcert.DevCertInjectPatch
			KindletExecutionException ke = (KindletExecutionException) sourceException;
			                                ^
src/com/mobileread/ixtab/patch/devcert/DevCertInjectPatch.java:99: cannot find symbol
symbol  : class KindletExecutionException
location: class com.mobileread.ixtab.patch.devcert.DevCertInjectPatch
				KindletExecutionException returnException = null;
				^
src/com/mobileread/ixtab/patch/devcert/DevCertInjectPatch.java:134: package com.amazon.kindle.kindlet.internal.portability does not exist
			com.amazon.kindle.kindlet.internal.portability.g.d().b().K();
			                                              ^
src/com/mobileread/ixtab/patch/devcert/DevCertInjectPatch.java:153: cannot find symbol
symbol  : class KindletExecutionException
location: class com.mobileread.ixtab.patch.devcert.DevCertInjectPatch
		return new KindletExecutionException(explanation,
		           ^
src/com/mobileread/ixtab/patch/LegalIllegalPatch.java:23: cannot find symbol
symbol  : class SettingsBooklet
location: class com.mobileread.ixtab.patch.LegalIllegalPatch
		c.invokevirtual().setMethod(SettingsBooklet.class.getMethod("getName", new Class[0]));
		                            ^
src/com/mobileread/ixtab/patch/LegalIllegalPatch.java:42: cannot find symbol
symbol  : class ConfirmationDialog
location: class com.mobileread.ixtab.patch.LegalIllegalPatch
		c.invokestatic().setMethod(ConfirmationDialog.class.getMethod("showDialog", new Class[] {String.class, String.class, String.class,String[].class, int[].class}));
		                           ^
src/com/mobileread/ixtab/patch/passwd/PasswordDialog.java:68: cannot find symbol
symbol  : class InputDialog
location: class com.mobileread.ixtab.patch.passwd.PasswordDialog
		InputDialog d = new InputDialog(appid, 1);
		^
src/com/mobileread/ixtab/patch/passwd/PasswordDialog.java:68: cannot find symbol
symbol  : class InputDialog
location: class com.mobileread.ixtab.patch.passwd.PasswordDialog
		InputDialog d = new InputDialog(appid, 1);
		                    ^
src/com/mobileread/ixtab/patch/passwd/PasswordDialog.java:83: cannot find symbol
symbol  : variable InputDialog
location: class com.mobileread.ixtab.patch.passwd.PasswordDialog
		d.setButtonDisablePolicy(InputDialog.DISABLE_IF_EMPTY);
		                         ^
src/com/mobileread/ixtab/patch/passwd/PasswordDialog.java:91: cannot find symbol
symbol  : variable pressedButtonName
location: class com.mobileread.ixtab.patch.passwd.PasswordDialog.ButtonReference
		return cancel.equals(bref.pressedButtonName) ? null : adapter.password;
		                         ^
src/com/mobileread/ixtab/patch/passwd/Password.java:34: cannot find symbol
symbol  : class UUID
location: class com.mobileread.ixtab.patch.passwd.Password
		return MD5.getMd5String(new UUID().toString().getBytes());
		                            ^
src/com/mobileread/ixtab/patch/passwd/PasswordPatch.java:122: cannot find symbol
symbol  : class CatalogEntry
location: class com.mobileread.ixtab.patch.passwd.PasswordPatch
		if (o == null || !(o instanceof CatalogEntry)) {
		                                ^
src/com/mobileread/ixtab/patch/passwd/PasswordPatch.java:126: cannot find symbol
symbol  : class CatalogEntry
location: class com.mobileread.ixtab.patch.passwd.PasswordPatch
		CatalogEntry entry = (CatalogEntry) o;
		^
src/com/mobileread/ixtab/patch/passwd/PasswordPatch.java:126: cannot find symbol
symbol  : class CatalogEntry
location: class com.mobileread.ixtab.patch.passwd.PasswordPatch
		CatalogEntry entry = (CatalogEntry) o;
		                      ^
src/com/mobileread/ixtab/patch/passwd/PasswordPatch.java:140: cannot find symbol
symbol  : class CatalogEntry
location: class com.mobileread.ixtab.patch.passwd.PasswordPatch
		if (o != null && o instanceof CatalogEntry) {
		                              ^
src/com/mobileread/ixtab/patch/passwd/PasswordPatch.java:141: cannot find symbol
symbol  : class CatalogEntry
location: class com.mobileread.ixtab.patch.passwd.PasswordPatch
			CatalogEntry c = (CatalogEntry) o;
			^
src/com/mobileread/ixtab/patch/passwd/PasswordPatch.java:141: cannot find symbol
symbol  : class CatalogEntry
location: class com.mobileread.ixtab.patch.passwd.PasswordPatch
			CatalogEntry c = (CatalogEntry) o;
			                  ^
src/com/mobileread/ixtab/patch/passwd/PasswordPatch.java:176: cannot find symbol
symbol  : variable ConfirmationDialog
location: class com.mobileread.ixtab.patch.passwd.PasswordPatch
				ConfirmationDialog.OK_ONLY_OPTIONS);
				^
src/com/mobileread/ixtab/patch/passwd/PasswordPatch.java:175: cannot find symbol
symbol  : variable ConfirmationDialog
location: class com.mobileread.ixtab.patch.passwd.PasswordPatch
		ConfirmationDialog.showDialog(PasswordDialog.APP_ID, message, title,
		^
src/com/mobileread/ixtab/patch/ScrollbarPatch.java:112: cannot find symbol
symbol  : class PagingContainer
location: class com.mobileread.ixtab.patch.ScrollbarPatch
		PagingContainer target = null;
		^
src/com/mobileread/ixtab/patch/ScrollbarPatch.java:114: cannot find symbol
symbol  : class PagingContainer
location: class com.mobileread.ixtab.patch.ScrollbarPatch
			target = (PagingContainer) ref.get();
			          ^
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
67 errors
8 warnings

Should I copy stock Amazon jars somewhere at my computer and add them to classpath or there is better solution?

I don't know anything about Java (not coding Java at all) I'm compiling jbpatcher on Debian, I've installed serp as package (libserp-java). And I don't need no stinking Eclipse

UPD Found a way. Create a lib directory in root of jbpatcher sources, then put there serp.jar and all JARs from Kindle's /opt/amazon/ebook/lib and /opt/amazon/ebook/booklet (not all of them are strictly needed, but I don't want to check which are and which aren't). Then create a bin directory in root of jbpatcher sources and put there following shell script:
Code:
CPATH="$(find lib -type f -name '*.jar' -print0 2>/dev/null | tr '\0' ':')"
SRC="$(find src -type f -name '*.java' -print0 2>/dev/null | tr '\0' ' ')"

javac \
  -classpath "$CPATH" \
  -sourcepath src \
  -source 1.4 \
  -target 1.4 \
  -d bin -s bin \
  $SRC
To compile, run this shell script, then ant build (while locating in root of jbpatcher sources).

I believe this shell script should be implemented as Ant javac Task. But I don't understand why it wasn't by default. Maybe it shouldn't because of some Java voodoo...

Last edited by eureka; 05-30-2012 at 06:01 AM. Reason: found a way to compile it, yippie ki-yay
eureka is offline   Reply With Quote
Old 05-30-2012, 02:48 AM   #163
Zema
Member
Zema began at the beginning.
 
Posts: 10
Karma: 12
Join Date: May 2012
Device: Kindle Touch
ixtab, I'm very happy with your margin patch, I've been waiting for this solution for ages. The only thing that I'd like to improve is possibility to change top/bottom margins for PDF reader only without changing anything in MOBI reader. Is it possible? The point is that PDF documents usually already have margins, but MOBI files are rendered on the fly and margins are necessary. Finally, changing of margins from menu (launcher) separately for PDF and MOBI readers would be incredibly excellent.

Last edited by Zema; 05-30-2012 at 02:54 AM.
Zema is offline   Reply With Quote
Old 05-30-2012, 08:11 AM   #164
nerduban
Member
nerduban began at the beginning.
 
Posts: 11
Karma: 10
Join Date: Dec 2011
Device: kindle touch 5.1
Thanks for your hard work ixtab, that is a marvelous application. The most useful plugin for me is the margin patch, I'm really grateful that this grave issue has been solved.
nerduban is offline   Reply With Quote
Old 05-30-2012, 11:32 AM   #165
pirl8
Pest
pirl8 ought to be getting tired of karma fortunes by now.pirl8 ought to be getting tired of karma fortunes by now.pirl8 ought to be getting tired of karma fortunes by now.pirl8 ought to be getting tired of karma fortunes by now.pirl8 ought to be getting tired of karma fortunes by now.pirl8 ought to be getting tired of karma fortunes by now.pirl8 ought to be getting tired of karma fortunes by now.pirl8 ought to be getting tired of karma fortunes by now.pirl8 ought to be getting tired of karma fortunes by now.pirl8 ought to be getting tired of karma fortunes by now.pirl8 ought to be getting tired of karma fortunes by now.
 
Posts: 204
Karma: 239254
Join Date: Jan 2012
Location: Italy
Device: KT, PW3
@ixtab

since you're working on hyphens, maybe you could be interested in this.
pirl8 is offline   Reply With Quote
Reply

Tags
jbpatch, kindle touch hacks

Thread Tools Search this Thread
Search this Thread:

Advanced Search

Forum Jump


All times are GMT -4. The time now is 02:35 AM.


MobileRead.com is a privately owned, operated and funded community.