Blogs:JaroslavTulach:Daily Life

From APIDesign

(Difference between revisions)
Jump to: navigation, search
Current revision (04:37, 1 October 2021) (edit) (undo)
 
(93 intermediate revisions not shown.)
Line 1: Line 1:
-
=== Daily Life Blog ===
+
=== Daily Life ===
<startFeed />
<startFeed />
-
==== Use the [[Debugger]], Stupid! ====
+
==== [[Apache]] Projects can Distribute [[GPLwithClassPathException]] components! ====
-
[[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 [[debugger|here]] to learn how.
+
Thanks to our [[DirectAction]] - e.g. organizing a [[DirectAction|vote without a common consent]] - it has been decided that as of 2021 Apache projects can distribute [[GPLwithClassPathException]] components in their complementary binaries!
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:17, 20 August 2013 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 06:38, 19 July 2021 (UTC)
-
==== [[Bck2Brwsr 0.7]] Released! ====
+
==== Never forget to add [[GradleWrapper]]! ====
-
Write applications once and deploy them to [[FXBrwsr]] as well as [[Bck2Brwsr]]:
+
Including [[GradleWrapper]].properties in each [[Gradle]] project follows the [[PropertyFiles|best practices]]: If you want to be sure your [[Gradle]] projects build in a year or two then make sure to always include the [[GradleWrapper]] and exactly specify the [[Gradle]] version!
-
{{:Bck2Brwsr_0.7}}
+
--[[User:JaroslavTulach|JaroslavTulach]] 11:31, 22 June 2021 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 07:50, 9 May 2013 (UTC)
+
==== [[Micronaut]] Brings Compile Time [[Annotation]]s to [[JavaEE]] Developers ====
-
==== [[Bck2Brwsr 0.6]] is Released! ====
+
[[Micronaut]] brings compile time annotations to enterprise Java programmers. That's great!
-
Now you can write your own real applications for browser in Java:
+
--[[User:JaroslavTulach|JaroslavTulach]] 04:56, 22 July 2020 (UTC)
-
{{:Bck2Brwsr_0.6}}
+
==== Spreading [[Malware]] ====
-
--[[User:JaroslavTulach|JaroslavTulach]] 21:24, 14 April 2013 (UTC)
+
At the end of May 2020 the GitHub guys announced a [[Malware]] attacking developer machines via [[NetBeans]] [[Ant]] based projects. [[Malware|Read more]]...
-
==== [[Twitter]] Client ====
+
--[[User:JaroslavTulach|JaroslavTulach]] 15:31, 2 June 2020 (UTC)
-
I've just finished [http://xelfi.cz/twttr/ Twttr Client] demo. Written in very compact [[Java]] with the help of [[AnnotationProcessor]]s. Runs in [[Java]] pluginless browser thanks to [[Bck2Brwsr]] [[VM]]. [[DOM]] tree is updated by [[Knockout.js]].
+
==== Twenty Years: Sun Microsystems Acquires NetBeans ====
-
Feel the [http://xelfi.cz/twttr/ power]!
+
PALO ALTO, Calif. - Oct. 20, 1999 - Sun Microsystems, Inc. today announced it [[SunBuysNetBeans|has acquired NetBeans]] Ceska republika a.s., a Czech Republic joint stock company (NetBeans), by means of an asset purchase. NetBeans is a leading developer of cross-platform Java-based integrated development environments (IDE). NetBeans IDE products combined with products from Sun's acquisition of Forte Software, Inc., also announced today, will provide the million-plus Java Development Kit (JDK) software customers with software choices that range from entry-level offerings for individual developers and students to enterprise-class offerings for team development. Sun will also provide customers with the expert consulting and support services they need to dot-com their businesses.
-
--[[User:JaroslavTulach|JaroslavTulach]] 13:04, 10 April 2013 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 06:07, 20 October 2019 (UTC)
-
==== [[Bck2Brwsr]] 0.5: Better [[Knockout.js]] Bindings, More Compact Code & Co. ====
+
==== My First Post on Medium is out! ====
-
{{:Bck2Brwsr_0.5}}
+
My first blog post on medium - [[AOTMadeFaster|Improving performance of GraalVM native images with profile-guided optimizations]] is out. It rounds up my last few months efforts as the '''-Dgraal.PGOInstrument''' option is what [[I]] have been intermitently working on for at least [[FourthGraalAdventures#Collecting_profiles_for_guided_optimizations|last year]].
-
--[[User:JaroslavTulach|JaroslavTulach]] 13:43, 26 March 2013 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 08:47, 30 August 2019 (UTC)
-
==== Missing '''goto''' in [[JavaScript]] and [[Java]]? ====
+
==== [[Graal.js]] is in [[NetBeans]] ====
-
Are you missing [[Bck2BrwsrFlow|goto]] in your favourite language? Here are two ways to use [[Bck2BrwsrFlow|efficient and flexible code flow]] with as many ''goto''s as needed.
+
[[Graal.js]] version 19.0.0 has been integrated as the default scripting engine into [[Apache]] [[NetBeans]] 11.1. Read [[GraalJS|more]]...
-
[[Good]] programmers can code [[Fortran]] in any language!
+
--[[User:JaroslavTulach|JaroslavTulach]] 14:37, 7 June 2019 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:36, 13 March 2013 (UTC)
+
==== Four Years in [[OracleLabs]] ====
-
==== Try [[Java]] in Your Browser! ====
+
Time to [[FourthGraalAdventures|recap]] as four years ago, on May 1st, I joined OracleLabs. What has happened during last year? I had fun with [[FourthGraalAdventures|collecting profiles]] for further optimizations. I have [[FourthGraalAdventures|fixed my first CVE]] and make [[Truffle]] meta-secure. I turned [[FourthGraalAdventures|Java into Universal language]]. Read more about my [[FourthGraalAdventures]]...
-
[[Bck2Brwsr 0.4]] has been published and uploaded to java.net [[Maven]] repository. Give it a try!
+
--[[User:JaroslavTulach|JaroslavTulach]] 05:50, 1 May 2019 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 23:26, 7 March 2013 (UTC)
+
==== [[JDK]]11. OMG! [[Nashorn]] got Deprecated! ====
-
==== Three Steps to See [[Java]] [[Bck2Brwsr|Back in Browser]] ====
+
[[Nashorn]], the so far default [[JavaScript]] engine of [[JDK]] got deprecated in [[JDK11]]. What are you going to do? Freak out? Jump out of the window? Switch to ''Rhino''? Give up on [[Java]] completely and use [[NodeJS]]? No, use ''Graal.js''! Here is [[Nashorn|how]]:
-
There is a simple, [[Bck2BrwsrViaCLI|three steps way]] to generate sample [[Bck2Brwsr]] project and run it in your browser. Will you spend few minutes to see completely secure [[Java]] running everywhere?
+
{{#ev:youtube|SraYjqB0oX8}}
-
--[[User:JaroslavTulach|JaroslavTulach]] 18:12, 13 February 2013 (UTC)
+
Don't hesitate and make the switch! [[Apache]] [[NetBeans]] has just switched today!
-
==== [[Java]] Code in [[Chrome]] is Now 10 Times Faster! ====
+
--[[User:JaroslavTulach|JaroslavTulach]] 19:34, 23 January 2019 (UTC)
-
Today Ľubomír finished first phase of his [[Bck2BrwsrViaRegisters|register based rewrite]] of [[Bck2Brwsr]] virtual machine. The results are amazing. Our [[Bck2BrwsrViaRegisters|matrix multiplication]] benchmark got ten times faster! See the [[Bck2BrwsrViaRegisters|graphs]] and congratulate Ľubomír together with me!
+
==== Forget [[Go]]! ====
-
--[[User:JaroslavTulach|JaroslavTulach]] 12:31, 14 December 2012 (UTC)
+
[[Go]] is great. Are you seeking a low level [[OS]] language? Heard about [[Go]] & its benefits? Convinced, or just interested, and still searching? If the latter: Have you considered [[Java]]? Because [[OracleLabs]] [[GraalVM]] [[NativeImage]] turns [[Java]] into a system language!
-
==== I am [[OpenJDK]] Contributor ====
+
Read about this [[Go|alternative to Go]].
-
I am pleased to announce that my [http://mail.openjdk.java.net/pipermail/swing-dev/2012-December/002430.html patch] for [[OpenJDK]] has been accepted. Now I feel like a proud [[OpenJDK]] contributor.
+
--[[User:JaroslavTulach|JaroslavTulach]] 13:21, 1 October 2018 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 11:43, 10 December 2012 (UTC)
+
==== [[Git]] on Steroids: Fire Your Integration Guy! ====
-
==== [[Lookup]] is an [[Ubuntu]] Package! ====
+
Stefan asked who shall be [[MultiGitRepository#Appendix_B:_Who_Shall_Integrate_it_All.3F|responsible for integration]] in the [[MultiGitRepository]] setup? Should there be an ''integration guy''? No, its 21st century and we know how to use [[Git]], right? The right tool is called pull request!
-
I've just noticed that [[Lookup]] library is now a separate package for [[Ubuntu]]. When installing [[VisualVM]], on [[Kubuntu]] 12.10 the following package is installed as well: '''libnb-org-openide-util-lookup-java''' ''(7.0.1+dfsg1-5ubuntu2)''.
+
As such fire your [[MultiGitRepository#Appendix_B:_Who_Shall_Integrate_it_All.3F|integration guy'']]!
-
I knew [[Lookup]] is needed for any [[NetBeans]] platform based application, but it used to be packaged as part of [[NetBeans Platform]] package. Looks like somebody started to re-use the [[Lookup]] as an independent library and needed a separate package - [[good]]!
+
--[[User:JaroslavTulach|JaroslavTulach]] 07:50, 22 May 2018 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 05:08, 6 December 2012 (UTC)
+
==== [[Git]] on Steroids: Local Collaboration Area ====
-
==== [[Bck2Brwsr]] ====
+
Turns out that one gets very useful [[MultiGitRepository#Appendix_A:_Local_Collaboration_Area]]: the '''master''' branch in each ''slave repository'' of the [[MultiGitRepository]] setup is in fact the best place for team members to collaborate without publishing the changes to the final integration destination.
-
I had little time for blogging since JavaOne and today I can explain why. During long nights and lonely weekends I was working on [[Bck2Brwsr]] project - yet another way to execute [[Java]] in a browser. Today I am proud to announce [http://xelfi.cz/bck2brwsr/ second milestone demo]. All you need now is a small ''bck2brwsr.js'' bootstrap and a [[JAR]] file - suddenly your [[Java]] code appears in a browser.
+
--[[User:JaroslavTulach|JaroslavTulach]] 10:54, 4 May 2018 (UTC)
-
I'd like to thank ''jtulach'', my cousin, for helping with some more advanced tricks with [[JavaScript]]. Especially the stub class function which gets replaced by real class implementation on its first invocation is a trick I might be searching for for ages...
+
==== [[Git]] on Steroids: Master Multiple Repositories ====
-
--[[User:JaroslavTulach|JaroslavTulach]] 16:49, 28 November 2012 (UTC)
+
Let me introduces [[MultiGitRepository]] - aka [[Git]] on steroids to you. I have seen a lot of confusion when it comes to working with multiple repositories and keeping them in orchestration, but I believe it is not that complex. Everything we learned about distributed version controls applies. However this time it has to be applied on a completely new level!
-
==== How Much Time It Takes to Fix a Single Line? ====
+
Master your [[MultiGitRepository]] in few easy lessons!
-
How much time it takes to fix a single line in the NetBeans IDE? What is your guess? Make it now and then compare it with my own [[git|experience]].
+
--[[User:JaroslavTulach|JaroslavTulach]] 15:20, 23 April 2018 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 19:01, 23 November 2012 (UTC)
+
==== The [[IDE]] for [[DevOps]]! ====
-
==== Time to Fly for [[JavaOne2012]] ====
+
Admins! [[DevOps]]! In a recent [[StackOverFlow]] developer survey the NetBeans IDE has been rated at 10.9% for Mobile Developers and 8.4% for System Admins/[[DevOps]]. It is weird, but it supports the feeling I had for a long time: NetBeans is the IDE for [[DevOps]]!
-
[[JavaOne2012]] is about to start on Monday and I am about to go to Prague airport and fly to San Francisco. It will be a busy week - I had submitted five proposals assuming at least half of them would be rejected, but I underestimated the influence of being a [[JavaOne]] rockstar (due to [[JavaOne2011]] talk about [[ParadoxesVideo|API Design Paradoxes]]). As a result I have four sessions and one hands on lab. Plus many duties on the booth. Wish me luck and if in Bay area, stop by.
+
Read [[DevOps|more]]...
-
--[[User:JaroslavTulach|JaroslavTulach]] 01:54, 29 September 2012 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 11:18, 15 March 2018 (UTC)
-
==== Lukáš Jungmann's [[TestNG]] ====
+
==== Type-safe Parsing of JSON without any Reflection ====
-
Some of you may remember our [[TestNG]] efforts. During the last nine months and with great delight I could witness Lukáš's changes to be accepted by the Cédric into the [[TestNG]] project. I could see Lukáš's modules getting part of soon to be released [[NetBeans]] IDE 7.2. Most recently I was also present at Lukáš's bachelor thesis acceptance review and saw his work being adored by his review committee. Congratulation for getting the ''A'' mark for your work, Lukáši! And thanks for making (not only) [[NetBeans]] better!
+
In need of compiling Java ahead-of-time? See [https://github.com/JaroslavTulach/incubator-netbeans-html4j/blob/examples/examples/jsonparse/README.md jsonparse] example showing a Maven project that can turn your Java code into self-contained, small (less than '''5M''') and effective code suitable for your microservice or lamda as a service setups. Thanks to [[SubstrateVM]]!
-
--[[User:JaroslavTulach|JaroslavTulach]] 14:58, 21 June 2012 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 12:33, 20 November 2017 (UTC)
-
==== [[DXR3]] driver: The Fun of being a [[Linux]] Developer! ====
+
==== Apache HTML/Java API 1.5 has been released! ====
-
New perspective about Linux API development gained by updating [[DXR3]] kernel driver to run on most recent kernels.
+
Hear the news! As of Oct 23, 2017, there is a release of [[ApacheNetBeans]] subproject: [[ApacheNetBeans#Apache_HTML.2FJava_API_1.5_has_been_released.21|HTML/Java API]]. Hooray [[NetBeans]] continues to move on the [[Apache]] path! Next target? [[Apache]] [[NetBeans Platform]]...
-
--[[User:JaroslavTulach|JaroslavTulach]] 20:02, 7 June 2012 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 13:53, 24 October 2017 (UTC)
-
==== Useful advice: Close [[Derby]] Connection from [[Ant]] ====
+
==== Midlife Crisis of an API Designer ====
-
{{:Talk:Derby}}
+
{{:MidlifeCrisis}}
-
It is nice to know that a [[Derby|page]] written two years ago was useful...
+
--[[User:JaroslavTulach|JaroslavTulach]] 16:08, 5 May 2017 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 07:17, 18 May 2012 (UTC)
+
==== Advanced [[Injection]] in [[Jersey]] ====
-
==== Podcast, Slides and Screencast ====
+
I've just learned a new trick: proper way to do [[JerseyInjection]]. Maybe somebody finds it useful...
-
Description of my [[OSGiCon]] experiences is now available as a podcast [[Media:APITip-OSGiCon.mp3]]. Together with the
+
--[[User:JaroslavTulach|JaroslavTulach]] 05:27, 15 March 2017 (UTC)
-
[[OSGiCon|screencast]] (illustrating point of my [[OSGiCon]] presentation) and [[OSGiCon|slides]] it brings you the ultimate [[Netbinox]] experience to help you speed up start of your [[OSGi]] applications!
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 11:22, 16 April 2012 (UTC)
+
==== My [[GeeCONPrague]] Keynote is Online! ====
-
==== Ask me about [[Netbinox]] at [[OSGiCon]]! ====
+
My [[GeeCONPrague]] keynote is available online. Watch my [[GeeCONPrague|metamorphosis]] yourself:
-
My session at [[OSGiCon]] about the ''fastest OSGi container on the planet'' has been scheduled. On '''Mar 28 @ 14:15 in Reston Suites B''' I reveal the [[OSGiCon|fascinating story]] behind creation of [[Netbinox]]. Stop by, or ask me about [[Netbinox]] anytime during [[OSGiCon]]!
+
{{#ev:vimeo|192624281}}
-
--[[User:JaroslavTulach|JaroslavTulach]] 14:59, 25 March 2012 (UTC)
+
Once you [[GeeCONPrague|survive it]] and get to 5th minute, you'll also see interesting demos showing how fast the [[GraalVM]] and [[Truffle]] can be. Thanks again [[GeeCON]] guys for giving me a chance to speak at your keynote.
-
==== The Migration Guide from [[JUnit]]4 to [[TestNG]] ====
+
--[[User:JaroslavTulach|JaroslavTulach]] 03:44, 4 January 2017 (UTC)
-
We are proud to announce that our improvements to [[TestNG]] (written by Lukáš Jungmann) have been accepted for the next version of [[TestNG]] by Cédric Beust. These enhancements will help the NetBeans project to start switching to [[TestNG]] incrementally.
+
==== [[CleanCode]] at [[OracleLabs]] ====
-
The NetBeans code base contains a lot of existing JUnit3 and JUnit4 tests and we cannot rewrite them all at once. Thus Lukáš improved [[TestNG]] to support an automated mixed mode execution. That way we can slowly start writing new [[TestNG]] tests (and rewrite some of the existing) while being sure that thousands of our current tests continue to run along the [[TestNG|new generation]] ones.
+
This is how we write [[CleanCode]]! At [[GeeCONPrague]] 2016 all [[OracleLabs]] speakers ware our classical outfit. The claim was that it helped us write [[CleanCode]]:
-
We believe that this feature will be useful for other teams as well. In case you are interested, check out our [[TestNG|migration guide]].
+
[[Image:GeeCONKeynoteSpeaker.jpg|640px]]
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:43, 24 February 2012 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 10:16, 29 October 2016 (UTC)
-
==== [[Bode]] on [[API]] Design ====
+
==== Keynote at [[GeeCON]] Prague ====
-
[[Bode]] Miller is the most famous American sportsman (at least in Austria). His [[bode|bibliography]] explains that [[bode|he]] is not only an excellent skier, but his ideas are fundamental for proper API design! Find three reasons [[bode|why]]...
+
[[GeeCONPrague|GeeCON has come to Prague]] and I had a the pleasure to do an initial keynote talk. It is so great when [[GeeCONPrague|such conference]] comes to your home town! Thanks a lot dear, [[GeeCON]] organizers!
-
--[[User:JaroslavTulach|JaroslavTulach]] 14:08, 7 February 2012 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 06:27, 22 October 2016 (UTC)
-
==== [[JDeveloper]] Makes [[NetBeans]] 7.1 Look and Feel Better! ====
+
==== Distribute Non-distributable ====
-
Last year's April I wrote a [[netbeans:WinSys71PressRelease|future press release]] describing all the things we wanted to do to [[NetBeans]] window system. This week is the right time to look back and verify whether we succeeded or not. Inspecting [http://wiki.netbeans.org/wiki/index.php?title=WinSys71PressRelease&diff=50749&oldid=44759 the differences] in our original plans and our [[netbeans:WinSys71PressRelease|current state]] I am not afraid to say we are going to be in pretty good shape once [[NetBeans]] 7.1 FCS is out.
+
[[AutoUpdate]] is a fine [[NetBeans]] technology that can help you distribute things may see non-distributable. [[AutoUpdate|Here]] is a small demo that shows how one can fix broken [[NetBeans]] 8.1 installation.
-
Yes, the release is slightly delayed - originally we wanted to release in November. However looking from a technical side, we delivered what we promised - visual layout editor, {{NB|org-openide-awt|org/netbeans/api/actions|Savable}}, loosely coupled {{NB|org-netbeans-core-multiview|org/netbeans/core/spi/multiview|MultiViewElement.Registration}}, tons of enhancements in user gestures and in flexibility of applying non-standard look and feels (see the [[netbeans:WinSys71PressRelease|Window System 7.1 Press Release]] for details).
+
--[[User:JaroslavTulach|JaroslavTulach]] 08:55, 12 September 2016 (UTC)
-
I'd like to thank Stanislav Aubrecht for doing most of the UI related work, for dealing with HIEs, graphical designers and for delivering such perfect improvements.
+
==== Write Business Logic First, Choose UI Later! ====
-
I am glad our colleagues from [[JDeveloper]] are pushing us hard with their requirements. Clearly, trying to improve [[NetBeans]] Platform to match [[JDeveloper]] needs makes [[NetBeans]] IDE a better product! There is still a lot of work ahead of us to re-use what we have done for [[NetBeans]] 7.1 in [[JDeveloper]], but you don't have to wait:
+
The [[ControlsJS]] guys decided to [[ControlsJS|port my MineSweeper]] game to their rendering technology and make it available at [[ControlsJS|iOS AppStore]]:
-
Get your copy of [[NetBeans]] 7.1 as soon as you can! You won't be sorry. It is the most flexible release in terms of user experience we produced in many years! Thanks in advance for trying [[NetBeans]].
+
[[Image:MineSweeperControls.jpeg]]
-
--[[User:JaroslavTulach|JaroslavTulach]] 14:26, 5 January 2012 (UTC)
+
This shows how extremely portable applications written with [[Html4Java]] APIs are! In fact you can write your application code first and because it is completely independent from the UI, you can completely revamp the UI later.
-
==== Shuffle Your [[Amarok]] Playlist ====
+
Isn't this the flexibility we always wanted? Read [[ControlsJS|the whole story]]...
-
I am using [[Amarok]] to manage my music collection. I was happy with [[Amarok]]1, but since its rewrite to [[Amarok]]2 I missed a ''shuffle'' operation. Last week I finally convinced myself to spend a bit of time and wrote an extension to [[Amarok]] to do the shuffling (in JavaScript). In case you are an [[Amarok]] user find more information about my project [[Amarok|here]].
+
--[[User:JaroslavTulach|JaroslavTulach]] 03:45, 9 May 2016 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 07:36, 6 December 2011 (UTC)
+
==== Run [[JUnit]] in Your ([[Java]] Plugin-less) Browser! ====
-
==== [[JavaOne2011]] is Over ====
+
{{:Bck2Brwsr 0.19}}
-
[[JavaOne2011]] is over and I am back at home. Originally I was very disappointed as my talk about [[AnnotationProcessor]]s was not accepted. I hoped it belongs to [[JavaOne]] as it clearly shows how to move [[Java]] forward. I guess I submit it next year again.
+
--[[User:JaroslavTulach|JaroslavTulach]] 07:24, 30 April 2016 (UTC)
-
Anyway I enjoyed my talk about [[ParadoxesVideo|paradoxes]]. The room for two hundred guests seemed full and the questions revealed huge interest in the topic. Using [[paradox]]es really concentrates on the ''point''. It shows what we usually expect (based on our in house software development knowledge) and what we will not get when dealing with [[API]]s. I wish I could write a book about [[paradox]]es!
 
-
We had to handle the talk about ''Featureous'' without John Langton, but we did our best to represent the success story of modularizing John's application. I talked mostly about my own experience of modularizing [[NetBeans]] ''open apis'' by hand. I wish I had a tool to help me at those [[JavaOne2011|stone age]] times!
+
==== Giving Up on [[Apple]] [[AppStore]] ====
-
Third talk about [[modularity]] patterns was very refreshing. [[User:JaroslavTulach|Me]], Zoran and Toni are proud we managed to get into argument on stage! Arguments are usually refreshing for the audience and wake everyone up. When speakers don't agree with each other, the interest grows. We did our best to disagree! Thanks to everyone who decided to visit our talk - we enjoyed your support! We are working on next part of the module pattern series for [[JavaOne2012|next JavaOne]].
+
My MineSweeper application available from [[AppStoreTheEnd|AppStore]] is gone. Apple wants me to pay remedies every year! For what!? Apple has no cost distributing my application. I am giving up. If somebody wants to [[AppStoreTheEnd|distribute my MineSweeper]], please go on, but I am giving up - giving up on Apple.
-
--[[User:JaroslavTulach|JaroslavTulach]] 20:45, 9 October 2011 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 06:13, 9 April 2016 (UTC)
-
==== [[Netbinox]] is Free! ====
+
==== [[Html4Java|HTML/Java]] API 1.3 is Released! ====
-
Originally I licensed the [[Netbinox#Netbinox_is_Free.21|Netbinox]] (e.g. the [[NetbinoxPerformance|fastest OSGi container]] on the planet) project under [[GPL]]. This payed off, as I knew (most of) my customers. Almost everyone who wanted to use the [[Netbinox]] needed to send me an email and ask. Either to verify usage of [[GPL]] is OK, or to ask for a different license. Only due to viral nature of [[GPL]] I was [[Talk:NetbinoxPerformance|contacted]] by members of the [[Equinox]] team to find out whether I want to donate the [[NetbinoxPerformance]] to [[Equinox]].
+
I'd like to announce that the new version of HTML/Java API - e.g. 1.3 is ready for usage. The javadoc is at http://bits.netbeans.org/html+java/1.3/ - and the bits has been uploaded to [http://repo1.maven.org/maven2/org/netbeans/html/ Maven central].
-
However since [[Netbinox]] is now used by [[JDeveloper]] and is also used by the [[Mylyn]] modules inside [[NetBeans]] 7.1, it does not make sense to keep it under [[GPL]]. It is more natural to give it the classical, liberal open source [[NetBeans]] license ([[CDDL]] or [[GPLwithClassPathException]]). Since [[NetBeans]] 7.1 you can use [[Netbinox]] together with [[NetBeans]] Platform without any licensing limitations.
+
[http://bits.netbeans.org/html+java/1.3/ HTML/Java 1.3] comes with many improvements that will make your life easier and enlarge the options you have when mixing Java and HTML. Let me quote the Javadoc:
-
I will loose track of those who use [[Netbinox]], but I hope to see more and more [[Netbinox]] based applications for real. Because: why would you use Equinox when [[Netbinox]] is fully [[Netbinox#The_Differences|compatible]] and much [[NetbinoxPerformance|faster]]?
+
Model classes can have per-instance private data. Model classes can generate builder-like construction methods if builder prefix is specified. Property.mutable() can be false to define a non-mutable (almost constant) property. That in case of Knockout bindings means: the property is represented by a plain value rather than an observable in the JavaScript object. The JavaFX presenter can be executed in headless mode - just specify -Dfxpresenter.headless=true when launching its virtual machine and no window will be shown. This is particularly useful for testing. OSGi headers are now enterprise OSGi ready. Switched to minified version 3.4.0 of knockout.js. Better support for recursive @Model definitions. New module org.netbeans.html:xhr4j provides implementation of Transfer with technology identifier xhr4j - this module can be used to workaround limitations of CORS by handling the OnReceive connections in Java.
-
--[[User:JaroslavTulach|JaroslavTulach]] 08:20, 1 September 2011 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 03:33, 8 April 2016 (UTC)
-
==== Incompatible Me! ====
+
==== [[API]] Design under Attack! ====
-
''Are you compatible with yourself?'' that is the kind of question you have to ask when you live in environment assembled by means of [[incremental deployment]]. Because when an [[incremental deployment]] is in place, it is not enough that your code compiles at given time, it is important to verify that it also assembles fine with all previous versions! Hear the story about [[incremental deployment]] problems NetBeans 7.0.1 had.
+
Today my colleagues from [[NetBeans]] noticed that my website - wiki.apidesign.org is under attack. Yes, since Jan 16, 2015 there were more than 5000 randomly modified pages. Maybe my talk in [[Bck2Brwsr 0.17|Grenoble]] was so popular that it attracted that much attention!?
-
--[[User:JaroslavTulach|JaroslavTulach]] 18:30, 12 August 2011 (UTC)
+
Anyway [[I]] had to revert back to older copy of the database and re-apply my edits manually. Not everything looks the same as it did before, but hopefully no texts are lost.
-
==== [[JDeveloper]] and [[NetBeans]] ====
+
In any case, [[I]] disabled ability to edit the pages. If you want to talk to me, use [[twitter]] and reference my handle: @JaroslavTulach
-
A new version of [[JDeveloper]] has been released last week. Curious people already noticed that the [[JDeveloper]] installation contains ''netbeans'' subdirectory. Yes, it does.
+
--[[User:JaroslavTulach|JaroslavTulach]] 19:54, 10 February 2016 (UTC)
-
Here is my description of [[JDeveloper|the history]] and explantion why I believe we are heading the [[JDeveloper|right direction]].
+
==== Snowcamp in Grenoble gave [[Bck2Brwsr]] 10x Speed Up! ====
-
--[[User:JaroslavTulach|JaroslavTulach]] 08:52, 14 June 2011 (UTC)
+
{{:Bck2Brwsr 0.17}}
-
==== Making [[NetBeans]] Better in Munich! ====
+
--[[User:JaroslavTulach|JaroslavTulach]] 07:56, 28 January 2016 (UTC)
-
I am planning my trip to [http://www.eppleton.de/index.php?option=com_seminar&task=3&cid=9 Munich's NetBeans Day] that will happen on June 18, 2011 right now.
 
-
I will have a ''code dump'' (e.g. a lot of code produced on a stage) presentation about advanced usage of [[AnnotationProcessor]]s. The presentation is based on our [[NetBeans]] experience and tooling, but the knowledge that you gain is going to be widely applicable when designing any [[Java]] APIs. [http://www.eppleton.de/index.php?option=com_seminar&task=3&cid=9 Register] and let's meet in Munich to talk not only about [[annotation]] processing, but also about [[API]] design and what's new and planned in [[NetBeans]].
+
==== [[MineSweeper]] 3.0 for Your [[iOS]] Device. The Christmas Thriller Edition! ====
-
See you in two weeks!
+
{{:AppStoreUpdate}}
-
--[[User:JaroslavTulach|JaroslavTulach]] 14:51, 2 June 2011 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 05:07, 18 December 2015 (UTC)
-
==== Food in Geecon 2011 - Krakow ====
+
==== [[OracleLabs]] in [[Prague]] is Hiring! ====
-
[[GeeCON]] at Krakow is great! I've just had another [[ParadoxesVideo|Paradoxes of API Design]] presentation at '''Geecon''' at Krakow. This time I had to talk for three hours. Quite a long talk for an occasional speaker like me. I knew I would need a sugar to handle that. That is why I stood in front of the entrance with [[HtmlForFood]] sign and hoped to receive some. And I did receive one candy, one apple and one mandarin. Thanks a lot for the food donation!
+
[[OracleLabs]] has a team in Czech Republic and is looking for new candidates to expand it. Innovation is feeding us, but that doesn't mean you have to be a scientist. We have enough clever people - we need also somebody to work!
-
As a pay back for this kind of support I decided to donate one copy of [[TheAPIBook]] to the audience. Thus I am starting yet another [[HtmlForFood]] contest. Dear [http://2011.geecon.org/ Geecon 2011] participants, write your signs, take photos, end them to ''food@apidesign.org''!
+
[[Image:Prague2015 small.jpg|600px]]
-
The copy of [[TheAPIBook]] will be given to the most hungry winner on Friday, May 13, 2011. Now I need to find the winner.
+
In case you are interested in conquering the world with [[RubySpeed|the fastest (J)VM on the planet]] backed by a [[Truffle#Debugger_in_NetBeans_8.1|strong tooling]] (based on NetBeans) write to [[I|me]].
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:08, 13 May 2011 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 07:44, 7 October 2015 (UTC)
-
==== Window System Enhancements for 7.1 ====
+
==== Can [[Java]] Speed [[Ruby]] up? Yes, ten times! ====
-
There was a lot of planning meetings in Prague office recently and as such I have had no time to blog. Let me fix that now.
+
[[RubySpeed|Speed of Ruby]] has never been great. There were many attempts to improve it, but none delivered on its promise. All failed, [[Truffle|but one]]! J[[Ruby]] implementation running on top of [[JVM]] spiced with a bit of [[Truffle]] and [[Graal]] is in fact ten times faster than standard [[Ruby]] version.
-
Being reminded about importance of ''working backwards'' I gladly present future [[netbeans:WinSys71PressRelease|window system press release]]. It outlines the enhancements that will have been implemented for NetBeans 7.1. I hope we'll manage to code them all and I hope you'll like the [[netbeans:WinSys71PressReleaseresult]].
+
Watch [[RubySpeed|this video]] to see how can [[Java]] and [[JVM|its virtual machine]] help those other poor and slow [[language]]s!
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:25, 6 May 2011 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 12:28, 2 October 2015 (UTC)
-
==== Paradoxes of API Design Video předabováno do češtiny ====
+
==== Speaking at [[JDD]] in [[Krakow]] ====
-
I have the pleasure to announce that the video from [[Ostrava]] JUG is now available. I spoke Czech, so this is of interests of only limited audience (the rest please see the [[ParadoxesVideo|original]]), ale pro ty, kteří česky umí může být tato novější verze zábavnější. Každopádně je zábavnější pro mne, neboť jsem si výlet do [[Ostrava|Ostravy]] užil. A děkuji za klobouk, který jsem tam zapomněl. Už je zpátky...
+
I'll be speaking at [[JDD]] in [[Krakow]] in middle of October. In case you have a [[Java]] related message to deliver to the [[JDD]] galaxy, leave it here. I'll do my best to deliver it.
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:30, 13 April 2011 (UTC)
+
{{:JDD}}
-
==== Chinese Translation ====
+
--[[User:JaroslavTulach|JaroslavTulach]] 09:31, 25 September 2015 (UTC)
-
I am receiving quaterly reports about sold copies of my book. A year ago I noticed a payment for some translation. I did not know the target language, but I expected some europian one. Wrong! This is cover of [[TheAPIBook]] translated to Chinese:
+
==== [[Truffle]] Debugging in [[NetBeans]] 8.1 ====
-
[[Image:ChineseCover.jpg]]
+
Debugging any [[Truffle#Debugger_in_NetBeans_8.1|Truffle language]] is now quite easy in [[NetBeans]] 8.1! Check the [[Truffle#Debugger_in_NetBeans_8.1|video]]:
-
I cannot read much, but it looks like some parts of the cover are familiar. This book must be about [[API]] design!
+
{{#ev:youtube|ewdzDqPsn38}}
-
--[[User:JaroslavTulach|JaroslavTulach]] 20:01, 8 April 2011 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 14:10, 11 September 2015 (UTC)
-
==== Mirror NetBeans Update Center Catalog ====
+
==== [[Html4Java|HTML/Java]] version 1.2.1 has been Released! ====
-
Here is a note about my latest practical achievement. I have created an [[netbeans:File:Mirror.xml|ant script]] to clone content of any NetBeans ''catalog.xml(.gz)'' available online. It reads the list of available modules, allows you to choose the ones to mirror (using a regexp on cluster or module names), downloads them (skips the download when an NBM file with same or newer version is already available locally) and generates new ''updates.xml'' file to represent your local repository.
+
Cross platform UI library called [[Html4Java|HTML/Java API]] (which is developed by the [[NetBeans]] project) is proud to announce that version 1.2 has just been released on Maven central. See [http://bits.netbeans.org/html+java/1.2/ javadoc] to find out [http://bits.netbeans.org/html+java/1.2/overview-summary.html#overview_description what is new] in this version!
-
Enjoy [[netbeans:File:Mirror.xml|Mirror.xml]] script!
+
The project is also glad that binaries of the new [[Html4Java|HTML/Java]] version 1.2 are now included in forthcoming [[NetBeans]] 8.1 release making it easy to develop [[netbeans:HtmlUIForTemplates|wizards]] as well as components and dialogs in a cross-platform manner (e.g. able to run in [[NetBeans]] platform applications, IDE, [[HTML|Eclipse]] RCP, plugin-less [[Bck2Brwsr|browser]] and thanks to adoption by [[DukeScript]] project also on [[iOS]] and [[Android]]).
-
--[[User:JaroslavTulach|JaroslavTulach]] 10:53, 25 March 2011 (UTC)
+
[[Html4Java|HTML/Java API]] is the heart of [[Java]] that is written once, and displayed everywhere!
-
==== [[API]] Quiz at [[Ostrava]] JUG on March 2nd, 2011 ====
+
--[[User:JaroslavTulach|JaroslavTulach - HTML/Java inventor]] 06:16, 2 September 2015 (UTC)
-
[[Ostrava]] JUG presentation tried to tease the listeners with one API quiz. Visit the [[Ostrava]]'s summary to tease yourself as well.
+
==== Design with [[Truffle]]. Get [[Debugger]] for Free! ====
-
--[[User:JaroslavTulach|JaroslavTulach]] 12:28, 7 March 2011 (UTC)
+
[[Truffle]] - a modern way to write [[AST]] interpreters - gives you not only '''speed''', but also debugger for free:
-
==== Live Matisse ====
+
[[Image:TruffleDebugger.png]]
-
Here is a [[Hotswap#Matisse_Example|screencast]] showing how true [[Hotswap#Matisse_Example|hotswap]] will simplify life and boost productivity of desktop application developers.
+
The picture shows [[NetBeans]] debugger stopped in middle of '''simple language''' (an artificial language used for demo purposes) method. [[NetBeans]] knows nothing about '''simple language''' (that is why syntax coloring is missing), but as [[NetBeans]] understands the [[Truffle]] [[AST]], it can still provide enough valuable information in the debugger.
-
--[[User:JaroslavTulach|JaroslavTulach]] 08:09, 21 February 2011 (UTC)
+
Please note that the name of the method is properly recognized and shown on top of the stack. Variables '''a''' and '''b''' and their values are properly shown as well.
-
==== Real [[Hotswap]] is not Only About Classes ====
+
Designing your own [[language]]? Do you want to spend time writing a [[debugger]]? If not, use [[Truffle]] and you'll get your [[debugger]] for free!
-
I received few very good comments after blogging about the ''true'' hotswap for JDK. Thus I need to slightly correct my original opinion. Not only we need ''true'' hotswap, but we need [[Javeleon|real hotswap]]! Dealing with updates of classes is just a first step. We need tools like [[Javeleon]] to integrate well with [[Javeleon|all other aspects]] a framework needs to offer to make the hotswap feel [[Javeleon|real]].
+
--[[User:JaroslavTulach|JaroslavTulach]] 16:04, 24 June 2015 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 08:04, 18 February 2011 (UTC)
+
==== [[JavaScript]] is a New Assembly [[Language]] ====
-
==== [[Netbinox]] is Built Around Unmodified [[Equinox]] Now ====
+
Ever felt [[JavaScript]] is your carrier path? Well, maybe you should re-think you future! [[JavaScript]] is just another assembly language!
-
Those who follow my work on [[Netbinox]] may be pleased that since Feb 12, 2011, the [[Netbinox]] version 1.16.8 bundles unmodified version of ''org.eclipse.equinox.jar''. The functionality remains unchanged but your legal organization may accept this new setup more happily.
+
--[[User:JaroslavTulach|JaroslavTulach]] 21:02, 5 April 2015 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 15:19, 14 February 2011 (UTC)
+
==== [[NetBeans]] History: University Beginnings ====
-
==== Renewing [[TheAPIBook]]'s domain ====
+
The original name of the project was [[Xelfi]] and it started at [[MatFyz]] faculty of [[Charles University]] in middle of 90-ties. However it was so successful that it had to turn into something as successful as [[NetBeans]]. In case you are satisfied with your [[IDE]], consider [[Xelfi|reading about its root]]...
-
Yesterday I managed to prolong the [[TheAPIBook|apidesign.org]] domain for next three years. I can see there are some followers out there, and anyway I need a place to dump my mind to. Thanks for reading my posts and happy New Year 2011!
+
--[[User:JaroslavTulach|JaroslavTulach]] 16:04, 20 March 2015 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 10:26, 5 January 2011 (UTC)
+
==== Can Real Threads be Brought to [[JavaScript]]? ====
-
==== True [[Hotswap]] - Gift for Every ([[Java]]) Developer! ====
+
What [[Bck2BrwsrThreading|it]] would take to bring [[Java]] like threads into [[JavaScript]] (via [[Bck2Brwsr]] [[VM]])? Here is my [[http://wiki.apidesign.org/wiki/Bck2BrwsrThreading|plan]]!
-
Are you using [[Hotswap]] when developing your programs? No, in such case read [[Hotswap|why you should]] start using it immediately! Do you know [[hotswap]] is present in every JDK? Do you consider it too limited? Then read about recent enhancements that give you true [[hotswap]] for your JDK!
+
--[[User:JaroslavTulach|JaroslavTulach]] 09:52, 22 January 2015 (UTC)
-
You can also read my short, and mostly incomplete classification of various [[hotswap]]ing techniques, or just click [[hotswap|here]] to learn how to [[hotswap|download]] and install enhanced [[hotswap]]able JDK. I am blessing the power of [[hotswap]] since the moment I installed it. Do [[hotswap|it too]] and enjoy your newly gained coding productivity!
+
==== [[Bck2Brwsr]] @ 0.13 Released ====
-
--[[User:JaroslavTulach|JaroslavTulach]] 07:57, 26 December 2010 (UTC)
+
Bugfix release of [[Bck2Brwsr 0.13]] is out and it powers another classical game: ''fifteen''. Give it a [[Bck2Brwsr 0.13|try]]!
-
==== Instantiate Abstract Classes ====
+
--[[User:JaroslavTulach|JaroslavTulach]] 09:27, 12 January 2015 (UTC)
-
Do you know that [[Chuck Norris]] can instantiate abstract classes? Do you want to be able to [[Chuck Norris|do so too]]?
+
==== [[Bck2Brwsr]] @ 0.12 Released ====
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:23, 13 December 2010 (UTC)
+
[[Bck2Brwsr 0.12]] has been released. What is new?
-
==== Error occurred during initialization of VM ====
+
{{:Bck2Brwsr 0.12}}
-
Have you ever faced errors during initializaiton of your [[OpenJDK]] virtual machine? Something like:
+
Happy Year 2015 and please help me get [[Java]] [[Bck2Brwsr]]!
-
<source lang="bash">
+
-
$ java
+
-
Error occurred during initialization of VM
+
-
Could not reserve enough space for object heap
+
-
Could not create the Java virtual machine.
+
-
</source>
+
-
If so, you may be interested in reading [[OpenJDK|this post]]. I think I know how to eliminate the problems by relying on one type of API associated with the [[OpenJDK]] installation layout.
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:11, 28 November 2010 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 21:53, 1 January 2015 (UTC)
-
==== The Importance of Being Online ====
+
==== Wrap Your [[JAR]] as [[OSGi]] Bundle via [[Maven]] Easily! ====
-
Voice of customer: ''If I didn't come across the [[Blogs:JaroslavTulach:Daily_Life:Torrented|PDF]], I probably wouldn't have ever discovered [[TheAPIBook|your book]] and forked over the $60 for the hardcopy. :-)'' Obviously, there is a value in [[Blogs:JaroslavTulach:Daily_Life:Torrented|being online]].
+
See the tutorial at [[OSGiWrapper]].
-
--[[User:JaroslavTulach|JaroslavTulach]] 08:47, 3 November 2010 (UTC)
+
 +
--[[User:JaroslavTulach|JaroslavTulach]] 13:07, 29 November 2014 (UTC)
-
==== Giving Up on [[Linux]] Packaging ====
+
==== [[Media:DukeChoiceAward.jpg|Duke Choice Award]] ====
-
This post is for [[Linux]] and NetBeans users. Do you use NetBeans package on your [[Linux]]? Do you want to continue doing so? In such case we need your [[Linux|help]]!
+
[[DukeScript]] has been awarded a Duke Choice Award! Here is picture of [[Toni Epple]] and [[I|me]] holding the [[Media:DukeChoiceAward.jpg|Duke Choice Award]] on Sep 28, 2014:
-
--[[User:JaroslavTulach|JaroslavTulach]] 13:45, 22 October 2010 (UTC)
+
[[Image:DukeChoiceAward.jpg]]
-
==== [[London]]: Smells Bad. Feels Good. ====
+
Long live [[Java]] and [[HTML]] on every device ([[iOS]], [[Android]] and co.)!
-
I'm just finishing my visit to [[London]] to propagate the [[NetBeans]] Platform. Few [[London|open questions]] are left in my head and also I'd like to make [[London|one suggestion]]: By my next return, can someone improve [[London|the air]]?
+
--[[User:JaroslavTulach|JaroslavTulach]] 17:37, 29 September 2014 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 20:28, 15 October 2010 (UTC)
+
==== Play [[MineSweeper]] to Become [[iOS]], [[Android]], [[JavaFX]] & co. Developer ====
-
==== Java One 2010 ====
+
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 opened as following picture shows:
-
Tomorrow I'll get on a plane and I'll travel to California to visit and talk at [[JavaOne2010]]. In case you'll be there, join me and friends at some of the [[JavaOne2010|presentations]] we are going to give.
+
[[Image:MineSweeperDevelop.png]]
-
--[[User:JaroslavTulach|JaroslavTulach]] 15:50, 13 September 2010 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 10:57, 15 September 2014 (UTC)
-
==== Throw Away Your Bug Tracking System ====
+
==== [[JavaOne2014]]: Need Speakers for My Session! ====
-
Time to close our [[Bugzilla]]! Dear members of NetBeans community, I'd like to announce that I plan to close all open issues in our [[bugzilla]] (that I don't like) as won'tfix for serious reasons. Are you OK and ready for [[bugzilla|that]]?
+
[[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]].
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:40, 7 September 2010 (UTC)
+
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?
-
==== The Differences Make the Difference! ====
+
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!
-
The flow of questions about the [[Netbinox#The_Differences|difference]] between [[Netbinox]] and Equinox does not seem to run dry. That is why I reorganized the [[Netbinox]] page to also describe the technical [[Netbinox#The_Differences|differences]] between those two OSGi containers.
+
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]]!
-
The primary difference is that [[Netbinox]] is way faster for launching desktop applications than its up stream project. This is the positive difference. However together with this side of the story, one also gets the other one. The behaviour responsible for the speed up is also most likely the one to the deviate from the original's functionality.
+
--[[User:JaroslavTulach|JaroslavTulach]] 18:56, 10 September 2014 (UTC)
-
The behaviour of [[Netbinox]] is deeply covered by tests, however that still does not guarantee it is completely identical. But be assured compatibility remains the biggest [[Netbinox]] goal. If you want some details, read [[Netbinox#The_Differences|more]]!
+
==== Develop in [[NetBeans]] and Deploy to [[AppStore]] ====
-
--[[User:JaroslavTulach|JaroslavTulach]] 08:49, 26 August 2010 (UTC)
+
[https://itunes.apple.com/us/app/fair-minesweeper/id903688146 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
-
==== Use [[Hg]]! Don't Learn to Sing! ====
+
And don't forget you can use [[DukeScriptInNetBeans|NetBeans]] to develop such applications yourself! Install [[DukeScriptInNetBeans|DukeScript NetBeans]] support.
-
An old friend of mine asked me about my experience with [[Mercurial]]. Probably he wants to migrate his team to some good distributed versioning system. As I can't sing I can only recommend that. In case you are in similar situation: Use [[Hg]]!
+
--[[User:JaroslavTulach|JaroslavTulach]] 15:29, 21 August 2014 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:33, 12 August 2010 (UTC)
+
==== Develop in [[NetBeans]] and Deploy to [[GooglePlay]] ====
-
==== Heavier than Air Can't Fly! ====
+
[https://play.google.com/store/apps/details?id=org.apidesign.demo.minesweeper 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
-
How it comes that [[Netbinox]] is faster than plain [[Equinox]]? Read [[Netbinox|here]]....
+
And don't forget you can use [[DukeScriptInNetBeans|NetBeans]] to develop such applications yourself! Install [[DukeScriptInNetBeans|DukeScript NetBeans]] support.
-
--[[User:JaroslavTulach|JaroslavTulach]] 18:24, 4 August 2010 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 05:17, 31 July 2014 (UTC)
-
==== Creating [[Derby]] database via [[Ant]] ====
+
==== [[Japanese]] Translation is Real ====
-
What database you can use in unit tests? I have chosen [[Derby]]. How do you automate creation, population and removal of such database? Using [[Ant]]! Great vision, however easier to outline than really do. It took me few days to merge [[Derby]] with [[Ant]]. In case you have similar need, read my small [[Derby|how to]].
+
{{:Image:PracticalAPIDesignInJapanese.jpg}}
-
--[[User:JaroslavTulach|JaroslavTulach]] 07:18, 17 July 2010 (UTC)
+
[[Image:PracticalAPIDesignInJapanese.jpg]]
-
==== Rescue Sync: Recover Damaged Disks ====
+
Great work [[Yoshiki]]!
-
Do you want to know how [[Rsync]], the '''rescue sync''', can be useful for recovering broken photo and video collections?
+
--[[User:JaroslavTulach|JaroslavTulach]] 06:51, 17 July 2014 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 12:35, 29 June 2010 (UTC)
+
==== [[Bck2Brwsr]] Revision 0.9 is Released! ====
-
==== Upgrading to [[NetBeans]] Platform 6.9 ====
+
{{:Bck2Brwsr 0.9}}
-
I've just upgraded to [[DVBCentral]] to [[NetBeans Platform]] 6.9 in 10 minutes. Upgrade too!
+
--[[User:JaroslavTulach|JaroslavTulach]] 06:34, 10 June 2014 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 20:17, 24 June 2010 (UTC)
+
==== Podcast related to [[Japanese]] Translation ====
-
==== [[NetBeans]] 6.9 Press Release: The Fastest [[OSGi]] Container! ====
+
[[Japanese]] translation announcement: [[Image:Apitip-May2014-JapaneseTranslation.mp3]]
-
Time to publish [[netbeans:Fitness69PressRelease|performance press release]] to join the overall enthusiasm about the latest [[NetBeans]] release! Enjoy [[NetBeans Platform]] 6.9!
 
-
--[[User:JaroslavTulach|JaroslavTulach]] 10:22, 20 June 2010 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 18:45, 2 June 2014 (UTC)
-
==== [[OpenJDK]] is not Ready for [[Virtualization|Virtualized]] [[Environment]]s! ====
+
==== Debug Mixed [[Java]]/[[JavaScript]] Applications ====
-
Ever tried to use [[virtualization]] server and run [[Java]] in it? I tried. It is hard. Very hard. So hard it makes me wonder whether anyone else succeeded to use [[OpenJDK]] in such environment?
+
Before [[Nashorn]] (the [[JDK]]8 [[JavaScript]] engine) performing calls between [[Java]] and [[JavaScript]] was a pain. Especially when it came to [[debugger|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.
-
--[[User:JaroslavTulach|JaroslavTulach]] 14:21, 14 June 2010 (UTC)
+
See [[Nashorn|video]] showing the power of the synergy between [[NetBeans]] 8.0 and [[Nashorn]]!
-
==== Joining the Social Networks ====
+
--[[User:JaroslavTulach|JaroslavTulach]] 15:53, 20 February 2014 (UTC)
-
{{:Blogs:JaroslavTulach:Daily Life:Social}}
+
==== [[Japanese]] Translation of [[TheAPIBook|Practical API Design]] ====
-
--[[User:JaroslavTulach|JaroslavTulach]] 20:15, 30 May 2010 (UTC)
+
The [[Japanese]] translation of [[TheAPIBook|my book]] has been in progress for several months. Recently I've been asked by [[Yoshiki]] to write a [[Japanese|preface]].
-
==== [[DocBook]] to [[OpenDocument]] conversion ====
+
I [[Japanese|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 [[TheAPIBook|my book]] will be great.
-
Anyone interested in [[Docbook]] to [[OpenDocument]] conversion? I have one to share.
+
Thanks [[Yoshiki]] for your work. Dear ([[Japanese]] reading) readers, enjoy!
-
--[[User:JaroslavTulach|JaroslavTulach]] 07:28, 28 May 2010 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 09:28, 27 January 2014 (UTC)
-
==== There Can't be Bugs in Already Released [[API]]s! ====
+
==== Unify [[Eclipse]] and [[NetBeans]] UI ====
-
My recent experience as an active maintainer of some APIs made me describe the attributes of a proper [[API Patch]]. Join me in defining what it means [[good]] [[API Patch]] and help me improve my [[NetBeans]] [[API]]s.
+
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]].
-
--[[User:JaroslavTulach|JaroslavTulach]] 08:05, 18 April 2010 (UTC)
+
See [[HTML|how]]!
-
==== EMF Fans, Get Assimilated! ====
+
--[[User:JaroslavTulach|JaroslavTulach]] 18:01, 21 December 2013 (UTC)
-
{{:Blogs:JaroslavTulach:Daily Life:EMFOnNetbinox}}
+
==== [[JavaFX]] for [[iOS]] via [[NetBeans]] ====
-
--[[User:JaroslavTulach|JaroslavTulach]] 10:29, 22 March 2010 (UTC)
+
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.
-
==== Swinging [[OSGi]] Emerges ====
+
Enjoy [[JavaFX]] on [[iOS]]!
-
{{:Blogs:JaroslavTulach:Daily Life:NetigsoNetBinoxNews}}
+
--[[User:JaroslavTulach|JaroslavTulach]] 12:42, 10 December 2013 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 07:05, 7 February 2010 (UTC)
+
==== API Design Guidelines ====
-
==== The More Languages You Know ====
+
I have discovered a nice checklist of [[guidelines]] considered good for API design.
-
Here is a [[Blogs:JaroslavTulach:Daily Life:The More Languages|little story]] about an old saying: ''The more languages you know, the more you are a programmer!''. Or am I wrong? [[Blogs:JaroslavTulach:Daily Life:The More Languages|Is the saying different]]?
+
--[[User:JaroslavTulach|JaroslavTulach]] 09:30, 2 December 2013 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 22:19, 21 January 2010 (UTC)
+
==== Cloud IDE for Kids ====
-
==== AST Transformations ====
+
[[Scratch]] is getting better and better. If you have not done that yet, [[scratch|give it]] a try!
-
{{:Groovy}}
+
--[[User:JaroslavTulach|JaroslavTulach]] 08:48, 2 December 2013 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 05:25, 11 January 2010 (UTC)
 
-
==== Welcome in NetBeans 6.8! ====
+
==== The Smallest [[Linux]] [[JDK]] ====
-
Let me (with a little bit of delay, as the release happened on Dec 10, 2009) describe the [[netbeans::Fitness68PressRelease|performance improvements]] we delivered as part of NetBeans 6.8. Please also note that we almost managed to provide what we [http://wiki.netbeans.org/wiki/index.php?title=Fitness68PressRelease&diff=32062&oldid=27424 originally promised] half a year ago. That is not bad.
+
The [[profiles]] support is coming for [[JDK]]8. Not only it is coming, [[profiles|it works]]! In case you are searching for a small [[Java]], give [[profiles]] a try. [[Profiles|They]] are easy to start with.
-
Also notice the power of [[Teamwork|working backwards]] methodology. Writing press release before starting the real work (as advocated in [[Teamwork]] chapter of [[TheAPIBook]]) provides almost perfect self perspective mirror. I guess it is time to write press release for NetBeans 6.9!
+
--[[User:JaroslavTulach|JaroslavTulach]] 15:12, 27 November 2013 (UTC)
-
Happy new year and [[netbeans::Fitness68PressRelease|welcome to performance team]]!
+
==== [[DEW]] - [[Java]] Meets Web with Your Help! ====
-
--[[User:JaroslavTulach|JaroslavTulach]] 07:21, 3 January 2010 (UTC)
+
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!
-
==== [[Lookup]] is Free II ====
+
The more you fiddle with [[DEW]] and the more you alter (and save) the samples, the more we will help Java get [[Bck2Brwsr]]!
-
On Dec 20, 2009 I have integrated a separation of [[Lookup]] into [[NetBeans]] sources. Now the [[Lookup]] is really free. Not only there is a free fork, but the [[Lookup]] is really free in its original form. Enjoy!
+
--[[User:JaroslavTulach|JaroslavTulach]] 16:56, 28 October 2013 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 07:20, 24 December 2009 (UTC)
+
==== [[Maven]] and [[Bck2Brwsr]] 0.8 ====
-
==== Managing Dependencies on large projects ====
+
I've just updated instructions to use [[Bck2BrwsrViaCLI|bck2brwsr 0.8 from command line]]. Me and Jonathan Fuerth also verified that the [[Bck2Brwsr]] [[Maven]] archetype can now be used in [[Eclipse]].
-
{{:Blogs:JaroslavTulach:Daily Life:ManagingDependencies}}
+
Nothing can stop us from bringing [[Java]] [[Bck2Brwsr]]!
-
--[[User:JaroslavTulach|JaroslavTulach]] 20:04, 12 December 2009 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 12:22, 29 September 2013 (UTC)
-
==== Featuring [[NetBeans]] 6.9 - AutoUpdate [[Ant]] Task ====
+
==== Use the [[Debugger]], Stupid! ====
-
{{:Blogs:JaroslavTulach:Daily Life:AutoUpdateTask}}
+
[[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 [[debugger|here]] to learn how.
-
--[[User:JaroslavTulach|JaroslavTulach]] 13:42, 8 December 2009 (UTC)
+
--[[User:JaroslavTulach|JaroslavTulach]] 09:17, 20 August 2013 (UTC)
-
==== Santa was here ====
+
==== [[Bck2Brwsr 0.7]] Released! ====
-
{{:Blogs:JaroslavTulach:Daily Life:Mikulas2009}}
+
Write applications once and deploy them to [[FXBrwsr]] as well as [[Bck2Brwsr]]:
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:56, 7 December 2009 (UTC)
+
{{:Bck2Brwsr_0.7}}
-
==== The Da Vinci [[Closures]] ====
+
--[[User:JaroslavTulach|JaroslavTulach]] 07:50, 9 May 2013 (UTC)
-
Recently there was a lot of buzz around [[closures]]. Let me contribute to it with a proposal how to implement [[closures]] in an effective way. Let me also surround the technical topic by some ''The Da Vinci Code''-like [[closures|speculations]].
+
==== [[Bck2Brwsr 0.6]] is Released! ====
-
--[[User:JaroslavTulach|JaroslavTulach]] 11:34, 1 December 2009 (UTC)
+
Now you can write your own real applications for browser in Java:
-
==== Naked [[MVC]] ====
+
{{:Bck2Brwsr_0.6}}
-
Few people added [[Talk:MVC|comments]] to my recently created page about [[MVC]]. Are naked objects [[MVC]]? What do you think? With the risk of starting a wikiwar, I'd like to invite you to join us and add new insights into the never-ending search for an [[Talk:MVC|ideal interpretation of MVC]].
+
--[[User:JaroslavTulach|JaroslavTulach]] 21:24, 14 April 2013 (UTC)
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:47, 10 November 2009 (UTC)
+
-
 
+
-
==== Want to become [[Agile]]? ====
+
-
 
+
-
Have you ever wanted to practice an [[Agile]] development in a group of more than twenty people? Did it work well? [[NetBeans]] team (few tens of people) designs the [[NetBeans]] interfaces in [[Agile]] way. Do you want to know how's that possible? [[Agile|Read more]]...
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 11:45, 9 November 2009 (UTC)
+
-
 
+
-
==== Can [[Swing]] be called [[MVC]] framework? ====
+
-
 
+
-
What do you know about [[MVC]]? Is [[Swing]] following the [[MVC]] paradigm or not? Let me take you through short, incomplete and mostly wrong history of [[MVC]] and decide yourself!
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 15:47, 4 November 2009 (UTC)
+
-
 
+
-
==== Ten Years ====
+
-
 
+
-
{{:Blogs:JaroslavTulach:Daily Life:10Years}}
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 06:01, 20 October 2009 (UTC)
+
-
 
+
-
==== Can [[Equinox]] be called an [[OSGi]] framework? ====
+
-
 
+
-
Alex Blewitt [[Talk:Equinox|commented]] on my recent [[Equinox|Equinox experience]] saying that: ''[[Equinox]] is an [[OSGi]] framework, as it passes the [[OSGi]] TCK, without which it couldn't be called an [[OSGi]] framework''. A little quiz now: Can or cannot the [[Equinox]] be called an [[OSGi]] framework? Cast your [[Talk:Equinox|vote]]!
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 11:13, 12 October 2009 (UTC)
+
-
 
+
-
==== Is there any sense in producing non-[[GPL]] libraries? ====
+
-
 
+
-
We all know that open source rules. We also know that many open source project have problems with donations. Luckily there is a way [[GPL|out of the sponsoring misery]]. Looks like [[RMS]] was right!
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 11:42, 7 October 2009 (UTC)
+
-
 
+
-
==== [[Equinox]] is not an [[OSGi]] Container! ====
+
-
 
+
-
Give people a finger, they will ask for [[Equinox|whole hand]]! I gave every [[OSGi]] lover [[Netigso]] (based on [[Felix]]) and guess what many said! We don't want [[Felix]], we want [[equinox]]! What could I do? I started to look at [[Equinox]] last week and I have a discovery to reveal: [[Equinox]] is not an [[OSGi]] container! Read [[Equinox|why]]...
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 20:03, 4 October 2009 (UTC)
+
-
 
+
-
==== Battle of Titans: [[DCI]] vs. [[Dependency Injection]] ====
+
-
 
+
-
Andreas asked an [[DCI#Dependency_Injection|interesting question]]: Is in [[DCI]] still a need for [[dependency injection]]? What would be your answer? Same as [[DCI#Dependency_Injection|mine]]?
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 11:47, 26 September 2009 (UTC)
+
-
 
+
-
==== Is [[Maven]] Ready for Desktop? ====
+
-
 
+
-
Is [[Maven]] matured enough to help us develop [[Java]] desktop applications? Hear my [[Maven]] complains and blessings. Help me lower my suffering.
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 19:26, 13 September 2009 (UTC)
+
-
 
+
-
==== Video Processing in Java. Good Tools Matter. ====
+
-
 
+
-
Today I generated my [[First Amoeba Video|first movie]]. I really mean generated, not captured. I wrote my '''JPanel''' subclass and with help of various technologies I managed to convert it into ''.avi'' file. Read more about my [[First Amoeba Video]] and don't be afraid to share your experiences with video processing in [[Java]].
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 16:55, 22 August 2009 (UTC)
+
-
 
+
-
==== Torrented Again! ====
+
-
 
+
-
{{:Blogs:JaroslavTulach:Daily_Life:Torrented}}
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 14:37, 16 August 2009 (UTC)
+
-
 
+
-
==== [[Scala]] can't be so bad! ====
+
-
 
+
-
My recent rant about the missing slickness of Scala's core libraries finally provoked a [[Scala#Landei_said_...|reaction]]. Thanks Landei for speaking up. I know there no black&white in the real world, but your explanation of [[Scala]]'s "flexibility" could be extrapolated to a false (at least in my opinion) feeling that [[Scala]] is not yet ready for real production use.
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 08:30, 12 August 2009 (UTC)
+
-
 
+
-
==== [[Sigtest]] for C/C++ ====
+
-
 
+
-
An anonymous coward just provided a link to [[SignatureTests#C.2FC.2B.2B|signature testing tool]] for [[C]] and C++. Good to see the set of [[API]] tools to expand beyond the [[Java]] world.
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 19:18, 9 August 2009 (UTC)
+
-
 
+
-
==== Welcome to Performance Team! ====
+
-
+
-
Another NetBeans release cycle is in progress and it is time to write [http://wiki.netbeans.org/Fitness68PressRelease future press release] (as advocated in [[Chapter 16]], Convincing developers to document their API). Take a look so you know what to expect as soon as [[NetBeans]] 6.8 is out!
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 15:53, 16 July 2009 (UTC)
+
-
 
+
-
==== Speed Your Application Up ====
+
-
 
+
-
Here is description of a [[CacheForModularity|class loading cache]] that has potential to drastically speed up start of any application composed of many [[JAR]] files. See its benefits on your own and [[CacheForModularity|learn to use them]] in your applications!
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 14:35, 14 July 2009 (UTC)
+
-
 
+
-
==== Press Release: NetBeans 6.7 ====
+
-
 
+
-
Are engineers capable to produce a
+
-
[http://wiki.netbeans.org/Fitness67PressRelease press release]? Possibly, however as explained in [[Chapter 14]], it needs to be written before the coding starts. Read what we [http://wiki.netbeans.org/Fitness67PressRelease have written] six months ago and celebrate with us [[NetBeans]] 6.7!
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 10:09, 7 July 2009 (UTC)
+
-
 
+
-
==== API Podcast #5: Can you win? ====
+
-
 
+
-
Here is another [[APIFest08:Report|podcast]] recorded to explain importance of playing games while learning to design [[API]]s. Ask yourself today: Can you win an [[APIFest08:Report|API Fest]] with a change like [[APIFest08:Report|this]]?
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:37, 2 July 2009 (UTC)
+
-
 
+
-
==== XML SAX and DOM 2 ====
+
-
 
+
-
Few years ago our meta modeling gurus submitted a proposal for [[JavaOne]] BOF named [[Modular_Java_SE#XML_SAX_and_DOM_2|XML SAX and DOM 2]]. They wanted to describe [[NetBeans]] [[MOF]] solution and show how good it is compared to standard [[XML]] tools. I always admired the name of the talk (as the [[JavaOne]] was dedicated to show the synergy between [[XML]] and [[Java]] it obviously was rejected) and I am glad I have a chance to use the title today too: I just managed to [[Modular_Java_SE#XML_SAX_and_DOM_2|remove XML from Java]].
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:56, 26 June 2009 (UTC)
+
-
 
+
-
==== Building the Modular Java SE ====
+
-
 
+
-
[[Modular_Java_SE#Hudson_Builder|Modular Java SE has its own Hudson Builder]] - check the first [http://hudson.apidesign.org/hudson/job/jdk/6/ artifacts]: ''base.jar'', ''applet.jar'', ''corba.jar'', ''deprecated7.jar''...
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 21:23, 21 June 2009 (UTC)
+
-
 
+
-
==== Aliens vs. Predators. [[Bridge]] between [[OSGi]] and [[NetBeans]]. ====
+
-
 
+
-
Many said this was impossible. Many said this would be crazy. Many said it cannot work. However it does work like a charm. I am glad to announce that I have a well working [[OSGiAndNetBeans]] bridge and I am ready to build community around it.
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 10:35, 2 June 2009 (UTC)
+
-
 
+
-
 
+
-
==== API Podcast #4: Diamonds vs. Stars ====
+
-
 
+
-
Do you want to know why core Java people believe [[DiamondsVsStars|APIs are like diamonds]]? Enjoy this [[API Design Tips]] podcast at least as much as we enjoyed it while recording it with [[Geertjan]]!
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 20:43, 31 May 2009 (UTC)
+
-
 
+
-
==== Scala Libraries Rant ====
+
-
 
+
-
I've been asked by a colleague what I think about [[Scala]]. I think I like it, but...
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 15:04, 28 May 2009 (UTC)
+
-
 
+
-
==== API Podcast #2: Reentrancy ====
+
-
 
+
-
{{:Blogs:JaroslavTulach:Daily_Life:Podcast2}}
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 17:43, 18 May 2009 (UTC)
+
-
 
+
-
==== API PodCast #1 ====
+
-
 
+
-
{{:Blogs:JaroslavTulach:Daily Life:Podcast1}}
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 19:50, 12 May 2009 (UTC)
+
-
 
+
-
==== Mercurial vs. Subversion. Correctness vs. Simplicity. ====
+
-
 
+
-
I have dedicated one side note in the ''Practical API Design'' book to [[Mercurial_vs._Subversion]] comparison. Last week I received a comment from [[TheAPIBook]]'s reader claiming that the [[Mercurial]] and [[Subversion]] behaves the same in this particular respect. So I needed to run an [[Mercurial_vs._Subversion|experiment]]. They are not same at all! One is [[Mercurial_vs._Subversion|correct]], the second is [[Mercurial_vs._Subversion|simple to use]]. Which one is better?
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 16:29, 5 April 2009 (UTC)
+
-
 
+
-
==== Colors that You Like ====
+
-
 
+
-
Some of [[Talk:Blogs:JaroslavTulach:Practical_Design:FixModifiers#Somo_said_...|you asked]] for Black on White colors for this website. Now you can have them: Find ''Black/White'' symbol in the left navigation bar to make temporary switch or log in an choose your preferred skin in your preferences.
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 11:23, 4 April 2009 (UTC)
+
-
 
+
-
==== What's your big brother's name? [[AOP]]!? ====
+
-
 
+
-
Do you control complexity of your application? What tool do you use? Something homemade, something bought or something [[VerificationViaAOP|general like AOP]]?
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 10:03, 22 March 2009 (UTC)
+
-
 
+
-
==== sigtest 2.1 released! ====
+
-
 
+
-
The new version of the absolutely necessary tool for executing [[SignatureTests]] has just been released. Enjoy!
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 19:37, 17 March 2009 (UTC)
+
-
 
+
-
==== Extreme API Fest ====
+
-
 
+
-
Petr Šmíd just finished his [[HPAPIFest09|API Fest game]] for [[wikipedia::HP|HP]] Prague developers. I really enjoyed observing the players and I have to admit I learned few tricks myself. Read more about the [[HPAPIFest09]]!
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 20:43, 9 March 2009 (UTC)
+
-
 
+
-
==== The Definitive Guide to API Design ====
+
-
 
+
-
{{:Blogs:JaroslavTulach:Daily_Life:YetAnotherAwesomeReview}}
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 20:12, 7 March 2009 (UTC)
+
-
 
+
-
==== Tell me your name! I'll tell you how good designer you can be! ====
+
-
 
+
-
Well, not really. But [[Good Name]]s are important. [[Good Name|Here]] is little video to prove that.
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 14:15, 26 January 2009 (UTC)
+
-
 
+
-
==== Painful Reading Days are Over! ====
+
-
 
+
-
If you ever suffered while reading files in Java, please accept my [[API_has_to_be_Correct|sympathy]] and enjoy the recently proposed [[NetBeans]] [[API]] [http://openide.netbeans.org/issues/show_bug.cgi?id=157362 improvements].
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 18:11, 23 January 2009 (UTC)
+
-
 
+
-
==== PF 2009: Get on Board! ====
+
-
 
+
-
Dear readers of my book and my blog, I've mentioned in [[The Future|Epilogue]] of [[TheAPIBook]] that I good tools can help anyone do better job. I backed my reasoning by a skiing parallel. Recently I found an old video to explain what I really meant. Thanks for your interest in [[API Design]] and I wish you good tools in 2009 to help you get on the board!
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 14:20, 29 December 2008 (UTC)
+
-
 
+
-
==== Did [[OSGi]] Comrades Make a Mistake? ====
+
-
 
+
-
Many systems store their configuration in some form of [[PropertyFiles|property files]]. However a lot of them is not doing that really properly. The results can then be quite painful. Just like when I recently played with [[PropertyFiles|OSGi manifest files]]. Read my [[PropertyFiles|story]] and [[PropertyFiles|feel]] my pain...
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 12:36, 16 December 2008 (UTC)
+
-
 
+
-
==== 2009: The Year of [[Annotations]] ====
+
-
 
+
-
{{:TheYearOfAnnotations2009}}
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:06, 12 December 2008 (UTC)
+
-
 
+
-
==== See [[APIFest08]] winners photos! ====
+
-
 
+
-
See the winners and sponsors of the game on the [http://honza.smugmug.com/gallery/6413638_sHjLk pictures taken by Jan Chalupa].
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 16:10, 31 October 2008 (UTC)
+
-
 
+
-
==== NetBeans 6.5 Performance Press Release ====
+
-
 
+
-
How can one announce to the world that something important happened? Via [http://wiki.netbeans.org/Fitness65PressRelease Press Release], of course! However, one question stays: who can write good press release? Engineers are generally seen as incapable of doing so, however as argued in Chapter 14, [[Paradoxes of API Design]], there is a way to help them: Force them to write [http://wiki.netbeans.org/Fitness65PressRelease documentation or press release] before they start to code!
+
-
 
+
-
This is the [http://wiki.netbeans.org/Fitness65PressRelease Press Release] of the [NetBeans] performance team written six months ago. Now, when the release of [NetBeans] IDE 6.5 is near, it is time to publish it. Feel free to read what we [http://wiki.netbeans.org/Fitness65PressRelease?version=4 planed] and what we [http://wiki.netbeans.org/Fitness65PressRelease?version=15 delivered]!
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 14:47, 30 October 2008 (UTC)
+
-
 
+
-
==== Jan Žák and Petr Šmíd are winners of [[APIFest08]] ====
+
-
 
+
-
It is time to announce [[APIFest08:Report|results of APIFest'08]].
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 11:44, 26 October 2008 (UTC)
+
-
 
+
-
==== Petr Šmíd's Thanks ====
+
-
 
+
-
I would like to [[Blogs#Petr_.C5.A0m.C3.ADd.27s_Thanks|thank you]] very much for organizing the [[APIFest08|competition]].
+
-
 
+
-
Unlike all other programming competitions which are focused on creating algorithms this one is unique, because it focuses on another type of problems which more reflects real challenges that programmers deals with.
+
-
 
+
-
I can personally say that I learned many lessons about API design and I think this is the case of everyone who joined this event.
+
-
 
+
-
That's why I can suggest everybody to join this event next time. It was well prepared and the idea of the competition is really great.
+
-
 
+
-
So thank You Jaroslav and all guys which are behind the event!
+
-
 
+
-
--[[User:Petr.smid|Petr.smid]] 13:00, 29 October 2008 (UTC)
+
-
 
+
-
==== The Most Insightful Review of "Practical API Design" ====
+
-
 
+
-
The longest, most detailed and insightful review I have seen so far has been written by [http://lambda-the-ultimate.org/node/3067 Tim Band] for Lambda The Ultimate.
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 11:27, 24 October 2008 (UTC)
+
-
 
+
-
==== [[APIFest08]] Judgment Day/Week Starts! ====
+
-
 
+
-
{{:APIFest08:TaskX}}
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 06:03, 18 October 2008 (UTC)
+
-
 
+
-
==== [[APIFest08]] Task 4 Necessary to Choose the Best API Designer ====
+
-
 
+
-
{{:APIFest08:Task4}}
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 22:17, 11 October 2008 (UTC)
+
-
 
+
-
==== Define "Friday Morning" ====
+
-
 
+
-
When I was defining the quest of [[APIFest08:Task3]] I needed to set a deadline. However as the [[APIFest08]] is not competition for millions of bucks, just for [[TheAPIBook]], I did not feel I need to be exact enough and I defined the deadline as ''Fri, Oct 10, 2008, morning of CET''. This is the reaction that I got from one of the participants:
+
-
 
+
-
I really like the precision you use in specifying the deadlines!
+
-
I will choose to interpret "Fri, Oct 10, 2008, morning of CET" as
+
-
the time when the first ray of the rising sun can be seen from
+
-
the train I'll be taking to commute to Prague unless the window
+
-
is too dirty, is that o.k.? :-)
+
-
 
+
-
Cute and OK. Of course only under the assumption that you do your best to clean or at least open your window in case it is too dirty and that you are not referring to a window of an underground train.
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 07:53, 8 October 2008 (UTC)
+
-
 
+
-
==== [[APIFest08]] [[APIFest08:Task3|task3]] is here ====
+
-
 
+
-
{{:APIFest08:Task3}}
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:27, 7 October 2008 (UTC)
+
-
 
+
-
==== New Code for Food Picture ====
+
-
 
+
-
The spirit of [[HtmlForFood]] story lives on! [[GeertjanWielenga|Geertjan]] did a [[NetBeans]] platform training recently and it seems he learned new skills, which include ability to debug and generate code:
+
-
 
+
-
[[Image:Apisupportforfood.jpg]]
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 14:58, 6 October 2008 (UTC)
+
-
 
+
-
==== [[APIFest08]] [[APIFest08:Task2|task2]] is here ====
+
-
 
+
-
{{:APIFest08:Task2}}
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 11:50, 1 October 2008 (UTC)
+
-
 
+
-
==== [[APIFest08]]'s task ''one and half'' ====
+
-
 
+
-
{{:APIFest08:Task1.5}}
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 18:24, 28 September 2008 (UTC)
+
-
 
+
-
==== Ezekiel 25:17 ====
+
-
 
+
-
{{:Ezekiel2517}}
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 19:43, 24 September 2008 (UTC)
+
-
 
+
-
==== API Fest '08 ====
+
-
 
+
-
The [[APIFest08]], a game to practice [[TheAPIBook|Practical API Design]] skills, is just starting. It is a contest primarily designed for members of [http://java.cz/ Czech JUG], but we want to make it as open as possible. Play with us and [[APIFest08|celebrate]] 10th anniversary of first public NetBeans release.
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:31, 23 September 2008 (UTC)
+
-
 
+
-
==== And the Winner of the [[HtmlForFoodCompetition]] is ... ====
+
-
 
+
-
Let me announce the winner of the [[HtmlForFoodCompetition]].
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 20:25, 8 September 2008 (UTC)
+
-
 
+
-
==== [[1stPublicReview|First Public Review]] of Practical API Design Book ====
+
-
 
+
-
{{:1stPublicReview}}
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 19:42, 2 September 2008 (UTC)
+
-
 
+
-
==== Win the Practical API Design Book ====
+
-
 
+
-
As part of Chapter 1, The Art of Building Modern Software I wanted to demonstrate that the need for programmers is really big and that almost everyone who wants to get a job as a programmer may get it. For this I wanted to reuse a picture of a San Francisco homeless that is famous for wearing sign with "[[HtmlForFood|Will Code HTML for Food]]". However I could not do that, because the picture is of really low quality. That is why I needed a new re-take. We already [[HtmlForFood|have some]], but still, I'd like us to start sharing! As sharing of pictures is sometimes easier than sharing of API Design ideas, please participate in a photo contest! Get a chance to
+
-
win [[TheAPIBook]] by taking "Will Code HTML for Food" like picture and adding a reference to it to [[HtmlForFood]] by Aug 28, 2008! I am looking forward your [[HtmlForFood|submissions]].
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 16:11, 14 August 2008 (UTC)
+
-
 
+
-
==== New LaF of apidesign.org ====
+
-
 
+
-
The websiste has new [[Blogs:JaroslavTulach:Daily_Life:NewLookAndFeel|look and feel]].
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 10:09, 4 August 2008 (UTC)
+
-
 
+
-
==== There is a Reason Why Every Book is Dedicated to Family ====
+
-
 
+
-
I've heard this sentence at the J1 this year and I cannot get it out of my mind. Yes, family plays a really big role in the life of a writer. So please let me thank to it as well to other [[ThanksFriends|friends]].
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 19:00, 27 July 2008 (UTC)
+
-
 
+
-
==== Good Book Needs Good Reviewers ====
+
-
 
+
-
It is time to [[ThanksReviewers|thank to all my reviewers]] as today I've found out that you can order my book on [http://www.amazon.com/gp/product/1430209739?ie=UTF8&tag=apidesignorg-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1430209739 Amazon.com]. Please look at my little [[ThanksReviewers]] to find out why to [http://www.amazon.com/gp/product/1430209739?ie=UTF8&tag=apidesignorg-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=1430209739 order my book]. I believe that all reviewers really shape it to something worth reading. Thanks a lot.
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 19:44, 18 July 2008 (UTC)
+
-
 
+
-
==== Removing Fear of Writing Documentation ====
+
-
 
+
-
Heuréka! As I've just noted in a dedicated page describing chapter 16, [[Teamwork]] one [[GeertjanWielenga]]'s fear has just been overcome!
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 16:05, 17 July 2008 (UTC)
+
-
 
+
-
==== Adventures with PHP and [[wikipedia::mediawiki|MediaWiki]] ====
+
-
 
+
-
During the last week, I was [[Blogs:JaroslavTulach:Daily Life:Adventures with PHP and MediaWiki|slightly playing]] with various enhancements to the content of the [[Main Page|API Design wiki]].
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 21:14, 6 July 2008 (UTC)
+
-
 
+
-
==== Book is never Written by a Single Person ====
+
-
 
+
-
The ''Practical API Design'' book has been sent for print over the last weekend. I take it as a good opportunity to say thanks to all the people who helped me write it. The first set of [[ThanksEveryone]] notes is now available and covers those who "manually" contributed. I still need to thank to all those support "units" around me - something left for next blog entry...
+
-
 
+
-
--[[User:JaroslavTulach|JaroslavTulach]] 12:01, 23 June 2008 (UTC)
+
 +
==== Older Blog Posts ====
-
==== Entering the Blogosphere ====
+
[[OlderBlogPosts]]...
-
I have created [[Blogs:JaroslavTulach:Daily Life:Entering the Blogosphere|my blog]], does it mean that I finally exist?
+
--[[User:JaroslavTulach|JaroslavTulach]] 21:00, 14 April 2013 (UTC)
-
--[[User:JaroslavTulach|JaroslavTulach]] 09:33, 15 June 2008 (UTC)
 
<endFeed />
<endFeed />

Current revision

Contents

Daily Life

Apache Projects can Distribute GPLwithClassPathException components!

Thanks to our DirectAction - e.g. organizing a vote without a common consent - it has been decided that as of 2021 Apache projects can distribute GPLwithClassPathException components in their complementary binaries!

--JaroslavTulach 06:38, 19 July 2021 (UTC)

Never forget to add GradleWrapper!

Including GradleWrapper.properties in each Gradle project follows the best practices: If you want to be sure your Gradle projects build in a year or two then make sure to always include the GradleWrapper and exactly specify the Gradle version!

--JaroslavTulach 11:31, 22 June 2021 (UTC)

Micronaut Brings Compile Time Annotations to JavaEE Developers

Micronaut brings compile time annotations to enterprise Java programmers. That's great!

--JaroslavTulach 04:56, 22 July 2020 (UTC)

Spreading Malware

At the end of May 2020 the GitHub guys announced a Malware attacking developer machines via NetBeans Ant based projects. Read more...

--JaroslavTulach 15:31, 2 June 2020 (UTC)

Twenty Years: Sun Microsystems Acquires NetBeans

PALO ALTO, Calif. - Oct. 20, 1999 - Sun Microsystems, Inc. today announced it has acquired NetBeans Ceska republika a.s., a Czech Republic joint stock company (NetBeans), by means of an asset purchase. NetBeans is a leading developer of cross-platform Java-based integrated development environments (IDE). NetBeans IDE products combined with products from Sun's acquisition of Forte Software, Inc., also announced today, will provide the million-plus Java Development Kit (JDK) software customers with software choices that range from entry-level offerings for individual developers and students to enterprise-class offerings for team development. Sun will also provide customers with the expert consulting and support services they need to dot-com their businesses.

--JaroslavTulach 06:07, 20 October 2019 (UTC)

My First Post on Medium is out!

My first blog post on medium - Improving performance of GraalVM native images with profile-guided optimizations is out. It rounds up my last few months efforts as the -Dgraal.PGOInstrument option is what I have been intermitently working on for at least last year.

--JaroslavTulach 08:47, 30 August 2019 (UTC)

Graal.js is in NetBeans

Graal.js version 19.0.0 has been integrated as the default scripting engine into Apache NetBeans 11.1. Read more...

--JaroslavTulach 14:37, 7 June 2019 (UTC)

Four Years in OracleLabs

Time to recap as four years ago, on May 1st, I joined OracleLabs. What has happened during last year? I had fun with collecting profiles for further optimizations. I have fixed my first CVE and make Truffle meta-secure. I turned Java into Universal language. Read more about my FourthGraalAdventures...

--JaroslavTulach 05:50, 1 May 2019 (UTC)

JDK11. OMG! Nashorn got Deprecated!

Nashorn, the so far default JavaScript engine of JDK got deprecated in JDK11. What are you going to do? Freak out? Jump out of the window? Switch to Rhino? Give up on Java completely and use NodeJS? No, use Graal.js! Here is how:

Don't hesitate and make the switch! Apache NetBeans has just switched today!

--JaroslavTulach 19:34, 23 January 2019 (UTC)

Forget Go!

Go is great. Are you seeking a low level OS language? Heard about Go & its benefits? Convinced, or just interested, and still searching? If the latter: Have you considered Java? Because OracleLabs GraalVM NativeImage turns Java into a system language!

Read about this alternative to Go.

--JaroslavTulach 13:21, 1 October 2018 (UTC)

Git on Steroids: Fire Your Integration Guy!

Stefan asked who shall be responsible for integration in the MultiGitRepository setup? Should there be an integration guy? No, its 21st century and we know how to use Git, right? The right tool is called pull request!

As such fire your integration guy!

--JaroslavTulach 07:50, 22 May 2018 (UTC)

Git on Steroids: Local Collaboration Area

Turns out that one gets very useful MultiGitRepository#Appendix_A:_Local_Collaboration_Area: the master branch in each slave repository of the MultiGitRepository setup is in fact the best place for team members to collaborate without publishing the changes to the final integration destination.

--JaroslavTulach 10:54, 4 May 2018 (UTC)

Git on Steroids: Master Multiple Repositories

Let me introduces MultiGitRepository - aka Git on steroids to you. I have seen a lot of confusion when it comes to working with multiple repositories and keeping them in orchestration, but I believe it is not that complex. Everything we learned about distributed version controls applies. However this time it has to be applied on a completely new level!

Master your MultiGitRepository in few easy lessons!

--JaroslavTulach 15:20, 23 April 2018 (UTC)

The IDE for DevOps!

Admins! DevOps! In a recent StackOverFlow developer survey the NetBeans IDE has been rated at 10.9% for Mobile Developers and 8.4% for System Admins/DevOps. It is weird, but it supports the feeling I had for a long time: NetBeans is the IDE for DevOps!

Read more...

--JaroslavTulach 11:18, 15 March 2018 (UTC)

Type-safe Parsing of JSON without any Reflection

In need of compiling Java ahead-of-time? See jsonparse example showing a Maven project that can turn your Java code into self-contained, small (less than 5M) and effective code suitable for your microservice or lamda as a service setups. Thanks to SubstrateVM!

--JaroslavTulach 12:33, 20 November 2017 (UTC)

Apache HTML/Java API 1.5 has been released!

Hear the news! As of Oct 23, 2017, there is a release of ApacheNetBeans subproject: HTML/Java API. Hooray NetBeans continues to move on the Apache path! Next target? Apache NetBeans Platform...

--JaroslavTulach 13:53, 24 October 2017 (UTC)

Midlife Crisis of an API Designer

I have to admit I am currently at a midlife crisis. I dedicated my last twenty years to promotion of a proper API design. I wrote TheAPIBook, I tried to propagate the principles of good APIDesign and modularity wherever I could. However I am tired...

Because it is always the same. Why do I have ask: where is your Usecase? What this method is good for? What do you actually want to achieve with this method/class/type? Have you considered the difference between APIvsSPI aspects of your design? Do you have a unit test? Is your proposed change BackwardCompatible? Do you have an evolution story for your design? Is your solution optimized for your comfort or comfort of users of your API? And so on and so on... People should read TheAPIBook before attempting to design an API, but they don't and they make the same mistakes again and again.

I got so disgust that I feel sick, physically sick, when I have to think about API design. Last weekend Toni asked me to review an API he is creating and showed me what he has. I starred at him, then at the code and at him, etc. for three minutes before I could say a word. Then I had to apologize and describe my current MidlifeCrisis.

When I look at an API these days, all I see is the wasted potential the API could have, but it doesn't and never will, because the amount of investment I would have to do to educate the API stakeholder is so huge, that I just don't want to make it.

Anyway, if you have an API that you'd like me to improve, let me know. If I see real interest in proper API design my disgust and MidlifeCrisis may go away...

--JaroslavTulach 16:08, 5 May 2017 (UTC)

Advanced Injection in Jersey

I've just learned a new trick: proper way to do JerseyInjection. Maybe somebody finds it useful...

--JaroslavTulach 05:27, 15 March 2017 (UTC)

My GeeCONPrague Keynote is Online!

My GeeCONPrague keynote is available online. Watch my metamorphosis yourself:

Once you survive it and get to 5th minute, you'll also see interesting demos showing how fast the GraalVM and Truffle can be. Thanks again GeeCON guys for giving me a chance to speak at your keynote.

--JaroslavTulach 03:44, 4 January 2017 (UTC)

CleanCode at OracleLabs

This is how we write CleanCode! At GeeCONPrague 2016 all OracleLabs speakers ware our classical outfit. The claim was that it helped us write CleanCode:

--JaroslavTulach 10:16, 29 October 2016 (UTC)

Keynote at GeeCON Prague

GeeCON has come to Prague and I had a the pleasure to do an initial keynote talk. It is so great when such conference comes to your home town! Thanks a lot dear, GeeCON organizers!

--JaroslavTulach 06:27, 22 October 2016 (UTC)

Distribute Non-distributable

AutoUpdate is a fine NetBeans technology that can help you distribute things may see non-distributable. Here is a small demo that shows how one can fix broken NetBeans 8.1 installation.

--JaroslavTulach 08:55, 12 September 2016 (UTC)

Write Business Logic First, Choose UI Later!

The ControlsJS guys decided to port my MineSweeper game to their rendering technology and make it available at iOS AppStore:

Image:MineSweeperControls.jpeg

This shows how extremely portable applications written with Html4Java APIs are! In fact you can write your application code first and because it is completely independent from the UI, you can completely revamp the UI later.

Isn't this the flexibility we always wanted? Read the whole story...

--JaroslavTulach 03:45, 9 May 2016 (UTC)

Run JUnit in Your (Java Plugin-less) Browser!

Bck2Brwsr 0.19 comes with many little improvements and one new feature: it can execute JUnit in the browser!

  • Better support for Annotation - so good that bck2brwsr can now execute JUnit tests
  • Support for all classes from java.util.concurrent package, so JUnit runs without problems
  • Switching to version 2.1.0 for RetroLambda
  • More robust generated JavaScript file - doesn't override already defined classes
  • Uses version 1.3 of Html4Java API.
  • Record name of an OSGi bundle to be used when Maven coordinates are missing like in JUnit case
  • Don't convert Date objects to current time millis
  • Use boolean.valueOf() to simplify mixing of boxed and unboxed booleans
  • Perform more conversions before returning Java value to JavaScript from a Java callback
  • Launcher.createBrowser can specify its own page
  • Make sure class cast exception contains the same message as produced by JDK
  • Convert undefined value read from arrays into null
  • Convert content of array properly before entering JavaScript
  • Turning the bck2brwsr VM into an OSGi bundle
  • Introducing vmtest.precompiled=<regexp> property to verify that bck2brwsr generated resources are really used
  • Don't include VM in VMTest initialization, let it be loaded on demand
  • System.exit terminates associated launcher
  • eval(JavaScriptResource) as string to prevent double obfuscation
  • Don't report warnings when generating minified version of bck2brwsr libraries

Get the bits from the Maven central repository!

--JaroslavTulach 07:24, 30 April 2016 (UTC)


Giving Up on Apple AppStore

My MineSweeper application available from AppStore is gone. Apple wants me to pay remedies every year! For what!? Apple has no cost distributing my application. I am giving up. If somebody wants to distribute my MineSweeper, please go on, but I am giving up - giving up on Apple.

--JaroslavTulach 06:13, 9 April 2016 (UTC)

HTML/Java API 1.3 is Released!

I'd like to announce that the new version of HTML/Java API - e.g. 1.3 is ready for usage. The javadoc is at http://bits.netbeans.org/html+java/1.3/ - and the bits has been uploaded to Maven central.

HTML/Java 1.3 comes with many improvements that will make your life easier and enlarge the options you have when mixing Java and HTML. Let me quote the Javadoc:

Model classes can have per-instance private data. Model classes can generate builder-like construction methods if builder prefix is specified. Property.mutable() can be false to define a non-mutable (almost constant) property. That in case of Knockout bindings means: the property is represented by a plain value rather than an observable in the JavaScript object. The JavaFX presenter can be executed in headless mode - just specify -Dfxpresenter.headless=true when launching its virtual machine and no window will be shown. This is particularly useful for testing. OSGi headers are now enterprise OSGi ready. Switched to minified version 3.4.0 of knockout.js. Better support for recursive @Model definitions. New module org.netbeans.html:xhr4j provides implementation of Transfer with technology identifier xhr4j - this module can be used to workaround limitations of CORS by handling the OnReceive connections in Java.

--JaroslavTulach 03:33, 8 April 2016 (UTC)

API Design under Attack!

Today my colleagues from NetBeans noticed that my website - wiki.apidesign.org is under attack. Yes, since Jan 16, 2015 there were more than 5000 randomly modified pages. Maybe my talk in Grenoble was so popular that it attracted that much attention!?

Anyway I had to revert back to older copy of the database and re-apply my edits manually. Not everything looks the same as it did before, but hopefully no texts are lost.

In any case, I disabled ability to edit the pages. If you want to talk to me, use twitter and reference my handle: @JaroslavTulach

--JaroslavTulach 19:54, 10 February 2016 (UTC)

Snowcamp in Grenoble gave Bck2Brwsr 10x Speed Up!

Bck2Brwsr version 0.17 is faster. Ten years ago nobody would imagine dynamic languages could get as good performance as they have now. The feeling that JavaScript just can't be fast is presumably present in many of our souls. The truth is, it can be relatively fast - not as fast as Java as my experiment with Sieve of Eratosthenes shows, but pretty damn fast. Certainly not an excuse to be ten times slower than HotSpot (which was the previous state of Bck2Brwsr).

The daily work on Truffle compiler team and the time I got when traveling from Snowcamp at Grenoble gave me a chance to speed Bck2Brwsr up. The sieve being a nice - e.g. small and focused - benchmark. Originally the algorithm couldn't be finished in a reasonable time when running on old version of Bck2Brwsr, but knowing what optimizing compilers seek for, it was relatively easy to speed it up ten times.

With great pleasure I announce that Bck2Brwsr, the most complete Java VM in browser (that can run Javac as shown by Dew project) has been sped up many times being at most three times slower than HotSpot. Given the primary goal of Bck2Brwsr is modularity and not speed, I consider it a good sped up even knowing there is a room to make it even faster.

Enjoy the Bck2Brwsr 0.17's speed!

--JaroslavTulach 07:56, 28 January 2016 (UTC)


MineSweeper 3.0 for Your iOS Device. The Christmas Thriller Edition!

In September 2015 I decided to update the MineSweeper on AppStore to version 3.0. With a great pleasure I can announce that now, on December 18, 2015 the version is alive! Why it took so long?

Well, Apple's itunesconnect website is unusable - it isn't enough to upload new version of your application and press button Request Review. The user interface is completely messed up and hidden to make the process as obscure as possible. As a result MineSweeper was laying on the AppStore for six weeks before I found the right address (also pretty hidden) to complain at and was explained what is wrong.

Then, of course, the usual reject. This time it was due to Using images that resemble(!) Apple logo - yes, the MineSweeper is using Safari and iOS icon (check the on-line version). But these icons were present in the previous AppStore version as well. And version 2.3 was approved! Clearly the whole review process suffers from the human factor of the reviewer. What some reviewers find appropriate isn't appropriate for others.

How can I know this is a human factor? Because the new version of the MineSweeper of iOS comes with three translations - English, Czech and German (thanks to Toni) - and I am sure the reviewers checked just the English one. If the check was automatic - e.g. some scan through the binary - my submission might have been rejected again. Thankfully it wasn't. It is great we made it before Christmas, as next week the whole AppStore team is going for a vacation...

Here are the changes against standard MineSweeper source code to make the application releasable on the AppStore this time: https://github.com/jtulach/minesweeper/compare/9fc7970496a...0d6984c73

Enjoy version 3.0 of Fair MineSweeper on AppStore. Visit https://itunes.apple.com/us/app/fair-minesweeper/id903688146 to play fair!

--JaroslavTulach 05:07, 18 December 2015 (UTC)

OracleLabs in Prague is Hiring!

OracleLabs has a team in Czech Republic and is looking for new candidates to expand it. Innovation is feeding us, but that doesn't mean you have to be a scientist. We have enough clever people - we need also somebody to work!

In case you are interested in conquering the world with the fastest (J)VM on the planet backed by a strong tooling (based on NetBeans) write to me.

--JaroslavTulach 07:44, 7 October 2015 (UTC)

Can Java Speed Ruby up? Yes, ten times!

Speed of Ruby has never been great. There were many attempts to improve it, but none delivered on its promise. All failed, but one! JRuby implementation running on top of JVM spiced with a bit of Truffle and Graal is in fact ten times faster than standard Ruby version.

Watch this video to see how can Java and its virtual machine help those other poor and slow languages!

--JaroslavTulach 12:28, 2 October 2015 (UTC)

Speaking at JDD in Krakow

I'll be speaking at JDD in Krakow in middle of October. In case you have a Java related message to deliver to the JDD galaxy, leave it here. I'll do my best to deliver it.

Image:Jdd2013.png

I enjoyed Krakow JDD conference in 2013 and based on my experiences I wrote the languages essay. Now I am invited to speak at JDD 2015 about Truffle and Graal and while there I am also going to do a workshop about DukeScript.

If you have a message that I should share with visitor's in Krakow, leave it here:

<comments/>

--JaroslavTulach 09:31, 25 September 2015 (UTC)

Truffle Debugging in NetBeans 8.1

Debugging any Truffle language is now quite easy in NetBeans 8.1! Check the video:

--JaroslavTulach 14:10, 11 September 2015 (UTC)

HTML/Java version 1.2.1 has been Released!

Cross platform UI library called HTML/Java API (which is developed by the NetBeans project) is proud to announce that version 1.2 has just been released on Maven central. See javadoc to find out what is new in this version!

The project is also glad that binaries of the new HTML/Java version 1.2 are now included in forthcoming NetBeans 8.1 release making it easy to develop wizards as well as components and dialogs in a cross-platform manner (e.g. able to run in NetBeans platform applications, IDE, Eclipse RCP, plugin-less browser and thanks to adoption by DukeScript project also on iOS and Android).

HTML/Java API is the heart of Java that is written once, and displayed everywhere!

--JaroslavTulach - HTML/Java inventor 06:16, 2 September 2015 (UTC)

Design with Truffle. Get Debugger for Free!

Truffle - a modern way to write AST interpreters - gives you not only speed, but also debugger for free:

Image:TruffleDebugger.png

The picture shows NetBeans debugger stopped in middle of simple language (an artificial language used for demo purposes) method. NetBeans knows nothing about simple language (that is why syntax coloring is missing), but as NetBeans understands the Truffle AST, it can still provide enough valuable information in the debugger.

Please note that the name of the method is properly recognized and shown on top of the stack. Variables a and b and their values are properly shown as well.

Designing your own language? Do you want to spend time writing a debugger? If not, use Truffle and you'll get your debugger for free!

--JaroslavTulach 16:04, 24 June 2015 (UTC)

JavaScript is a New Assembly Language

Ever felt JavaScript is your carrier path? Well, maybe you should re-think you future! JavaScript is just another assembly language!

--JaroslavTulach 21:02, 5 April 2015 (UTC)

NetBeans History: University Beginnings

The original name of the project was Xelfi and it started at MatFyz faculty of Charles University in middle of 90-ties. However it was so successful that it had to turn into something as successful as NetBeans. In case you are satisfied with your IDE, consider reading about its root...

--JaroslavTulach 16:04, 20 March 2015 (UTC)

Can Real Threads be Brought to JavaScript?

What it would take to bring Java like threads into JavaScript (via Bck2Brwsr VM)? Here is my [[1]]!

--JaroslavTulach 09:52, 22 January 2015 (UTC)

Bck2Brwsr @ 0.13 Released

Bugfix release of Bck2Brwsr 0.13 is out and it powers another classical game: fifteen. Give it a try!

--JaroslavTulach 09:27, 12 January 2015 (UTC)

Bck2Brwsr @ 0.12 Released

Bck2Brwsr 0.12 has been released. What is new?

Libraries can be pre-compiled and published as Maven artefacts (see Bck2BrwsrLibraries how to). The Knockout4Java Maven archetype has been modified to use the precompiled version of Bck2Brwsr rt. jar emulation library and HTML/Java APIs:

$ mvn archetype:generate \
  -DarchetypeGroupId=org.apidesign.html \
  -DarchetypeArtifactId=knockout4j-archetype \
  -DarchetypeVersion=1.1.2 \
  -Dbck2brwsr=true
# answer few questions...
$ cd nameofyourproject
# run on desktop
$ mvn process-classes exec:java
# run in a browser
$ mvn -Pbck2brwsr clean package bck2brwsr:show

Supporting Bck2BrwsrBlobURLs so one can display images available as in JAR resources.

Happy Year 2015 and please help me get Java Bck2Brwsr!

--JaroslavTulach 21:53, 1 January 2015 (UTC)

Wrap Your JAR as OSGi Bundle via Maven Easily!

See the tutorial at OSGiWrapper.

--JaroslavTulach 13:07, 29 November 2014 (UTC)

Duke Choice Award

DukeScript has been awarded a Duke Choice Award! Here is picture of Toni Epple and me holding the Duke Choice Award on Sep 28, 2014:

Image:DukeChoiceAward.jpg

Long live Java and HTML on every device (iOS, Android and co.)!

--JaroslavTulach 17:37, 29 September 2014 (UTC)

Play MineSweeper to Become iOS, Android, JavaFX & co. Developer

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 opened as following picture shows:

Image:MineSweeperDevelop.png

--JaroslavTulach 10:57, 15 September 2014 (UTC)

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)

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)


buy