Blogs:JaroslavTulach:Daily Life

From APIDesign

(Difference between revisions)
Jump to: navigation, search
(JavaOne2014: Need Speakers for My Session!)
Line 7: Line 7:
[[JavaOne2014]] is around the corner and my sessions have been scheduled. I start with a BOF on Monday evening called ''Virtually Inside-Out!'' - it is going to be discussion between authors of alternative [[JVM]]s. So far we are two: I have mine [[Bck2Brwsr]] and Niklas has [[RoboVM]].
[[JavaOne2014]] is around the corner and my sessions have been scheduled. I start with a BOF on Monday evening called ''Virtually Inside-Out!'' - it is going to be discussion between authors of alternative [[JVM]]s. So far we are two: I have mine [[Bck2Brwsr]] and Niklas has [[RoboVM]].
-
Don't you know a developer working on own [[JVM]] who will be at [[JavaOne2014]]? If so, please tell him to [[Talkback|contact me]] and stop by! I plan to make the BOF a lively chat (how did you implemented [[closures|lambdas]]?, how did you implemented defender methods?), but in case we don't have a topic to talk about, I am ready to explain why [[value vlasses]] should not be in [[JVM]] and why [[InvokeDynamic]] is a completely stupid idea. Anyone from [[JDK]] team to defend these proposals?
+
Don't you know a developer working on own [[JVM]] who will be at [[JavaOne2014]]? If so, please tell him to [[Talkback|contact me]] and stop by! I plan to make the BOF a lively chat (how did you implemented [[closures|lambdas]]?, how did you implemented defender methods?), but in case we don't have a topic to talk about, I am ready to explain why [[value classes]] should not be in [[JVM]] and why [[InvokeDynamic]] is a completely stupid idea. Anyone from [[JDK]] team to defend these proposals?
On Tuesday morning [[Toni]] and me will continue with [[DukeScript]] tutorial. In case you use [[Java]] and want to learn how to code for [[iOS]], [[Android]], [[JavaFX]] and [[Bck2Brwsr|browsers]], stop by. We will help you create your first application that is written once and displayed anywhere!
On Tuesday morning [[Toni]] and me will continue with [[DukeScript]] tutorial. In case you use [[Java]] and want to learn how to code for [[iOS]], [[Android]], [[JavaFX]] and [[Bck2Brwsr|browsers]], stop by. We will help you create your first application that is written once and displayed anywhere!
Line 14: Line 14:
--[[User:JaroslavTulach|JaroslavTulach]] 18:56, 10 September 2014 (UTC)
--[[User:JaroslavTulach|JaroslavTulach]] 18:56, 10 September 2014 (UTC)
 +
==== Develop in [[NetBeans]] and Deploy to [[AppStore]] ====
==== Develop in [[NetBeans]] and Deploy to [[AppStore]] ====

Revision as of 18:56, 10 September 2014

Contents

Daily Life Blog

JavaOne2014: Need Speakers for My Session!

JavaOne2014 is around the corner and my sessions have been scheduled. I start with a BOF on Monday evening called Virtually Inside-Out! - it is going to be discussion between authors of alternative JVMs. So far we are two: I have mine Bck2Brwsr and Niklas has RoboVM.

Don't you know a developer working on own JVM who will be at JavaOne2014? If so, please tell him to contact me and stop by! I plan to make the BOF a lively chat (how did you implemented lambdas?, how did you implemented defender methods?), but in case we don't have a topic to talk about, I am ready to explain why value classes should not be in JVM and why InvokeDynamic is a completely stupid idea. Anyone from JDK team to defend these proposals?

On Tuesday morning Toni and me will continue with DukeScript tutorial. In case you use Java and want to learn how to code for iOS, Android, JavaFX and browsers, stop by. We will help you create your first application that is written once and displayed anywhere!

I'll finish on Tuesday noon talking about API Design checklist. I'd like to name at least ten things one should check for, but so far I have about two. Don't you have any idea what could be in such checklist? If so, please talkback!

--JaroslavTulach 18:56, 10 September 2014 (UTC)

Develop in NetBeans and Deploy to AppStore

Minesweeper for iOS has been published. First iBrwsr powered DukeScript application has been deployed to AppStore. If you own an iPad or iPhone, give it a try: https://itunes.apple.com/us/app/fair-minesweeper/id903688146

And don't forget you can use NetBeans to develop such applications yourself! Install DukeScript NetBeans support.

--JaroslavTulach 15:29, 21 August 2014 (UTC)

Develop in NetBeans and Deploy to GooglePlay

Minesweeper for Android has been published. First DlvkBrwsr powered DukeScript application has been deployed to GooglePlay. Give it a try: https://play.google.com/store/apps/details?id=org.apidesign.demo.minesweeper

And don't forget you can use NetBeans to develop such applications yourself! Install DukeScript NetBeans support.

--JaroslavTulach 05:17, 31 July 2014 (UTC)

Japanese Translation is Real

Cover of Japanese translation of TheAPIBook. I am amazed, the book is about 30% shorter, yet is seems to contain all the content of the original one!

Image:PracticalAPIDesignInJapanese.jpg

Great work Yoshiki!

--JaroslavTulach 06:51, 17 July 2014 (UTC)

Bck2Brwsr Revision 0.9 is Released!

Version 0.9 eliminates useless stack assignments. Instead of doing

var stI0 = lcI0;
var stI1 = lcI1;
var stI0 = stI0 + stI1;
return stI0;

the now generated code is

return lcI0 + lcI1;

which is shorter and more human readable. However I doubt the V8 virtual machine sees any benefits - I think the final native code remains the same. But at least the debugging of the generated JavaScript code is now easier - there is less Step Over invocations and it mimics more closely the original Java source.


Optimized the ahead-of-time compilation, so now the http://xelfi.cz/minesweeper/bck2brwsr/ demo starts up instantly. I had to do it, because it was so embarrassing to see TeaVM to boot the same application so quickly: The initial delay is gone, and moreover it downloads necessary libraries in parallel and on background. Now we are ready for next step: share the libraries between different applications.

Can ObfuscatePerLibrary - e.g. each JAR gets compiled ahead-of-time into its own JavaScript file, which can be shared between many applications.

--JaroslavTulach 06:34, 10 June 2014 (UTC)

Podcast related to Japanese Translation

Japanese translation announcement: --JaroslavTulach 18:45, 2 June 2014 (UTC)

Coolest NetBeans Plugin: MineSweeper!

MineSweeper is re-implementation of classical computer game available on each Microsoft Windows since the initial introduction in version 3.1. Surprisingly my kids (who otherwise spend hours with tablets) knew nothing about the game until...

I needed a demonstration for DukeScript technology that is using Java to code the application logic and HTML to render its UI. I decided to write a MineSweeper game as a basic demo. I've managed to execute the demo in a browser (via Bck2Brwsr VM: check it on-line) and Android (available on GooglePlay), and iOS (available on AppStore), but today I achieved another milestone: the MineSweeper module is available for every user of NetBeans 8.0!

Get the module via Tools/Plugins or visit its plugin page and enjoy your productivity boost! Since Sep 15, 2014 the MineSweeper NetBeans integration can be used as a starting point to develop own DukeScript applications. Just press the Develop button and a new project wizard will be shown as following picture shows:

Image:MineSweeperDevelop.png

Then follow the steps as described at DukeScriptInNetBeans or CRUD video.

MineSweeper Sources

In case you are interested in trying the code yourself, here is a way to get the sources:

$ git clone https://github.com/jtulach/minesweeper
$ cd minesweeper
$ mvn install
$ cd client-netbeans
$ mvn clean package nbm:cluster nbm:run-platform -Dnetbeans.version=dev-SNAPSHOT

and stats NetBeans Platform application with MineSweeper module in. Give it a try and let's make NetBeans better by using more DukeScript APIs! Don't forget that you can package the same application to run on Android, iOS or in a browser. Become a developer that can: Write once, run anywhere!

Releasing a NetBeans Plugin

To release a DukeScript application as NetBeans plugin, one needs to sign it: changeset. Now just run the build with -Dpassword=xyz option and all JARs as well as NBM file will be signed.

--JaroslavTulach 12:35, 15 April 2014 (UTC)

Debug Mixed Java/JavaScript Applications

Before Nashorn (the JDK8 JavaScript engine) performing calls between Java and JavaScript was a pain. Especially when it came to debugging. But now, one can completely freely mix Java and JavaScript inside of a single thread and still be able to debug and inspect the slightest details of Java as well as JavaScript stack frames.

See video showing the power of the synergy between NetBeans 8.0 and Nashorn!

--JaroslavTulach 15:53, 20 February 2014 (UTC)

Japanese Translation of Practical API Design

The Japanese translation of my book has been in progress for several months. Recently I've been asked by Yoshiki to write a preface.

I wrote one and I tried to express how wonderful experience it had been to participate in the Japanese translation. I believe the Japanese version of my book will be great.

Thanks Yoshiki for your work. Dear (Japanese reading) readers, enjoy!

--JaroslavTulach 09:28, 27 January 2014 (UTC)

Unify Eclipse and NetBeans UI

I've managed to prototype a way to share UI between two rich client platforms. These days it is popular to use HTML, so I did it. However in addition to that I managed to remove all need for JavaScript. Design in HTML and code your application logic in Knockout4Java.

See how!

--JaroslavTulach 18:01, 21 December 2013 (UTC)

JavaFX for iOS via NetBeans

I am pleased to announce there is now a way to develop applications for iOS using your favorite language (I mean Java) and your favorite development IDE (I mean NetBeans).

With the help of Prague's JavaFX iOS team we now have a NetBeans plugin that helps anyone develop JavaFX based Java apps for iOS. Many thanks should also go to RoboVM guys for creating such easy to use Maven plugin.

Enjoy JavaFX on iOS!

--JaroslavTulach 12:42, 10 December 2013 (UTC)

API Design Guidelines

I have discovered a nice checklist of guidelines considered good for API design.

--JaroslavTulach 09:30, 2 December 2013 (UTC)

Cloud IDE for Kids

Scratch is getting better and better. If you have not done that yet, give it a try!

--JaroslavTulach 08:48, 2 December 2013 (UTC)


The Smallest Linux JDK

The profiles support is coming for JDK8. Not only it is coming, it works! In case you are searching for a small Java, give profiles a try. They are easy to start with.

--JaroslavTulach 15:12, 27 November 2013 (UTC)

DEW - Java Meets Web with Your Help!

I'm proud to announce DEW - the development environment for web (of course in Java). I am tired of observing JavaScript being on the rise while pretending it is more than just a script language. The real language is Java and it does quite well with HTML. Check DEW here: http://dew.apidesign.org/dew/ and you will not regret!

The more you fiddle with DEW and the more you alter (and save) the samples, the more we will help Java get Bck2Brwsr!

--JaroslavTulach 16:56, 28 October 2013 (UTC)

Maven and Bck2Brwsr 0.8

I've just updated instructions to use bck2brwsr 0.8 from command line. Me and Jonathan Fuerth also verified that the Bck2Brwsr Maven archetype can now be used in Eclipse.

Nothing can stop us from bringing Java Bck2Brwsr!

--JaroslavTulach 12:22, 29 September 2013 (UTC)

Use the Debugger, Stupid!

Debugger is a very useful tool. I greatly recommend it to everyone who asks stupid questions on mailing lists and reports vague bugs into bug tracking systems. If your application does not work: use the debugger! Read here to learn how.

--JaroslavTulach 09:17, 20 August 2013 (UTC)

Bck2Brwsr 0.7 Released!

Write applications once and deploy them to FXBrwsr as well as Bck2Brwsr:

--JaroslavTulach 07:50, 9 May 2013 (UTC)

Bck2Brwsr 0.6 is Released!

Now you can write your own real applications for browser in Java:

  • Full featured demo Twttr demo
  • Bck2Brwsr provides better binding of complex classes (defined by a special @Model) annotation
  • The @Model classes can be obtained from a server via JSON and JSONP. Use @OnReceive annotation
  • Browser testing harness has nicer output with UL and expandable LI

--JaroslavTulach 21:24, 14 April 2013 (UTC)

Older Blog Posts

OlderBlogPosts...

--JaroslavTulach 21:00, 14 April 2013 (UTC)


Personal tools
buy