Tim Moores

Saloon Keeper
+ Follow
since Sep 21, 2011
Cows and Likes
Total received
In last 30 days
Total given
Total received
Received in last 30 days
Total given
Given in last 30 days
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Tim Moores

You can store files in a DB, although I prefer to store them as files in the file system. Depends a bit on how you need to process them, how many there are and how big they are.
What you're doing in lines 28 to 34 is indeed treating the file as text - that works for HTML (and CSS and JS), but not for anything else like images. You need to replace that by code that streams the bytes (not characters) that make up the file to the client.

You also need to set an appropriate content type header according to what kind of file you're serving: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Type
2 days ago
Note that applets are obsolete at this point. Do not use them for anything other than playing around with the technology, and amusing yourself with some animations in your browser.

This FAQ attempts to answer the following questions. Feel free to add more content as you see fit.

  • Where do I start? Show me the basics. (link)
  • I'm unclear about the details of the APPLET tag and the other deployment options. (link)
  • My applet works fine if I run it locally, but not if it's served from a web server. What gives? (link)
  • How can an applet access files inside the jar file the applet is stored in? (link)
  • How can an applet load an image? (link)
  • How can JavaScript and applets communicate on a web page? (link)
  • HowCanAnAppletReadFilesOnTheLocalFileSystem and circumvent other security restrictions?
  • How can an applet access a web site that's protected by basic authentication? (link)
  • How can an applet connect to a database? (link)
  • How can an applet upload a file to a server? (link)
  • How can an applet communicate with a servlet? (link)
  • How can applets communicate with each other? (link)
  • How can an applet connect to a server through a proxy? (link)
  • How can I run an applet as an application, and vice-versa? (link)
  • How can I protect the code of an applet from being decompiled? (link)
  • How can I deploy an applet that uses native libraries? (link)

    Where do I start? Show me the basics.

    The Java Tutorial from Sun has chapters on applets using AWT and Swing.
    They come with plenty of examples you can use as starting points.

    I'm unclear about the details of how to deploy applets.

    This page tells you all about the applet tag, and how to use it with and without JNLP. The Java Plugin Guide also has lots of useful information on the subject. You should no longer use the EMBED or OBJECT tags for deploying applets.

    Further deployment options (JNLP and the deployJava script) are discussed here.

    Recent version of the Java Plugin (in Java 6) allow the look of the startup image to be modified, and introduced many new capabilities and improved matters in general; check out the changes in general and read this for details of the APPLET tag in particular.

    My applet works fine if I run it locally, but not if it's served from a web server. What gives?

    A symptom of this problem might be a message "applet not initialized" at the bottom status bar of the browser window. Make sure you haven't put any required class files into the WEB-INF directory - web servers will not serve any files out of that directory. Move the class files to a publicly accessible directory - the most convenient would be the directory where the HTML file with the applet tag is in.

    How can an applet access files inside the jar file the applet is stored in?

    You can access files inside a jar file through an InputStream, which is returned by several methods in the Class and ClassLoader classes. This article in the Java documentation has all the details. Refer to the "Resource Names" section on how to specify the file name.

    How can an applet load an image?

    The most basic approach would be:


    It may be necessary to use a JavaDoc:java.awt.MediaTracker , the basics of which are explained here.

    How can JavaScript and applets communicate on a web page?

    The technology for achieving this is called LiveConnect, and was first implemented by Netscape. It allows applets to call JavaScript methods, and vice versa. Unfortunately, it works in slightly different ways in the different browsers, and sometimes not at all. Mozilla.org has more information.

    There's also the Common DOM API, which works without JavaScript by exposing the HTML DOM directly to the applet.

    How can an applet access a web site that's protected by basic authentication?

    If the applet uses URLConnection or one of its subclasses, the following code will enable this:

    The Base64Coder class does base64-encoding, but there are other packages you can use, including Jakarta Commons Codec.

    Alternatively, you can use the HttpClient package which is more feature-rich than [Http]URLConnection, and also handles NTLM authentication in addition to basic and digest.

    How can an applet connect to a database?

    Accessing a DB from an applet is not fundamentally different than connecting from any other piece of Java code. The one important restriction is that applets can only make network connections to the host where they originate (i.e., where the web server is located). If the DB is not located on that machine, the applet will either have to be signed (which gets around the host restriction; the details are described above), or the applet needs to route the DB calls through a DB proxy on the web server host, which takes the DB calls, transmits them to the proper DB host, and then sends the results from the DB server back to the applet.

    Note that it is considered bad design to mix DB access code with presentation code (which is what applets are). Consider a design where the applet accesses a servlet, which in turn accesses the DB. That also gets around the host restriction. A further benefit is heigthened security, because the client can no longer send SQL statements directly to the database, thus making the DB access harder to tamper with.

    How can an applet upload a file to a server?

    If the file to be uploaded is on the local file system, the applet will need to be signed or the local policy needs to allow applets access to the filesystem, because otherwise applets can not access the file (for details see HowCanAnAppletReadFilesOnTheLocalFileSystem).
    A number of libraries that help with file uploads over various protocols are listed in the FileUpload page.

    How can an applet communicate with a servlet?

    Some classes to look at on the applet side are URL (particularly its getContent method) for simple access, and URLConnection and HttpURLConnection if you need more control over the connection.

    It is possible to transfer Java objects through serialization. A simple example is at http://www.frank-buss.de/echoservlet/. Note that there may be problems getting this to work reliably if the client and server JVMs run different versions of Java.

    How can applets communicate with each other?

    This article over at JavaWorld outlines some of the methods you can use.

    How can an applet connect to a server through a proxy?

    This article describes how to use the Java Plugin control panel to configure the various proxy options.

    The Java documentation also has a section describing how to configure the properties governing proxy connections programmatically (for FTP, HTTP and SOCKS connections).

    How can I run an applet as an application, and vice-versa?

    While it's easy to add a main method to an applet, and add the applet panel to a Frame, and thus make it runnable and displayable as an application, this is not generally sufficient. The reason is that browsers provide some extra infrastucture for applets to use. To help with this, Jef Poskanzer has written a very useful adapter class called MainFrame which helps provide this infrastructure.

    There's also the reverse functionality available in the ApplicationApplet class, which lets you run an application as an applet.

    How can I protect the code of an applet from being decompiled?

    Fundamentally, this is not possible. To run the applet, the code needs to be in the client JVM, where a technically sophisticated user can always recover it. It can be made progressively harder by employing a variety of techniques, as suggested in this thread :

  • obfuscate the class files, using a tool like ProGuard
  • download the class files in your code as binary data using your own ClassLoader
  • encrypt the bytes you send (for some details see this thread)
  • encrypt them with a different key each time they're downloaded, and make the key downloadable as well
  • restrict the time between key download and class download to a very short interval

  • Note that all but the first item on this list require the use of a ClassLoader. Applets can only use ClassLoaders if they are signed, or a policy file on the local machine allows them to do this. (See HowCanAnAppletReadFilesOnTheLocalFileSystem for details.)

    If you can require the user to be online, it may be feasible to have the applet call a servlet, and have crucial code execute on the server, and then send the results back to the applet.

    How can I deploy an applet that uses native libraries?

    For starters, the applet needs to be signed (see HowCanAnAppletReadFilesOnTheLocalFileSystem for details). All the gory details of how to load the native libraries needed by the applet can be handled by a helper class like the JNLPAppletLauncher. (Although that page is JOGL-centric, that class can be used for other libraries as well.) Note that you'll have to include several libraries (for Windows, Linux, OS X etc.) if you still want cross-platform compatibility.

    2 days ago
    This is the FAQ for the Android forum. It's editable by everyone, so feel free to add content to it.

  • What Java API is supported by Android? How does it differ from JME?
  • Where can I get an SDK? What platforms does it support?
    • The latest version of the SDK is for Android versions up to 4.4, and it's available for Windows, OS X and Linux here.
  • Do I need to buy hardware if I want to start writing applications that run on Android?
    • You can start writing applications even if you don?t have hardware to run them on. The Android SDK comes with an emulator and all tools necessary for application development and deployment.
    • Other options include the freely available Motodev Studio for Android IDE from Motorola and Google's Android Studio which is based on IntelliJ.
  • Which hardware devices support Android?
  • What is Dalvik? How is it different from JVM?
    • Dalvik is a register based virtual machine optimized to run on a slow CPU,with relatively little RAM and on an OS without swap space. WikiPedia:Dalvik_virtual_machine
  • What are the different Media formats supported on Android?
  • Where can I publish my Android applications?
  • How can I get insight into how people are using my app?
  • I'd like to display ads in my app without having to negotiate it all by myself. What are my options?
  • What support does Android or Dalvik VM provide for running native C code?
    • The NDK (Native Development Kit) gives developers the ability to call into native code from Android applications. There is a Google group for NDK-related discussions. At present, Android supports libc, libm, JNI interface headers, libz, liblog, OpenGL ES 1.1 and OpenGL ES 2.0, libjnigraphics, a minimal set of headers for C++ support, OpenSL ES native audio libraries and Android native application APIs.
  • How can I view PDFs and Office documents?
  • Which Android versions are being used out in the field?
  • Is Android code compiled to a .class file?
    • The Java bytecode of a compiled class is converted into Dalvik executables or (.dex) files, using the "dx" tool bundled with the SDK . The application is packaged into .apk file which are zipped .dex files. The Dalvik virtual machine runs Dalvik executables in the apk file.
  • I want to write Android Applications too but dont know where to start?
  • Do Android projects have deployment descriptors?
  • My Application throws an Exception, where is the Stack Trace dumped?
    • Exceptions are written to a log file, named Logcat in the emulator. You can obtain a dump by executing the adb logcat command. To write log messages from your application, use the static methods of JavaDoc:android.util.Log class(Log.v(), Log.d(), Log.i(), etc.). If you are using Eclipse with ADT plugin, you can open "Logcat" view to see the logged messages.
  • What functionality of the actual device can the emulator emulate?
    • For Emulator How-Tos and limitations, read this
  • How can I send email from an Android application?
  • How can I use JAXB on Android?
  • What options for storing data do I have?
  • What 3rd party libraries should I check out?
  • How do I get the Android source code?

  • Reference material

  • Android Home Page
  • Developer Guide
  • API Reference

  • Books

  • Application Security for the Android Platform by Jeff Six
  • Professional Android 4 Application Development by Reto Meier
  • Introduction to Android Application Development: Android Essentials and Sams Teach Yourself Android Application Development in 24 Hours by Shane Conder and Lauren Darcey
  • Advanced Android 4 Games by Vladimir Silva
  • Learn Java for Android Development by Jeff Friesen
  • The Android Developer's Cookbook: Building Applications with the Android SDK by Schwarz, Dutson, Steele, To

  • Other

  • Following the Android Developers Blog is a must.
  • In-depth tutorials on many subjects by Lars Vogel
  • Frameworks for developing cross-platform mobile applications: Rhodes, Titanium Mobile, Unity, Corona, Pyxis Mobile, Infinite Monkeys, Kendo UI, Apache Cordova (formerly known as PhoneGap), Tabris
  • Android 4.4, KitKat: The complete FAQ
  • Android 5, Lollipop: The complete FAQ
  • Android 6, Marshmallow: The complete FAQ
  • Android 7, Nougat: The complete FAQ
  • Android 8, Oreo: The complete FAQ
  • Android 9, Pie: The complete FAQ

  • Other Android variants

  • WikiPedia:Fire_OS is developed by Amazon and also based on the AOSP; it runs on Amazon's Kindle family of devices: FireOS Development
  • BlackBerry 10 can run repackaged Android apps : http://developer.blackberry.com/android/
  • Not really a variant, but Windows Phone 10 can run Android apps that have been adapted to it, as well as Cordova apps

  • CategoryFaq JavaMicroEditionFaq
    2 days ago
    Note that this page is mostly about JME 3, which is long obsolete. JME 8 -geared more towards embedded systems than mobile phones- has not gotten much traction. Try http://www.oracle.com/technetwork/java/embedded/javame/index.html for information on that.

    You can ask Java ME-related questions in the JavaRanch Java ME forum.

  • Java ME home page
  • An SDK for Java ME 8 is available for Windows.
  • article on Java ME 8
  • If you're wondering how to encode URLs without java.net.*, see UrlEncodingForMobileJava

  • BlackBerry development

  • As of BlackBerry OS 10, Java ME is no longer supported. BB 10 has an Android compatibility layer, though, which supports Android 4.3: http://developer.blackberry.com/android/. As of 2016, BB 10 seems to have reached its EOL, and Blackberries are straight Android devices.
  • Java Application Development (runs on BlackBerry OS up to 7.1)
  • Web Development using Apache Cordova

  • Books

  • Enterprise J2ME
  • Beginning J2ME: From Novice to Professional
  • J2ME: The Complete Reference
  • Beginning BlackBerry Development, Beginning BlackBerry 6 Development
  • Advanced BlackBerry Development, Advanced BlackBerry 6 Development
  • BlackBerry Development Fundamentals
  • Learn BlackBerry Games Development

  • CategoryFaq AndroidFaq
    2 days ago
    What do you mean by "send" - it serves HTML alright? But it doesn't serve other file formats? What is different about those other files compared to the HTML files? Both should be files on the server's file system, no? Are they treated differently by the server? Remember that images are binary files, so the server mustn't treat them as text.
    2 days ago
    Have any questions ? Ask at the Java In General forum. For more basic topics, check out the JavaBeginnersFaq.
  • How can I create my first Java program?
  • I know the Java basics. What's next? How do I become an intermediate Java developer?
  • WildCardVsSpecificImports
  • AccessingFileFormats - how to access a variety of file formats programmatically
  • AvoidTheEqualityOperator
  • PostIncrementOperatorAndAssignment
  • How can I run executables written in other languages from Java?
  • How can I run scripts written in JavaScript|TCL|Python|Rexx|Groovy|ObjectScript|..., pass parameters to them and retrieve the results ?
  • What is the Observable class and and the Observer interface?
  • What are Marker (or Tagging) Interfaces, and why don't they have any methods?
  • How can I evaluate an expression that a user enters, or create a Java class that includes it as a method?
  • How can I launch a web browser with a particular URL from Java code?
  • How can I implement a licensing scheme for my Java application?
  • How can I call COM/DLL/ActiveX/.Net objects from Java?
  • What's up with integers not being equal to one another when using auto-boxing?
  • Why does int i = 0; i = i++; System.out.println(i) print 0 instead of 1? See PostIncrementOperatorAndAssignment
  • How to Write an Equality Method in Java
  • How can I find out from where my class is loaded?
  • How can I convert an array to an ArrayList ?
  • What is java.library.path ?
  • The Java IAQ: Infrequently Answered Questions
  • Some RAQ: Rarely Asked Questions
  • ResourcesOnRegularExpressions - for when you can't seem to get your regexps straight
  • Where can I download old JDK versions, and other APIs that have been deprecated?

    Q: How can I run executables written in other languages from Java?

    This involves the java.lang.Runtime and java.lang.Process classes.
    All the details can be found in this article.

    As of Java 5, there's a new class for handling this: JavaDoc:java.lang.ProcessBuilder

    Q: How can I run scripts written in JavaScript|TCL|Python|Rexx|Groovy|ObjectScript|..., pass parameters to them and retrieve the results ?

    The Bean Scripting Framework (BSF) library from Apache does this. It facilitates two-way integration between Java and a growing number of scripting languages.

    Java's scripting API does something similar.

    Q: What is the Observable class and and the Observer interface?

    Some discussion and an example can be found here.

    Note that these classes (and the approach they represent) are now deprecated. These days you would use an event bus like https://github.com/greenrobot/EventBus instead.

    Q: What are Marker (or Tagging) Interfaces, and why don't they have any methods?

    Marker interfaces are a mechanism of asserting a fact about a class, without adding any
    functionality to it. As such, they represent metadata about that class. Some examples are:

  • java.io.Serializable asserts that objects that implement it may be serialized using java.io.ObjectOutputStream.
  • java.lang.Cloneable indicates that the objects clone method may be called (A different approach to disallow certain calls is taken by Collection.remove: it throws an exception if it is called on an object that does not support it.)
  • java.rmi.Remote indicates that methods may be called from remote JVMs
  • java.util.EventListener is used for event listener classes
  • java.util.RandomAccess indicates to the JVM the most performant way to iterate through a List
  • javax.ejb.EnterpriseBean serves as parent for the various EJB interfaces that actually do include methods
  • javax.servlet.SingleThreadModel states that this class should not be called for multiple threads concurrently

  • From this list it's clear that marker interfaces have been used for widely differing purposes.

    Marker interfaces are a misuse of interfaces, and should be avoided. Note that all the above example are rather old, and that no new ones have been added since. Ken Arnold, who was/is behind several Java APIs at Sun, sounds off on marker interfaces here, noting that they should rarely be used.

    With the advent of annotations in Java 5 -which are a generic mechanism of adding metadata to a class-, marker interfaces have become obsolete, and no new ones should be defined.

  • JavaDoc:java.io.Serializable
  • JavaDoc:java.lang.Cloneable
  • JavaDoc:java.rmi.Remote
  • JavaDoc:java.util.EventListener
  • JavaDoc:java.util.RandomAccess (also discussed here)
  • JavaDoc:javax.ejb.EnterpriseBean
  • JavaDoc:javax.servlet.SingleThreadModel

    Q: How can I evaluate an expression that a user enters, or create a Java class that includes it as a method?

    There are a number of libraries that can take an expression and either compile or interpret it. JEP does interpretation; a newer commercial version is also available. For even more flexibility, check out Javassist, which creates actual Java classes.

    This Javaranch Journal article demonstrates how to use Javassist to create classes that evaluate mathematical expressions.

    Starting with Java 6, there's now an official API for working with the compiler from within Java code.

    Q: How can I launch a web browser with a particular URL from Java code?

    Starting with Java 6, the Desktop.browse(...) method can be used: JavaDoc:java.awt.Desktop

    If the objective is to display a web page within a Swing application, the Lobo web browser component can be used. For very simple pages (HTML 3.2, no CSS, no JavaScript etc.) Swing contains a web browsing component. JavaFX contains a much improved web view component for HTML 5: JavaDoc:javafx.scene.web.WebView

    Q: How can I implement a licensing scheme for my Java application?

    Several commercial options are available; check out TrueLicense, license4j and JLicense.

    Q: How can I call COM/DLL/ActiveX/.Net objects from Java?

    This will involve using the JNI API (specification, introduction). A number of libraries exist that take some of the pain of using JNI out of it, like JACOB, Jawin and j-Interop, but they're all outdated. Several commercial tools (like EZ Jcom and JNBridge) are also available.

    Since JNI only works with C/C++, but not the .Net languages, a .Net wrapper in C++ needs to be created as well if the COM/DLL object was written in one of those languages. An RFE (Request for Enhancement) has been filed years ago for letting JNI code access .Net code directly (see this entry in Sun's Java Bug Database), but it doesn't seem to go anywhere.

    JNA implements something similar to JNI, but without the need to create or use C headers and files (it's all Java from the developer's perspective).

    Q: What's up with integers not being equal to one another? The following code prints "true, true, false, true". Shouldn't it be "true, true, true, true"?

    The key to understanding this is that the JVM uses a process called "boxing" (or "auto-boxing") when converting an int (like 127) to an Integer object. This involves calling the Integer.valueOf(127) method. The JavaDoc:java.lang.Integer#valueOf(int) says: "Returns a Integer instance representing the specified int value. If a new Integer instance is not required, this method should generally be used in preference to the constructor Integer(int), as this method is likely to yield significantly better space and time performance by caching frequently requested values." What that means is that the valueOf() method has a cache of Integer objects, and if the primitive being boxed is in that range, the cached object is returned. It just so happens that 127 is in that range, but 128 is not. So i and j are the same object, while i1 and j1 are not. (Also note that you can't rely on the boundary to fall between 127 and 128 - since this is not documented, JRE implementors are free to enlarge the range of values so cached.)

    Q: How can I find out from where my class is loaded?

    Q: Where can I download old JDK versions, and other APIs that have been deprecated?

    Here: http://www.oracle.com/technetwork/java/archive-139210.html

    2 days ago
    Frequently Asked Questions in the Beginning Java Forum

  • How do I fix the compile-time error "Cannot make static reference to the non-static method name() in type class"?
  • What's the difference between equals() and the == operator?
  • Why doesn't Scanner.nextLine() work? I thought it would stop and wait for me to enter something but it doesn't.  (If you're so inclined, you can read a longer explanation here)
  • Should I close a Scanner that's tied to System.in? - No, you shouldn't. See the linked wiki article to learn why not and what you can do instead.

  • Other common questions:

    What should every Java greenhorn know?

    (For more advanced topics, check out the Java-FAQ.)

  • What does a Java program look like?
  • How do I run my very first Java program?
  • Got no money for books so how can I learn Java?
  • I want to buy a couple of books about Java. What do you recommend?
    • Browse through JavaRanch's book reviews. If you see a book that satisfies your needs a simple click will take you straight to where you can order it.
  • Where is the Java API?
  • What non-Windows Support is there for Java?
  • What's a JAR file, and how do I make it executable?
  • How do I make an .exe of my Java program?
    • Maybe using executable JarFiles would be more appropriate. See the MacOsxFaq for hints on how to build a double-clickable OS X application.
    • JWrapper creates native Windows, Linux and OSX apps.
  • Classpath, what is it and how do I set it?
  • What is a Singleton?
  • What is threading or multi-threading?
  • What is an object?
    • It's a thing with state and behavior, of course.
    • It's an instance of a class
    • An object is a User-defined Data Type (UDT).
  • What is the difference between an object and an instance?
  • What is a class?
    • A class is the definition of some object data type.
    • Class is the basic building block of an object oriented system.It is a an entity which acts as a data type and also shows  behaviour.A class can have attributes and  functions of its own.Thus it can act on messages and also maintain its state.
  • What's the difference between a static field and an instance field?
    • Instance fields belong to objects (which are instances of a class) with each object having its own copy. 
    • Static fields belong to a class, and we all know there's only one of each class, so there's only one copy of each static field.
    • Static variables are initialized at the class load time, instance variables are initialized before a constructor is executed.
  • Can you override a static method?
  • Is Java call-by-reference or call-by-value?
  • What is a JVM? JRE? JDK?
    • A JVM (Java Virtual Machine) is an imaginary (theoretical) machine that executes Java bytecodes.
    • A JRE (Java Runtime Environment) is a software implementation of a JVM and all the standard Java libraries, and other bits and pieces that are needed to make the thing actually work.
    • A JDK (Java Developer's Kit)is the JRE plus tools like the Java compiler, debugger, and other things needed for basic Java development.
    • The diagram on this page visualizes it nicely: JDK and JRE are brackets on the left, while the JVM is the layer at the bottom.
  • How do I clear the console screen?
  • Why is 1.0 - 2.0/3.0 != 1.0/3.0? (and other arithmetic inaccuracies)
    • Arithmetic as done by Java has limits to its accuracy. Some of these have to do with the fact that computer arithmetic is done with base 2, not base 10. Another reason is that 1/3 does not have a finite representation in either base 2 or base 10. You can find a more detailed description here . All the details can be found  in the article What Every Computer Scientist Should Know About Floating-Point Arithmetic
    • Java implements exact arithmetic with the JavaDoc:java.math.BigInteger and JavaDoc:java.math.BigDecimal classes. As an aside, calculations involving amounts of money should never be done with floats or doubles, but always with BigDecimal.
    • Another option is to use decimal arithmetic, which avoids the problems caused by binary numbers. More information about that can be found here
  • What are the differences between an interface and an abstract class?
  • Where can I find example code for the XYZ class?
    • Java2s also covers advanced Java APIs and 3rd-party APIs. Even more examples are at Kode Java.
  • What are the differences between the various JDK versions?
    • The documentation of each JDK release contains a page called "New Features and Enhancements" (or similar), which lists the changes from the previous release. You can find links to the documentation of the various releases here. The javadoc page for a class also mentions the JDK version in which it was introduced.
  • I'm having trouble understanding how algorithm XYZ works.
  • How do I work with dates, in particular, convert between dates and strings?
    • The JavaDatesFaq has example code for the most common tasks, as well as links to some further material.
  • What is a compile-time constant?
  • Can I test code without installing anything?
  • How do I override the equals and hashCode methods?
  • 2 days ago

    Ruud Bosman wrote: if the application is forcefully terminated, shutdown hooks are not called.

    I'm not sure how the discussion became one about shutdown hooks. If the app has state it wants preserved, it can (and probably should) preserve it when that happens. That is unlikely to be shutdown time, but rather at some time before that.
    2 days ago
    Huh, this is the first I hear about it, and I do follow mobile development, especially on Android. So that may be part of the problem :-) I'm not sure the world has been waiting for another mobile cross-platform toolkit, as there are so many capable and well-supported options available already. And with Oracle, you have to assume that they'll want to monetize it at some point - that may make people wary of investing in it.
    2 days ago

    Ruud Bosman wrote:
    But I guess it isn't possible. :-(

    Did you maybe miss Rob's post about the Preferences API?
    3 days ago

    Stephan van Hulst wrote:If you're in a clothing store and you're standing in front of a rack with shirts that were made in a shop that paid fair wages to employees that have good living conditions, and a rack of shirts that were made in some Bangladeshi sweatshop, and the shirts were otherwise exactly the same, which would you buy?

    The former, in order to support it, but the overall impact is not clearcut. Although the worker with the fair wage may be better off, the worker in the sweatshop may be worse off - and he might need the wage more, even though it's not a fair wage.
    3 days ago
    Suggestions about what? If you've already decided on a framework to use, I'm sure its documentation will tell you how to use notifications with it.
    4 days ago

    Liutauras Vilda wrote:How do you physically distinct whether meat is halal or not?

    Not directly related to this, but where available (like in American baseball stadiums) I would prefer kosher hot dogs to non-kosher hot dogs - not for religious reason, just for the better taste. But I wouldn't be able to distinguish visually between the two of them when put in front of me (except by tasting both).
    5 days ago