Android Installs in 2015

Here are my GLOBAL Android Installs (40,000 sample)

CURRENT INSTALLS 2015 to date



Android 2.3 - 11% - unchanging to slowly decreasing
Android 3.2 - 2% - unchanging to slowly decreasing
Android 4.0 - 13% - unchanging to slowly decreasing
Android 4.1 - 14% - unchanging to slowly decreasing
Android 4.2 - 15%  - unchanging
Android 4.3 - 3% - unchanging to slowly decreasing
Android 4.4 - 26% - increasing
Android 5.0 - 5% - sharply increasing in summer 2015, leveling
Android 5.1 - 3% - sharply increasing since October 2015


DAILY INSTALLS October 2015

Android 4.4 - 50%
Android 4.2 - 20%
Android 4.1 - 8%
Android 5.x - 13%


If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

Donate Bitcoins



As an Amazon Associate I earn from qualifying purchases.

ChildrenTV video submission

We developed ChildrenTV to create a safe app for our children. We review all videos and mark them age appropriate.

We have a lot of viewers speaking many languages, so we are asking you to help us by SUBMITTING your favorite YouTube videos.

How do I submit a new YouTube video to ChildrenTV?

1) Open YouTube app, find your favorite video
2) SHARE the video and a list of apps will appear (email, Fb, etc.) SELECT ChildrenTV



3) Select the appropriate age from the list (e.g. 4+ years old)
4) Select the language the video is in

We will review the video and if everything is good we will add it for everyone to enjoy.

Thank you for helping!

ANDROID DOWNLOAD:
https://play.google.com/store/apps/details?id=com.chicagoandroid.childrentv


As an Amazon Associate I earn from qualifying purchases.

Headlights stay on on Astro while parked

I use my Astro van as camping vehicle, when it gets cold at night I often turn the engine on to warm up. By default the Daylight Driving Lights stay on while engine is running which is very annoying in the campground situation. I found out that pressing Dome Override button 4 times will turn them off.



As an Amazon Associate I earn from qualifying purchases.

Retail Cyber Race


The days of real, brick-and-mortar retail stores are over. Sure, it is still more convenient to jump in your car and drive to the local Walmart or Home Depot and pick up the item you want "now", but that is going away soon, very soon.

Everyone among the big retailers is working on the next day delivery, same day delivery, or next hour delivery, if Amazon will have their way with PrimeAir.
Sure, there still will be the limited-real-estate Galeria of products stores, but they will only be driving online sales. However, I am getting ahead of myself.

A couple of years ago, I was an Architect for Mobile Innovation Group at Sears/Kmart, so naturally I will take that company as example.

Sears/Kmart stores are not doing well, however they could turn around, but how?

A short history lesson: many older Americans remember Sears as catalog business. Every year you've got your booklet from which you were able to select some goodies for your kitchen and for your husband for Christmas. It was great. Then came mega stores and they were great, too, people did not have to wait for weeks on delivery and could shop now. Sears and Kmart had their heyday. Then came Japan, then China and multitude companies started to compete. Then came computers and Walmart bought and used some, Sears and Kmart did not do as well. All suddently the prices got 20% lower in stores like Walmart and Target while offering gt better and nobody could understand what has happened, customers exodus followed.

Then came Amazon, they sold you a book, then another book, then they sold you a TV and then a movie. They also have bougth some computers and used them, used many of them.

Then came Google and the rest of the story will be written in the future, unless...

Let's start with the brand. I am sure there are still a lot of people who like brands like Craftsman, or Kenmore, but honestly it is hard to get a Millenial kid to enter the mall thru Sears entrance. It is hard to change image once the name is stained. Sears launched a program named Shop Your Way, it may work. At this point Kmart and Sears could be called "Red and Blue" and they might have better sales.
 
What is wrong with catalog business? Nothing much, except it has to be created for you, a single person, every day, and has to be short. People like to have a perception of many choices, but immediately they want to narrow it to a couple of choices. If they cannot, they go somewhere else, continue shopping.

So the next question is how do you narrow 10 million products Sears offer to a handful you want to buy today? Amazon knows it, that is why they kick butt, however they are not sharing. Google will know and that is why they may be the biggest danger for all retailers. Facebook is entering the game. Let me explain.

You post something online, Google learns, you like something and Facebook learns, you search, Google learns, you click, they know, you skip, they know. You do that many times, over 10 years. They build a profile of you, they know precisly what you are looking for today, they serve you search results, advertisements and products.

What can "Red and Blue" do about it?  Time for some pointers!

1) Sell everything under the sky, even at the break even, yes, no profit margins. In a sense Sears is doing it already with the offering of 10 million products via 3rd party Marketplace. You need to sell everything because you need to capture most Google product searches. I would go further and have competitors' offering, too. Explanation coming soon.

2) Know your client. By name. So I searched for something and found result, clicked on it and now I see it on "Red and Blue" mobile website. This is opportunity for Sears to learn about me. Me! But what happens, I add the item to the cart and Sears is asking me to log in, I might do that later when I am by the computer because I don't remember the password (OK, it will never happen). I go to kenmore.com, same product, the cart does not know me. Why not allow me to log in with Google+ or Facebook, I know it sounds counterintuitive as you compete with them, but that is what we do these days, we log in with Google+, Facebook, etc, no harm done.

3) Collect data and use it. So now you allow me to log in with Fb, great. I search Google and because you carry millions of products, sooner then later I end up on your mobile website, you know me by name. I am presented with this product, 4.5 stars (however no profit margin) and two other similar products cheaper and more expensive, both 4.7 stars (and nice profit margin). I click around and eventually choose something. I have done that 50 times before and you get to know me among millions other users that have similar tastes and interests.

4) Communicate. I get my daily doze of emails from Sears, Craftsman, Kenmore and Show Your Way - my intuitive opinion? You don't know me! I get $10 in points for oil change, I am not moved, when is the last time I used any offer? How about "How is your Astro van doing, we haven't seen it in a while and honestly we miss it! Come for oil change, we make it worth it! (offer here) You know we have great Carftsman tools you can pick from while we change your oil."

5) Crowdsource information. Engage the user, make it super easy to rate and tell you about the product, yours and your competition's. People buy in one place, tehn come to Amazon to write their product review. We need to ask ourselves why that happens and do better.

6) Make sure you can deliver. As I mentioned Amazon want to air drop your packages using drones and we all have seen on YouTube the Roomba robots turned into their warehouse busboys. Company has to invest in ability to know what your client wants, where they want it, in what quantity and how short the delivery should be to please the customer each time. The company should invest in their own software as using the same package only guarantees that consultants, once they finish with you will go to your competition and offer "improved" version.

Sears and Kmart are currently in process of selling the real estate and investing in the ecommerce, updating their mobile and chain of supply software and winning awards, so there is a real hope to turn the company around.

The summary of this story is that the companies have to learn about their clients and have to use that knowledge wisely to communicate with the client. When I walk in to the store, or enter the website you have to know me, by name and by my interests. You have to connect the dots and heavily invest in machine learning and profiling algorithims.

by Uki D. Lucas

you can find him on LinkedIn.

 



As an Amazon Associate I earn from qualifying purchases.

Belladonna (Atropa belladonna)

Poisonous nightshade.
Contains alkaloids atropine, hyoscamine and scopolamine.
Uses:
Homeopathic use of flowers and leaves for treatment of nausea and spasms.



As an Amazon Associate I earn from qualifying purchases.

git command line on Mac

I had to start using a new Mac, so it was good time to review my toolset.

$ git --version
git version 2.3.2 (Apple Git-55)
$ which git/usr/local/bin/git


After the brew install

brew install git
...
$ git --version
git version 2.2.0
$ which git
/usr/local/Cellar/git/2.2.0//bin/git


it seems that the version of Brew is older, so I advise staying with Apple (Developer's Tools).





If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

Donate Bitcoins



As an Amazon Associate I earn from qualifying purchases.

Oxalic acid

Oxalic acid present in some greens like spinach binds to the calcium and limits body's absorption of that mineral.



As an Amazon Associate I earn from qualifying purchases.

Fitness Training "CyberFit" version 18

We just released much improved Fitness Training "CyberFit" version 18 for Android:

https://play.google.com/store/apps/details?id=com.cyberwalkabout.cyberfit










As an Amazon Associate I earn from qualifying purchases.

Java: Unsupported major.minor version 51.0

When you get an error:

Unsupported major.minor version X

This means that you are trying to compile your Java program with version lower that the code is written for; for example you develop with Java 1.7, deploy on the server where they have Java 1.6:

Unsupported major.minor version 51.0

The fix is:

  • to change your code to use lower Java, which is sometimes impossible because of 3rd party library that you are using
  • upgrade the other computer to modern Java, which is sometimes impossible because of a brick-head gatekeeper
  • vent on the blog and start cutting out the code 


Java versions:
  • J2SE 8 = 52
  • J2SE 7 = 51 
  • J2SE 6.0 = 50 
  • J2SE 5.0 = 49 
  • JDK 1.4 = 48 
  • JDK 1.3 = 47 
  • JDK 1.2 = 46 
  • JDK 1.1 = 45

If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

Donate Bitcoins



As an Amazon Associate I earn from qualifying purchases.

Organic Garden



As an Amazon Associate I earn from qualifying purchases.

RoboGuice - Android development made simple and fun



"Simple and Fun!" Now, they make quite a promise!

read up:

https://github.com/roboguice/roboguice/blob/master/README.md

https://github.com/roboguice/roboguice/wiki

Maven repo:


org.roboguice
roboguice
3.0.1


OK, so most of all RoboGuice is about DEPENDENCY INJECTION



Examples:


@InjectView(R.id.label)
TextView label;

@InjectResource(R.string.app_name) // strings, drawables
String applicationName;

@Inject // system service
LayoutInflater layoutInflater;

@Inject
LocationManager locationManager;

@Inject // POJO
Book book;


Creating Activities



public class FightForcesOfEvilActivity extends RoboActivity {

@InjectView(R.id.expletive) 
TextView expletiveText;

Creating Android Modules


public class MyModule extends AbstractModule {
@Override
protected void configure() { }



AsynchTask 


public static class AsyncPunch extends RoboAsyncTask {

// Astroboy is a @Singleton public class Astroboy {
@Inject Astroboy astroboy;

// new instance of java.util.Random, since we haven't specified any binding instructions
@Inject Random random;


If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

Donate Bitcoins



As an Amazon Associate I earn from qualifying purchases.

SHH key

$ git clone git@github.com:roboguice/roboguice.git
Cloning into 'roboguice'...

Permission denied (publickey).


$ ls -al ~/.ssh
total 120
-rw-------   1 uki  staff   1675 Oct 31  2012 id_rsa


COPY YOUR PUBLIC KEY to clipboard

$ pbcopy < ~/.ssh/id_rsa.pub 


PASTE your SSH key exactly as copied (i.e. in GitHub settings)
https://github.com/settings/ssh


$ git clone git@github.com:roboguice/roboguice.git roboguice
Cloning into 'roboguice'...
remote: Counting objects: 18463, done.

Receiving objects:  15%

    If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

    Donate Bitcoins



    As an Amazon Associate I earn from qualifying purchases.

    MacBook Pro (late 2011) graphics crashing

    With the update to Yosemite (maybe unrelated) my Mac started to crash, at first it was rare, but right now it is consistent, the common situations when it is crashing:


    • connecting external monitor via HDMI
    • connecting external monitor via VGA
    • screen sharing using JoinMe 
    • bad days in general
    The MacBook Pro (starting with early 2011) have 2 GPU (graphic cards), one integrated, low power, and one additional (discrete) that is used for high power situations.

    I installed the utility called gfxCardStatus that allows me to switch between integrated and discrete graphic cards.

    From their website:

    gfxCardStatus v2.3 and above actively prevents you from switching to Integrated Only mode when any apps are in the Dependencies list (or if you have an external display plugged in). This is because if you were to do this, your discrete GPU would actually stay powered on, even though you've switched to the integrated GPU.

    So I guess no more external display for me until Apple fixes the problem, or I but new MacBook Pro (hopefully with touch screen this time).




    https://developer.apple.com/library/mac/qa/qa1734/_index.html



    Reseting System Management Controller (SMC)

    https://support.apple.com/en-us/HT201295

    If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

    Donate Bitcoins



    As an Amazon Associate I earn from qualifying purchases.

    Spartan Race prep run

    Run with obstacles.


    As an Amazon Associate I earn from qualifying purchases.

    2015 Spartan Race: training day 1

    I signed up for Spartan, 
    if you want run together, or cheer and take photos, 
    I created a team: "Valeria Warriors" to honor our late grandma who brought this family together.

    Seattle, WA, Saturday 11:15AM-4PM, run start time 1PM (IMPORTANT)
    http://www.spartan.com/en/race/detail/878/overview

    weight: 185 lbs (of flab)

    I might consider Wisconsin Tough Mudder, too:
    https://toughmudder.com/events/2015-wisconsin


    Previous run photo:




    As an Amazon Associate I earn from qualifying purchases.

    Java: Closable

    When working with multiple resources that need to be closed after we are done using, I particularly like the approach of using Closable Interface:


    try {
    // open input streams and use them
    }
    catch (IOException e) {
    e.printStackTrace();
    }
    finally {
    attemptClose(inputSteamA);
    attemptClose(
    inputSteamB);
    }



    private void attemptClose(Closeable object) {
    if (object != null) {
    try {
    object.close();
    }
    catch (IOException ignore) {
    }
    }
    }




    If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

    Donate Bitcoins



    As an Amazon Associate I earn from qualifying purchases.

    Apple Photos opening every time phone USB is connected

    I work developing Android so I plug and unplug different devices all day long. Apple Mac Photos app is opening every time phone USB is connected, which is frustrating and sometimes out of place at work.

    To turn off that behavior next time the Photos app opens UNSELECT THIS CHECKBOX:

    "Open Photos for this device"


    If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

    Donate Bitcoins



    As an Amazon Associate I earn from qualifying purchases.

    Android: TextView in ScrollView continous scrolling

    Sometimes when continuously outputting text to TextView, you would like it to scroll down:



    textView.addTextChangedListener(new TextWatcher() {
    @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    @Override public void onTextChanged(CharSequence s, int start, int before, int count) {
    // scroll down whenever log text updated to display latest info on the screen  
            
            scrollView.post(new Runnable() {
    @Override public void run() {
    scrollView.fullScroll(ScrollView.FOCUS_DOWN);
    }
    });
    }

    @Override public void afterTextChanged(Editable s) {
    }
    });

    If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

    Donate Bitcoins



    As an Amazon Associate I earn from qualifying purchases.

    Android: AsyncTask delegate

    Let say we have an Activity that wants to receive a messages from AsyncTask.


    We create an Interface
    AsyncResponse
    public interface AsyncResponse {
    void publishLog(String logContent);
    }
    We create our AsyncTask:

    public class FileReaderTask 
     extends AsyncTask < Void, Void, List < AbstractX > > {
    // delegate should be set in the Activity   
    public AsyncResponse delegate = null;
    String xyz = "";
    // ...
    @Overrideprotected void onPreExecute() {
    delegate.publishLog(xyz);
    }
    @Overrideprotected void onPostExecute(List x) {
    ...
    delegate.publishLog(xyz);
    }
    }

    Now we can tie together the AsyncTask and Activity:

    public class FileReaderActivity extends Activity implements AsyncResponse {

    private static final String TAG =
    FileReaderActivity.class.getCanonicalName();
    FileReaderTask asyncTask = new FileReaderTask();

    private TextView logText;

    /** * Called when the activity is first created. */  

     @Override   public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.
    main);
    logText = (TextView) findViewById(R.id.logText);

    // tell Async Task that this Activity will listen  

    asyncTask.delegate = this;
    asyncTask.execute();

    }

    /** * This method will receive log from Async Task. * @param logContent */  

    @Override   public void publishLog(String logContent) {
    logText.append(logContent);
    }

    }

    If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

    Donate Bitcoins



    As an Amazon Associate I earn from qualifying purchases.

    Android: finding SD Card

    Since the implementation of SD card is different on various devices use following method:


    private static final String SDCARDFILE 
    Environment.getExternalStorageDirectory() 
    + "/somefolder/somefile.ext";

    If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

    Donate Bitcoins



    As an Amazon Associate I earn from qualifying purchases.

    git: updating all repos using Bash

    I have a lot (hundreds) of repositories I want to keep updated on daily basis, here is a handy script I use:


    # saving current working directory
    cwd=$(pwd)

    echo "reading each repo directory in $cwd"
    for repo in *
    do
    echo '#################################################'
    # change to give repo directory
    cd $repo
    # print repo url
        git config --get remote.origin.url
        git fetch
        git status
        # go back to directory you started with
        cd $cwd
    done
    }

    If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

    Donate Bitcoins



    As an Amazon Associate I earn from qualifying purchases.

    Toxic woods

    http://www.wood-database.com/wood-articles/wood-allergies-and-toxicity/


    As an Amazon Associate I earn from qualifying purchases.

    8000 grit conditioning whetstone

    This Nagura stone is very small, I will be using it to condition other sharpening whetstones.

    Instructions:

    使用
    方法双方共に水をたっぷりつけて名倉砥石で軽く円を画く様に砥面を, まんべんにこすりすぐ泥が出ますのでそのまま御使用下さい。


    As an Amazon Associate I earn from qualifying purchases.

    Android Studio Canary

    In case you feel adventurous you can try hottest builds from Canary releases:

    http://tools.android.com/download/studio/canary

    Why would you wan to do that?
    For example Android Studio 1.3 (2 days old) has support for NDK.


    As an Amazon Associate I earn from qualifying purchases.

    Wooden sawhorses

    No nails, no glue, beautiful.

    https://youtu.be/nsHpJnYInDo



    As an Amazon Associate I earn from qualifying purchases.

    ATAP

    Forget the Google I/O keynote presentation, this is the real "state of the art" of 2015





    As an Amazon Associate I earn from qualifying purchases.

    Android M Preview May 2015

    https://youtu.be/ndBdf1_oOGA


    As an Amazon Associate I earn from qualifying purchases.

    Keyed Scarf Join


    Making complex scarf join using mostly Japanese hand tools

    https://youtu.be/buHsNMVSONQ

    Here is an example how a person can make a complex join using everyday carpentry tools.

    https://youtu.be/6j-U1P49r8U



    As an Amazon Associate I earn from qualifying purchases.

    Linux tail command

    To constantly monitor log files being appended, you can use:


    tail -f /var/log/xyz*.log

    if you want to see last 200 lines added:

    tail -n 200 /var/log/xyz*.log

    note the asterisk "*" symbol, that monitors ALL logs that meet the pattern, which is helpful with log names ending with DATE.


    As an Amazon Associate I earn from qualifying purchases.

    Groovy

    Groovy Installation



    $ curl -s get.gvmtool.net | bash

    $ source "/Users/uki/.gvm/bin/gvm-init.sh"

    $ gvm install groovy

    $ groovy -version

    Groovy Version: 2.4.3 JVM: 1.7.0_79 Vendor: Oracle Corporation OS: Mac OS X

    $ which groovy

    /Users/uki/.gvm/groovy/current/bin/groovy


    To add Groovy permanently to your Terminal  PATH

    edit ~/.bash_profile
    # Groovy updated May 19, 2015
    export GROOVY_HOME=/Users/uki/.gvm/groovy/current
    export PATH=${PATH}:${GROOVY_HOME}/bin


    First Script


    groovy_scripts $ cat hello.groovy 

    println 'Hello from Groovy'
    groovy_scripts $ groovy hello

    Hello from Groovy




    Groovy Console


    Groovy Console is good for quick testing of Scripts, especially copy and paste from the Web.


    $ groovyConsole








    interface Alive{
       void alive()
    }

    class Creature implements Alive{
        def grawl() {
            println(" Grrrrrrrr!!! grawls the Creature")
        }
        void alive()
        {
            println(" Grrrrr!!! thinks the Creature")
        }
    }

    class Human extends Creature {
        String name;
        def sayHi(name) {
            println(" Hi, my name is $name! says the Human")
        }
       
        void alive()
        {
            println(" I am alive! says the Human")
        }
    }



    Creature me = new Human()
    me.grawl()
    me.alive()
    me.name = "Uki"
    me.sayHi me.name

    Creature bear = new Creature();
    bear.alive()


    OUTPUT:

    uki@ groovy_scripts $ groovy hello
     Grrrrrrrr!!! grawls the Creature
     I am alive! says the Human
     Hi, my name is Uki! says the Human

     Grrrrr!!! thinks the Creature



    If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

    Donate Bitcoins



    As an Amazon Associate I earn from qualifying purchases.

    Groovy as DSL

    http://docs.groovy-lang.org/docs/latest/html/documentation/core-domain-specific-languages.html

    If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

    Donate Bitcoins



    As an Amazon Associate I earn from qualifying purchases.

    Hadoop on Pi cluster

    http://www.widriksson.com/raspberry-pi-hadoop-cluster/


    As an Amazon Associate I earn from qualifying purchases.

    Reishi (Ganoderma lucidum)

    Anti-inflamatory used agaist reumatism



    As an Amazon Associate I earn from qualifying purchases.

    Yew (Taxus sp.)



    As an Amazon Associate I earn from qualifying purchases.

    Elm



    As an Amazon Associate I earn from qualifying purchases.

    Cover crops

    http://www.motherearthnews.com/organic-gardening/cover-crops-improve-soil-zmaz09onzraw.aspx


    As an Amazon Associate I earn from qualifying purchases.

    UNIX: create symbolic link ln -s

    Symbolic link is a directory that points to another directory:

    $ sudo ln -s TARGET_DIR SYMBOLIC_LINK_DIR



    Example 1:

    $ cd /System/Library/Frameworks/JavaVM.framework/Versions

    $ sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/ "1.8.0_20-ea"
    $ ls -alt
    lrwxr-xr-x  1 root  wheel   59 May 14 16:24 1.8.0_20-ea -> /Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/


    Example 2:

    Debian linux Apache location: /var/www
    Mac Apache default location: /Library/WebServer/Document

    On Mac to mimic the Debian linux's Apache server in /var/www you can create a symbolic link that points to Mac's default server location:


    $ sudo ln -s /Library/WebServer/Documents www



    originally posted on 7/24/2009

    If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

    Donate Bitcoins



    As an Amazon Associate I earn from qualifying purchases.

    Switching version of Java on Mac

    To check the currently installed version of java on your Mac:

    $ java -version
    java version "1.6.0_65"


    (Welcome back to 2006!)


    You can download Java 1.7, 1.8 and 1.9 at Oracle and write down WHERE they install it:

    http://www.oracle.com/technetwork/java/javase/downloads/index.html




    Using SYMBOLIC LINKS I created locations of my various Java locations:

    sudo ln -s location_of_JDK "version_name"



    for example:

    $ sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/ 1.8.0_51




    Uki@ Versions $ ls -al
    total 72
    drwxr-xr-x 12 root wheel 408 Jul 29 12:03 .
    drwxr-xr-x 11 root wheel 374 Jul 29 11:50 ..
    lrwxr-xr-x 1 root wheel 10 Jul 29 11:50 1.4 -> CurrentJDK
    lrwxr-xr-x 1 root wheel 10 Jul 29 11:50 1.4.2 -> CurrentJDK
    lrwxr-xr-x 1 root wheel 10 Jul 29 11:50 1.5 -> CurrentJDK
    lrwxr-xr-x 1 root wheel 10 Jul 29 11:50 1.5.0 -> CurrentJDK
    lrwxr-xr-x 1 root wheel 10 Jul 29 11:50 1.6 -> CurrentJDK
    lrwxr-xr-x 1 root wheel 10 Jul 29 11:50 1.6.0 -> CurrentJDK
    lrwxr-xr-x 1 root wheel 59 Jul 29 12:03 1.8.0_51 -> /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/
    drwxr-xr-x 7 root wheel 238 Jul 29 11:50 A
    lrwxr-xr-x 1 root wheel 1 Jul 29 11:50 Current -> A
    lrwxr-xr-x 1 root wheel 52 Jul 29 11:50 CurrentJDK ->/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents
    Uki@ Versions $


    now I can switch my Java to 1.8 by redirecting CurrentJDK:

    Uki@ Versions $ sudo rm -r CurrentJDK
    Uki@ Versions $ sudo ln -s 1.8.0_51 CurrentJDK

    Check that change took place: 


    Uki@ Versions $ ls -altotal 72
    drwxr-xr-x 12 root wheel 408 Jul 29 12:07 .
    drwxr-xr-x 11 root wheel 374 Jul 29 11:50 ..
    lrwxr-xr-x 1 root wheel 10 Jul 29 11:50 1.4 -> CurrentJDK
    lrwxr-xr-x 1 root wheel 10 Jul 29 11:50 1.4.2 -> CurrentJDK
    lrwxr-xr-x 1 root wheel 10 Jul 29 11:50 1.5 -> CurrentJDK
    lrwxr-xr-x 1 root wheel 10 Jul 29 11:50 1.5.0 -> CurrentJDK
    lrwxr-xr-x 1 root wheel 10 Jul 29 11:50 1.6 -> CurrentJDK
    lrwxr-xr-x 1 root wheel 10 Jul 29 11:50 1.6.0 -> CurrentJDK
    lrwxr-xr-x 1 root wheel 59 Jul 29 12:03 1.8.0_51 -> /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/
    drwxr-xr-x 7 root wheel 238 Jul 29 11:50 A
    lrwxr-xr-x 1 root wheel 1 Jul 29 11:50 Current -> A
    lrwxr-xr-x 1 root wheel 8 Jul 29 12:07 CurrentJDK -> 1.8.0_51
    Uki@ Versions $ java -version
    java version "1.8.0_51"
    Java(TM) SE Runtime Environment (build 1.8.0_51-b16)










    ~~~~~~~~~~~~~~~~~~~~~~~










    It is also useful to create JAVA_HOME as a lot of apps use that.




    Open your shell startup script, most of the time it is ~/.profile







    edit ~/.profile






    --------------------------------

    # JAVA updated: May 14, 2015
    # other versions: /System/Library/Frameworks/JavaVM.framework/Versions/
    # set up what CURRENT points to
    export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
    # add Java home to path
    export PATH=${PATH}:${JAVA_HOME}/bin






    --------------------------------






    $ java -version


    java version "1.8.0_20-ea"


    Java(TM) SE Runtime Environment (build 1.8.0_20-ea-b05)



    Java HotSpot(TM) 64-Bit Server VM (build 25.20-b05, mixed mode)










    If you mess up you will get messages like:


    $ java -version



    Unable to locate an executable at "/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/bin/java" (-1)






    That is because the folder you point at has to have /bin/java in it.


    Please note that your system Java level is independent from you Android Eclipse Java setting (1.6)









    http://stackoverflow.com/a/23396850/3566154










    If you like this post, please give me your 2 cents ($0.02 litterally) to show token of appreciation and encourage me to write more:

    Donate Bitcoins



    As an Amazon Associate I earn from qualifying purchases.

    Electric rototiller cultivator

    Today, I have been testing my new electric tiller.

    Many say that a tiller should be your first mechanized tool.

    The assembly was very simple with Phillips screwdriver as only tool needed.

    My first impression was that the cutting blades look cheap, but after converting about 100 square feet of grass into a planting row, I don't have any issues with the quality.

    The tiller eagerly goes after first inch of ground, but to go deeper I had to break the ground with the spade. This still saves enormous amount of work as I don't have to turn over the soil, but just lean on the spade.

    The roots wrap around the blades, and I well have to clean them later, I definitely would like a quick release instead of the bolt.

    I like the fact that the tiller is electric, not gasoline driven, it is definitely quieter and easy to turn on, and off. For remote sites a small power generator would be a must, but this is not an issues within couple hundred feet from the power outlet.

    I definitely believe that tiller should be your first mechanized tool.



    As an Amazon Associate I earn from qualifying purchases.

    King Bolete (Boletus sp.)

    I have ordered two types to try them under oaks, pine and spruce trees I have. I will review the success later on.




    http://mushroom-collecting.com/mushroomking.html


    As an Amazon Associate I earn from qualifying purchases.

    Oak tree (Quercus sp.)

    Since most of my property is covered with large, mature oak trees, it is essential to review all possibilities of using this ecosystem for purpose of the permaculture.

    First note is on building tall beds surrounding the trees; unfortunately the roots need access to air and crowding around the trunk may weaken the tree itself, so use common sense on what your ecosystem can realistically sustain.

    The obvious candidates would be shade loving plants and fungi.

    Shade loving plants:

    • aloe
    • many common vegetables (try and see what survives)
    Mushrooms (fungi) compatible with oak:
    • Boletus sp.




    As an Amazon Associate I earn from qualifying purchases.

    Avocado (Persea americana)

    It is very easy to plant avocado, just stick the golf ball sized seed in the moist soil and let it be. OK, you can improve on that, there is a top end and bottom end, the bottom likes to be moist, top should be sticking up from the soil.

    When watering avocado plant soak the well draining soil and leave it to dry, then repeat the cycle.

    You will however have to wait about 3 years before the young tree bears any fruit. You can get avocados from pot size plant about 3 or 4 feet tall, you might have to clip the top if your tree growing too tall. 

    To assure your avocado produces fruits make sure to plant several trees, the flowers that open for couple of days are at first female then male, so self-pollination is impossible. The plant can be pollinated by insects or wind (or brush). A mature tree can produce 60 (the norm) to 200 pounds of fruit.

    Much have been said about health benefits of eating avocados, they are probably one of the best things you can ad to your daily diet.

    /




    As an Amazon Associate I earn from qualifying purchases.

    Heather (Calluna vulgaris)

    Polish: Wrzos


    As an Amazon Associate I earn from qualifying purchases.

    Ethnofarmacology

    http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3791396/#!po=14.7273


    As an Amazon Associate I earn from qualifying purchases.

    Berberis vulgaris



    As an Amazon Associate I earn from qualifying purchases.

    Green Alder (Alnus viridis)

    Nitrogen fixing up to 55 pounds per acre, good under crop for taller timber.

    Tea used for infections and fever (anti inflammatory).



    As an Amazon Associate I earn from qualifying purchases.

    Common Bugleweed (Ajuga reptans)

    This plant has been considered a nuisance grass weed overtaking my whole lawn.

    In traditional Austrian folk medicine this plant tea is used as anti inflammatory treatment for upper respiratory problems.

    Study has shown accelerated wound healing and anti inflammatory properties.


    As an Amazon Associate I earn from qualifying purchases.

    American Toad

    Look what I found hiding in the flower bed!

    Toads are very welcome visitors to your garden, the hunt insects and snails at night.


    As an Amazon Associate I earn from qualifying purchases.

    Sweet Corn (Zea mays)

    Sweet corn likes a ph neutral, reach soils in the full sunlight. You can start planting when the soil temperature reaches 50-60 F, for me it is May 15.

    On the small scale, you can plant couple of seeds, about 1.5 inch deep, in a row about 12 inch apart, since the corn is air pollinated, multiple rows will benefit the plants positioned on the edge, so plan to plant square, or rounded plots.

    Since you are planting couple of seeds per spot you will have to select the healthiest plant and snip others, this of course would not pay on the large scale.

    Corn has shallow roots, so it needs moist top soil.

    You can plant pumpkin/squash and green beans next to each corn plant, they will use it as trellis. Green beens will fix atmospheric nitrogen in the soil, for the NEXT YEAR cultivation, after they decompose.




    As an Amazon Associate I earn from qualifying purchases.

    Tomatoes

    Tomatoes in my region (northern Illinois) grow from May 3 (last average sprint frost) until October.

    You should be seeding tomatoes about 6-8 weeks before you transplant them into outdoor soil, so for target date of May 15, I have to start at beginning of April.

    Place seeds in shallow depth, in the small, drained containers, with room temperature, moist soil, assume 70-80% germination rate. They will take up to 2 weeks for germination. Control humidity with plastic, but allow some airflow.

    As soon as the seeds germinate they will need plenty of the sunlight. If you are using a full-spectrum lights make sure you have them on about 16 hours a day.

    Don't worry too much about selection of tomatoes, plant as many varieties you can and keep in mind that if you are planting for your local consumption:

    • tomatoes don't need to be shipped across the country, so they don't need to tough skinned
    • tomatoes don't need to "survive" a week before being placed on the store shelf, so they don't need to be rot resistant
    • tomatoes don't need to be a size of pumpkin, because they are not for (freak) show
    However tomatoes need to be:
    • tasty to you
    • right size for you to eat
    • adaptable to your soil
    • adaptable to your micro flora and fauna
    Based on this two sets of criteria almost all of the heirloom and hybrid varieties today will NOT be suitable, so you have to find your own favorite by TRYING and SAVE THE SEEDS.



    Resources:
    http://www.wisconline.com/almanac/gardening/springfrost.html




    As an Amazon Associate I earn from qualifying purchases.

    Seed bank

    A good 60 second spot on the World Seed Bank in Norway.


    https://youtu.be/gFAcyJxIguA




    As an Amazon Associate I earn from qualifying purchases.

    Transplanting Grapes

    I had a couple of rows of grapes growing for few years in partial shade. The grapes were not strong and did not produce. I decided to move them to an area by the building where they were to get a lot of sun and heat.

    When moving the grapes you have to dig out a lot of the root.
    The grapes "like to have air" so even if the eventually will be hugging the wall, I planted them about 0.5m away from the wall.

    I have dug up a deep hole and added leaf mulch to hold the moisture, then covered it with tilled soil.











    As an Amazon Associate I earn from qualifying purchases.

    Java: Generics, instanceof

    In this exercise you will practice Java Generics, and instanceof operator




    Note, you will have to implement Book, EBook and PaperBook classes on your own.










    As an Amazon Associate I earn from qualifying purchases.

    Java: concurrency with Runnable

    In this simple tutorial we will see how to process some work in multiple threads using limited pool of x threads. Please note that there is an overhead in using threads.

    You could use number of available CPUs as your pool size.



    Result:


    CPUs 8
    thread with value 1 current sum 3
    thread with value 2 current sum 3
    thread with value 3 current sum 6
    thread with value 4 current sum 10
    thread with value 5 current sum 15
    thread with value 6 current sum 21
    thread with value 7 current sum 28
    thread with value 8 current sum 36
    final sum 120
    thread with value 11 current sum 66
    thread with value 13 current sum 91
    thread with value 15 current sum 120
    thread with value 9 current sum 45
    thread with value 14 current sum 105
    thread with value 12 current sum 78
    thread with value 10 current sum 55



    As an Amazon Associate I earn from qualifying purchases.

    Android: Create Camera App in IntelliJ


    Create new Android Module






    Name the application
    Name the main Activity class




    Name the Module and its location
    Choose API 17 or higher





    • In Preferences, find Java Compiler
    • Add your project (AndroidCamera)






    Set Java Compiler to Java 1.6





    Set Module Language Level also to Java 6





    Run the MainActivity class




    Select emulator








    follow the code tutorial :

    http://tech.ukidlucas.net/2014/11/android-camera.html






    As an Amazon Associate I earn from qualifying purchases.

    Java: introduction to Java Android programming

    Since Android is one of the most prolific uses of Java UI today, we will do a short overview of that platform. We will use the same IntelliJ IDEA we use for or regular java programming.

    Android SDK setup:

    http://tech.ukidlucas.net/2014/09/android-sdk-set-up-in-ide.html


    First of all we have to make sure our IDE has Android plugin:




    Download at least one SDK level e.g. API 17:






    Create a new Android MODULE:




    Name the Module:




    Accept default Module SDK, you should have API 17 or up:





    Set output path:



    Try to run the project:








    Android (with ANT) project structure, please not it is different from Maven, or Gradle structure:




    We will create an app as such:






    With following structure:



















    Please follow the rest of the tutorial here:

    http://tech.ukidlucas.net/2014/11/android-mediaplayer.html


    As an Amazon Associate I earn from qualifying purchases.

    My favorite quotations..


    “A man should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.”  by Robert A. Heinlein

    "We are but habits and memories we chose to carry along." ~ Uki D. Lucas


    Popular Recent Articles