http://wiki.apidesign.org/index.php?title=Blogs:JaroslavTulach:Practical_Design&action=feed&feed=atomPractical Design2024-03-29T14:40:18ZAPIDesign - Blogs:JaroslavTulach:Practical DesignMediaWiki 1.12.0rc1 via WikiArticleFeeds 0.6.3http://wiki.apidesign.org/wiki/MarketingVersion Marketing Version 2023-06-11T05:26:00Z
<p>There is a difference between <a href="http://wiki.apidesign.org/wiki/MarketingVersion" title="MarketingVersion">MarketingVersion</a> and engineering approach to versioning. Hear why: <a href="http://wiki.apidesign.org/wiki/MarketingVersion" title="MarketingVersion">read more</a>...
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 05:26, 11 June 2023 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/DeepHierarchy Do not Expose Deep Hierarchies! 2022-09-24T05:39:00Z
<p>Do not expose <a href="http://wiki.apidesign.org/wiki/DeepHierarchy" title="DeepHierarchy">DeepHierarchy</a> of classes when designing an API!
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 05:39, 24 September 2022 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Frgaal Using record on any JDK! 2022-04-23T07:10:00Z
<p>Do you like <b>record</b> or other modern Java language features? Would you like to use them on older JDKs? Then read about <a href="http://wiki.apidesign.org/wiki/Frgaal" title="Frgaal">Frgaal</a> - the retrofit compiler for Java.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 07:10, 23 April 2022 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/HTML 2021: Code VSCode UI in Java 2021-12-10T07:43:00Z
<p>Seven years ago, in 2014 I wanted to unify UI of various IDEs around <a href="http://wiki.apidesign.org/wiki/HTML" title="HTML">HTML</a> (see below). However the motivation to do so was never compelling enough. Using <a href="http://wiki.apidesign.org/wiki/Swing" title="Swing">Swing</a> (or <a href="http://wiki.apidesign.org/wiki/SWT" title="SWT">SWT</a>) is more natural. Finally, in 2021 we found good enough reason: <a href="http://wiki.apidesign.org/wiki/VSCode" title="VSCode">VSCode</a> and its <a href="http://wiki.apidesign.org/wiki/NetBeans" title="NetBeans">NetBeans</a> based extension!
</p><p><a href="http://wiki.apidesign.org/wiki/Image:Vscodehtmlui.png" class="image" title="Image:Vscodehtmlui.png"><img alt="Image:Vscodehtmlui.png" src="http://wiki.apidesign.org/images/5/5f/Vscodehtmlui.png" width="1112" height="781" border="0" /></a>
</p><p>Since December 10, 2021 it is real: one can code <a href="http://wiki.apidesign.org/wiki/HTML" title="HTML">HTML</a> <a href="http://wiki.apidesign.org/wiki/UI" title="UI">UI</a> in <a href="http://wiki.apidesign.org/wiki/Java" class="mw-redirect" title="Java">Java</a> and display it in <a href="http://wiki.apidesign.org/wiki/VSCode" title="VSCode">VSCode</a> as well as <a href="http://wiki.apidesign.org/wiki/NetBeans" title="NetBeans">NetBeans</a>. See <a href="https://github.com/apache/netbeans/pull/3349" class="external text" title="https://github.com/apache/netbeans/pull/3349" rel="nofollow">PR-3349</a>.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 07:43, 10 December 2021 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Bck2Brwsr_0.50 Bck2Brwsr 0.50: Ready for 2021 Technologies 2021-08-01T19:48:00Z
<p>For a while I ignored my Bck2Brwsr project, which I used to love, but recent back and forth shifts attracted me again to the area of Java and JavaScript interop. Originally I was hoping for a superior transpiler being created, but when I realized the goal isn't to cooperate, but compete, I decided to <a href="http://wiki.apidesign.org/wiki/Bck2Brwsr_0.50" title="Bck2Brwsr 0.50">bring Bck2Brwsr transpiler into the 2021 age</a>: it is still very restriced JVM, but it does support latest Gradle, it does support lambdas and it supports even JDK-11 string concatentation.
</p><p>Read more at <a href="http://wiki.apidesign.org/wiki/Bck2Brwsr_0.50" title="Bck2Brwsr 0.50">Bck2Brwsr 0.50</a> release page...
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 19:48, 1 August 2021 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/AlternativeImplementation Run on JDK8, use JDK11 APIs! 2021-02-16T06:17:00Z
<p>Do you want to <a href="http://wiki.apidesign.org/wiki/AlternativeImplementation" title="AlternativeImplementation">run your application on JDK8</a>, but use JDK11 APIs? That's traditionally done with a reflection. But there is a <a href="http://wiki.apidesign.org/wiki/AlternativeImplementation" title="AlternativeImplementation">better way</a>!
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 06:17, 16 February 2021 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Helidon Helidon MP 2.0 supports GraalVM NativeImage 2020-06-29T19:17:00Z
<p><a href="http://wiki.apidesign.org/wiki/Helidon" title="Helidon">Helidon</a> MP implements the <a href="http://wiki.apidesign.org/wiki/MicroProfile" title="MicroProfile">MicroProfile</a> specification based on various other standard <a href="http://wiki.apidesign.org/wiki/JavaEE" title="JavaEE">JavaEE</a> subspecifications including <a href="http://wiki.apidesign.org/wiki/CDI" title="CDI">CDI</a>. Getting <a href="http://wiki.apidesign.org/wiki/Weld" title="Weld">Weld</a> (the reference <a href="http://wiki.apidesign.org/wiki/CDI" title="CDI">CDI</a> specification) running on top of <a href="http://wiki.apidesign.org/wiki/NativeImage" title="NativeImage">NativeImage</a> is particularly tricky. Not only <a href="http://wiki.apidesign.org/wiki/Weld" title="Weld">Weld</a> dynamically scans for various annotations, but it also dynamically emits <a href="http://wiki.apidesign.org/wiki/Bytecode" title="Bytecode">bytecode</a> for its helper classes during runtime. Solving this required more insight into <a href="http://wiki.apidesign.org/wiki/JavaEE" title="JavaEE">JavaEE</a> than available among compiler engineers - not that <a href="http://wiki.apidesign.org/wiki/I" class="mw-redirect" title="I">I</a> had it initially, but the close co-operation with Tomáš Langer (the <a href="http://wiki.apidesign.org/wiki/Helidon" title="Helidon">Helidon</a> lead engineer) helped us get started. Tomáš prepared various trivial <a href="http://wiki.apidesign.org/wiki/CDI" title="CDI">CDI</a> sample projects and <a href="http://wiki.apidesign.org/wiki/I" class="mw-redirect" title="I">I</a> was then able to get them running on <a href="http://wiki.apidesign.org/wiki/NativeImage" title="NativeImage">NativeImage</a> by writing a dedicated <b>WeldFeature</b>. Once the initial road block was gone the <a href="http://wiki.apidesign.org/wiki/Helidon" title="Helidon">Helidon</a> team was able to move forward on their own and get their enhanced <a href="http://wiki.apidesign.org/wiki/Weld" title="Weld">Weld</a> running on top of <a href="http://wiki.apidesign.org/wiki/NativeImage" title="NativeImage">NativeImage</a>.
</p><p><a href="http://wiki.apidesign.org/wiki/Helidon" title="Helidon">Helidon</a> 2.0 <a href="https://medium.com/helidon/announcing-helidon-2-0-19c245f5488a" class="external text" title="https://medium.com/helidon/announcing-helidon-2-0-19c245f5488a" rel="nofollow">was released</a> on June 24, 2020. It's <a href="http://wiki.apidesign.org/wiki/MicroProfile" title="MicroProfile">MicroProfile</a> edition (including compatible <a href="http://wiki.apidesign.org/wiki/CDI" title="CDI">CDI</a> implementation) works with <a href="http://wiki.apidesign.org/wiki/NativeImage" title="NativeImage">NativeImage</a>.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 19:17, 29 June 2020 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/SafariOnline Available on Safari Books Online 2019-05-25T05:50:00Z
<p><a href="http://wiki.apidesign.org/wiki/SafariOnline" title="SafariOnline">SafariOnline</a> now hosts <a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook">TheAPIBook</a>. No more warez downloads!?
</p><p>I had a presentation for my colleagues about <a href="http://wiki.apidesign.org/wiki/GraalVM" title="GraalVM">GraalVM</a>. <a href="http://wiki.apidesign.org/wiki/GraalVM" title="GraalVM">GraalVM</a> is about <a href="http://wiki.apidesign.org/wiki/Speed" class="mw-redirect" title="Speed">speed</a>, but also about <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">APIs</a>. As a consequence some of my colleagues asked, why <a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook">TheAPIBook</a> isn't available for <a href="http://wiki.apidesign.org/wiki/Oracle" title="Oracle">Oracle</a> at <a href="https://my.safaribooksonline.com/" class="external free" title="https://my.safaribooksonline.com/" rel="nofollow">https://my.safaribooksonline.com/</a> - I didn't know, but was curious to find out as well. I sent a note back in April to <a href="http://wiki.apidesign.org/wiki/Apress" title="Apress">Apress</a>. Why my <b>Practical API Design</b> is not being available on Safari? This week I've got an answer:
</p><p>The reason it had not been available is because at the time the book published, we were not sending regular feeds to Safari. It was also at a time that pre-dates ePUBs being created as a part of our standard workflow (ePUBs are what <a href="http://wiki.apidesign.org/wiki/SafariOnline" title="SafariOnline">SafariOnline</a> requires). We had to create an ePUB from the existing PDF version of the eBook.
</p><p>In short: <a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook">TheAPIBook</a> is now live on the <a href="https://my.safaribooksonline.com/" class="external free" title="https://my.safaribooksonline.com/" rel="nofollow">https://my.safaribooksonline.com/</a>
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 05:50, 25 May 2019 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/TenYears TenYears of the Practical API Design book 2018-07-29T06:36:00Z
<p><a href="http://wiki.apidesign.org/wiki/TenYears" title="TenYears">Ten years</a> ago, on July 29, 2008, the <a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook">Practical API Design</a> book was published. Isn't that a date to remember and celebrate? Yeah, it certainly deserves at least a little note. Many things has changed over the last <a href="http://wiki.apidesign.org/wiki/TenYears" title="TenYears">ten years</a>...
</p><p>The language that I used for most of the examples, <a href="http://wiki.apidesign.org/wiki/Java" class="mw-redirect" title="Java">Java</a>, is no longer as popular as it used to be. It is no longer taught at basic university courses. It is no longer the choice of those who want to use <a href="http://wiki.apidesign.org/wiki/Good_technology" class="mw-redirect" title="Good technology">good technology</a> with all its three essential components (coolness, time to market and <a href="http://wiki.apidesign.org/wiki/Cost_of_Ownership" title="Cost of Ownership">Cost of Ownership</a>). Does that mean <a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook">TheAPIBook</a> content is no longer valid? Not that all! <a href="http://wiki.apidesign.org/wiki/I" class="mw-redirect" title="I">I</a> always expected <a href="http://wiki.apidesign.org/wiki/Java" class="mw-redirect" title="Java">Java</a> to evolve into something different - the language was just a tool - thus the core ideas still remain fresh and useful.
</p><p><a href="http://wiki.apidesign.org/wiki/REST" title="REST">REST</a> has grown way stronger in the <a href="http://wiki.apidesign.org/wiki/TenYears" title="TenYears">last decade</a>. When <a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook">TheAPIBook</a> was written, the term <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a> was still reserved to all <a href="http://wiki.apidesign.org/wiki/APITypes" class="mw-redirect" title="APITypes">types of API</a> (<a href="http://wiki.apidesign.org/wiki/Protocols" title="Protocols">Protocols</a>, <a href="http://wiki.apidesign.org/wiki/FilesLayout" title="FilesLayout">FilesLayout</a>, <a href="http://wiki.apidesign.org/wiki/Dependencies" title="Dependencies">Dependencies</a>, <a href="http://wiki.apidesign.org/wiki/CLI" title="CLI">CLI</a>, and of course <a href="http://wiki.apidesign.org/wiki/Signature" class="mw-redirect" title="Signature">signatures</a>). The <a href="http://wiki.apidesign.org/wiki/REST" title="REST">REST</a> was just one of the <a href="http://wiki.apidesign.org/wiki/APITypes" class="mw-redirect" title="APITypes">types</a>. I realized things has changed in 2014 when I received a question: How does the <i>API economy</i> impact the <a href="http://wiki.apidesign.org/wiki/APIDesign" class="mw-redirect" title="APIDesign">APIDesign</a>? At that moment it was clear, the term <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a> had been kidnapped by the <a href="http://wiki.apidesign.org/wiki/REST" title="REST">REST</a> guys. When regular people hear <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a> they first and foremost envision web services! That is upside down, as network communication is just a part of <a href="http://wiki.apidesign.org/wiki/The_Art_of_Building_Modern_Software" title="The Art of Building Modern Software">the Art of Building Modern Software</a>, but the expectations have shifted and one has to live with that.
</p><p><a href="http://wiki.apidesign.org/wiki/ClarityOfTypes" title="ClarityOfTypes">Types</a> went away and returned back. For a while it seemed that types were heading to unimportance with the decline of <a href="http://wiki.apidesign.org/wiki/Java" class="mw-redirect" title="Java">Java</a>. It is true that the runtime characteristics of dynamic languages like <a href="http://wiki.apidesign.org/wiki/JavaScript" title="JavaScript">JavaScript</a> got on par over <a href="http://wiki.apidesign.org/wiki/TenYears" title="TenYears">the years</a>. Yet, it seems the types are striking back: <a href="http://wiki.apidesign.org/wiki/TypeScript" title="TypeScript">TypeScript</a>, <a href="http://wiki.apidesign.org/wiki/Kotlin" title="Kotlin">Kotlin</a>, etc. show that for certain tasks (like designing an <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a>) having a type is an advantage. While <a href="http://wiki.apidesign.org/wiki/I" class="mw-redirect" title="I">I</a> am able to design an <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a> in a dynamic language, having types makes it all more convenient and alike to advises described in <a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook">TheAPIBook</a>.
</p><p>I left the source of inspiration of <a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook">TheAPIBook</a> - I only contribute to the <a href="http://wiki.apidesign.org/wiki/NetBeans" title="NetBeans">NetBeans</a> <a href="http://wiki.apidesign.org/wiki/Apache" title="Apache">Apache</a> project in my spare time - as a result I had to find <a href="http://wiki.apidesign.org/wiki/OracleLabs" title="OracleLabs">another organization</a> to feed me with <a href="http://wiki.apidesign.org/wiki/APIDesign" class="mw-redirect" title="APIDesign">APIDesign</a> mistakes. It is a <a href="http://wiki.apidesign.org/wiki/MidlifeCrisis" title="MidlifeCrisis">strong suply</a>, yet I believe the list of my <a href="http://wiki.apidesign.org/wiki/TwoYearsWithTruffle" title="TwoYearsWithTruffle">achievements in the recent years</a> allows one conclusion: It is possible to design an <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a> as a service! I wish the impact of the <a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook">Practical API Design</a> book has been bigger: It is clear there is a lot of people struggling to design an <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a> and it would really help them to avoid inventing the wheel. Many of the <a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook">Practical API Design</a> observations would help to avoid the mistakes <a href="http://wiki.apidesign.org/wiki/I" class="mw-redirect" title="I">I</a> am <a href="http://wiki.apidesign.org/wiki/MidlifeCrisis" title="MidlifeCrisis">seeing all around</a>, but maybe it is <a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook">not that easy to read</a>, maybe it is the <a href="http://wiki.apidesign.org/wiki/Talkback" title="Talkback">personalization</a> that counts!
</p><p>Don't you need a skilled <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a> designer? Don't you want to improve your <a href="http://wiki.apidesign.org/wiki/API_Design" class="mw-redirect" title="API Design">API Design</a> skills with an entertaining game-like <a href="http://wiki.apidesign.org/wiki/Using_Games_to_Improve_API_Design_Skills" title="Using Games to Improve API Design Skills">training</a>? <a href="http://wiki.apidesign.org/wiki/Talkback" title="Talkback">Talkback</a> to <a href="http://wiki.apidesign.org/wiki/I" class="mw-redirect" title="I">me</a>. Actively joining would be the best celebration of the 10th anniversary of the <a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook">Practical API Design</a> book!
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 06:36, 29 July 2018 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Bck2Brwsr_0.23 Bck2Brwsr 0.23: Get Started via Gradle! 2018-06-01T04:02:00Z
<p>After few months the <a href="http://wiki.apidesign.org/wiki/Bck2Brwsr_0.23" title="Bck2Brwsr 0.23">newest version</a> of <a href="http://wiki.apidesign.org/wiki/Bck2Brwsr" title="Bck2Brwsr">Bck2Brwsr</a> <a href="http://wiki.apidesign.org/wiki/VM" class="mw-redirect" title="VM">VM</a> is here. It contains:
</p>
<ul><li> Fast emulation of <b>long</b> numbers <a href="https://github.com/jtulach/bck2brwsr/pull/7" class="external text" title="https://github.com/jtulach/bck2brwsr/pull/7" rel="nofollow">based on scala.js one</a> - thanks Sébastien!
</li><li> <a href="http://wiki.apidesign.org/wiki/Gradle" title="Gradle">Gradle</a> tasks - see <a href="https://github.com/jtulach/bck2brwsr/blob/master/docs/GRADLE.md" class="external text" title="https://github.com/jtulach/bck2brwsr/blob/master/docs/GRADLE.md" rel="nofollow">howto</a>
</li><li> New <a href="https://github.com/jtulach/bck2brwsr/blob/master/docs/MAVEN.md" class="external text" title="https://github.com/jtulach/bck2brwsr/blob/master/docs/MAVEN.md" rel="nofollow">maven tutorial</a>
</li></ul>
<p>It was quite a fun to write <a href="http://wiki.apidesign.org/wiki/Gradle" title="Gradle">Gradle</a> tasks together with <a href="http://wiki.apidesign.org/wiki/Maven" title="Maven">Maven</a> and build them by <a href="http://wiki.apidesign.org/wiki/Maven" title="Maven">Maven</a>.
</p><p>Get started with <a href="https://github.com/jtulach/bck2brwsr/#readme" class="external text" title="https://github.com/jtulach/bck2brwsr/#readme" rel="nofollow">README</a>. Enjoy.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 04:02, 1 June 2018 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Singletonizer Singletonizer API Design Pattern 2018-01-25T06:51:00Z
<p>Recently I have successfully used the <a href="http://wiki.apidesign.org/wiki/Singletonizer" title="Singletonizer">singletonizer</a> API design pattern in <a href="http://wiki.apidesign.org/wiki/Graal" title="Graal">Graal</a>'s <b>Graph I/O</b> <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a> <a href="http://www.graalvm.org/graphio/javadoc/org/graalvm/graphio/package-summary.html" class="external text" title="http://www.graalvm.org/graphio/javadoc/org/graalvm/graphio/package-summary.html" rel="nofollow">javadoc</a>. The result ain't that bad, right?
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 06:51, 25 January 2018 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Spring Is Spring the Sole Reason why Java is Becoming the new COBOL? 2017-12-18T11:46:00Z
<p>Is there anything good on <a href="http://wiki.apidesign.org/wiki/Spring" title="Spring">Spring</a> that wouldn't be seen ridiculous by non-enterprise-Java users?
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 11:46, 18 December 2017 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Bck2Brwsr Bck2Brwsr 0.20 - the Radtouren 2017 Release 2017-07-09T13:27:00Z
<p>This version of <a href="http://wiki.apidesign.org/wiki/Bck2Brwsr" title="Bck2Brwsr">Bck2Brwsr</a> VM is called <b>Radtouren 2017</b> version, as it has been prepared and released while our gang was bicycling in <a href="http://en.wikipedia.org/wiki/cs:korutany" class="extiw" title="wikipedia:cs:korutany">Korutany</a>. Sleeping in a tent in camps, bicycling whole day, coding in a morning. What can be more fun?
</p>
<ul><li> Support for <a href="http://bits.netbeans.org/html+java/" class="external text" title="http://bits.netbeans.org/html+java/" rel="nofollow">Html/Java API</a> version 1.4
</li><li> Build & tests succeed on <a href="http://wiki.apidesign.org/wiki/GraalVM" title="GraalVM">GraalVM</a>
</li><li> Few bugfixes
<ul><li> Support for <b>NOP</b> instruction
</li><li> Can execute some <a href="http://wiki.apidesign.org/wiki/Kotlin" title="Kotlin">Kotlin</a> code
</li></ul>
</li><li> Implementation of <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassValue.html" class="external text" title="https://docs.oracle.com/javase/8/docs/api/java/lang/ClassValue.html" rel="nofollow">ClassValue</a>
</li></ul>
<p>Wanna transpile <a href="http://wiki.apidesign.org/wiki/Java" class="mw-redirect" title="Java">Java</a> to <a href="http://wiki.apidesign.org/wiki/JavaScript" title="JavaScript">JavaScript</a>. Give <a href="http://wiki.apidesign.org/wiki/Bck2Brwsr" title="Bck2Brwsr">Bck2Brwsr</a> a try!
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 13:27, 9 July 2017 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Codesnippet4Javadoc Codesnippet Doclet 0.20 Release 2017-02-16T10:40:00Z
<p>Enhance your Javadoc with <a href="http://wiki.apidesign.org/wiki/Codesnippet4Javadoc" title="Codesnippet4Javadoc">Codesnippet4Javadoc</a> version 0.20 which now supports special "coloring" for strings and comments.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 10:40, 16 February 2017 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/DefaultMethods Beware of DefaultMethods 2016-09-24T10:42:00Z
<p><a href="http://wiki.apidesign.org/wiki/DefaultMethods" title="DefaultMethods">DefaultMethods</a> is a new feature of JDK8 that we many cried for. Yet, they carry certain drawbacks with themselves. For example one can write <a href="http://wiki.apidesign.org/wiki/DefaultMethods" title="DefaultMethods">a valid Java program</a> that compiles and works on <a href="http://wiki.apidesign.org/wiki/JDK" title="JDK">JDK</a>7, but is broken on <a href="http://wiki.apidesign.org/wiki/JDK" title="JDK">JDK</a>8!
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 10:42, 24 September 2016 (UTC)
</p>
JaroslavTulachhttp://wiki.netbeans.org/SigTest Test your APIs Easily with Maven SigTest Plugin 2016-07-15T17:52:00Z
<p>The <i>NetBeans API & Maven community</i> (e.g. me and Miloš Kleint) is proud to announce the immediate availability of <a href="http://wiki.netbeans.org/SigTest" class="extiw" title="netbeans:SigTest">sigtest-maven-plugin</a>. <a href="http://wiki.apidesign.org/wiki/SignatureTests" title="SignatureTests">Signature testing</a> has never been easier: just follow the tips on the <a href="http://wiki.netbeans.org/SigTest" class="extiw" title="netbeans:SigTest">SigTest</a> main page and you'll never make an incompatible change since then!
</p><p>Read <a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook">TheAPIBook</a> and let NetBeans <a href="http://wiki.netbeans.org/SigTest" class="extiw" title="netbeans:SigTest">SigTest</a> <a href="http://wiki.apidesign.org/wiki/Maven" title="Maven">Maven</a> plugin look over you and make you great <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a> designer! Enjoy!
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 17:52, 15 July 2016 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/APIUsabilityStudy Boost Your Career: Become an API Tester! 2016-06-06T08:13:00Z
<p>Motto: the easiest way to learn something about a code base is to fix bugs. The easiest way to <b>learn</b> something <b>about design API</b> is to join an <a href="http://wiki.apidesign.org/wiki/APIUsabilityStudy" title="APIUsabilityStudy">APIUsabilityStudy</a>!
</p><p>There are many reasons why you should care about the <a href="http://wiki.apidesign.org/wiki/Truffle" title="Truffle">Truffle</a> framework (please check the <a href="https://github.com/graalvm/truffle/blob/198dd90c69baa5665c870bbe1f39639298cb4608/CHANGELOG.md" class="external text" title="https://github.com/graalvm/truffle/blob/198dd90c69baa5665c870bbe1f39639298cb4608/CHANGELOG.md" rel="nofollow">changelog</a> of just released version <b>0.14</b> to learn more), but the most important one is related to <a href="http://wiki.apidesign.org/wiki/API_Design" class="mw-redirect" title="API Design">API Design</a> and your career:
</p><p>I need <b>API testers</b>! I need to organize a usability study of the <a href="http://wiki.apidesign.org/wiki/Truffle" title="Truffle">Truffle</a> API and I need developers to perform it. How can you help?
</p><p>We have prepared five easy tasks: use <a href="http://wiki.apidesign.org/wiki/Truffle" title="Truffle">Truffle</a> to invoke a code in <a href="http://wiki.apidesign.org/wiki/Ruby" title="Ruby">Ruby</a>, <a href="http://wiki.apidesign.org/wiki/JavaScript" title="JavaScript">JavaScript</a>, <a href="http://wiki.apidesign.org/wiki/R" title="R">R</a>, exchange data between <a href="http://wiki.apidesign.org/wiki/Java" class="mw-redirect" title="Java">Java</a> and one of those languages using <a href="http://wiki.apidesign.org/wiki/Truffle" title="Truffle">Truffle</a> interop, etc. In addition to that we ask you five questions: What did you like/dislike? What should we improve, etc.? Overall, the whole study should be easy and entertaining. You can learn something new (e.g. <a href="http://wiki.apidesign.org/wiki/Truffle" title="Truffle">Truffle</a>) and even earn some money.
</p><p>Originally I wanted to repeat the previous success of <a href="http://wiki.netbeans.org/Html4JavaUXStudy2014" class="extiw" title="netbeans:Html4JavaUXStudy2014">netbeans:Html4JavaUXStudy2014</a>, but the then used service is no longer available due to small demand. Understandable, but a shame! I know the demand for <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a> related courses is low (I do one once a few years), but it is always very valuable to seek an advice when it comes to <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a> - the <i>on-line API usability study</i> was really great idea! Alas, we need to organize it ourselves.
</p><p>Are you interested to help us? If your want to be an API tester for a few hours, please write to my email <b>practical@apidesign.org</b> and I share more details. Thanks in advance!
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 08:13, 6 June 2016 (UTC)
</p><p><br />
</p>
JaroslavTulachhttps://github.com/jtulach/codesnippet4javadoc Improve Javadoc of Your API: Stop showing crappy code samples! 2015-12-30T15:59:00Z
<p>I've just finished integration of <a href="https://github.com/jtulach/codesnippet4javadoc" class="external text" title="https://github.com/jtulach/codesnippet4javadoc" rel="nofollow">Codesnippet Javadoc Doclet</a> into <a href="http://wiki.apidesign.org/wiki/Truffle" title="Truffle">Truffle</a> <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a> and the result is great: we found out that one of the samples (actually the first one that I tried) was not compilable!
</p><p>If you care about <a href="http://wiki.apidesign.org/wiki/Javadoc" title="Javadoc">Javadoc</a> of your <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a>, consider using <b>Codesnippet</b> doclet too!
</p><p>Btw. it surprises me <a href="http://wiki.apidesign.org/wiki/I" class="mw-redirect" title="I">I</a> am the first one who created something like this! Showing snippets in documentation is so common. But maybe it is the same issue as with <a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook">TheAPIBook</a> - it was the first book that ensured all the code samples are compilable by extracting them from real source code (using similar infrastructure as <b>Codesnippet</b> doclet provides). And it worked - while <a href="http://wiki.apidesign.org/wiki/Errata" title="Errata">Errata</a> of every book is full of comments about incorrect code samples, there is none for <a href="http://wiki.apidesign.org/wiki/TheAPIBook" title="TheAPIBook">TheAPIBook</a>.
</p><p>Do your <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a> a favor: use <a href="https://github.com/jtulach/codesnippet4javadoc" class="external text" title="https://github.com/jtulach/codesnippet4javadoc" rel="nofollow">Codesnippet Javadoc Doclet</a> and make your code samples real!
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 15:59, 30 December 2015 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/ObfuscatePerLibrary Java Modularity in the Context of JavaScript 2015-05-29T04:10:00Z
<p><a href="http://wiki.apidesign.org/wiki/ObfuscatePerLibrary" title="ObfuscatePerLibrary">Obfuscation per library</a> is quite common in <a href="http://wiki.apidesign.org/wiki/JavaScript" title="JavaScript">JavaScript</a> and it results in faster download times, sharing modules between different applications and easier processing of the obfuscated files. Shouldn't something similar be done in <a href="http://wiki.apidesign.org/wiki/Java" class="mw-redirect" title="Java">Java</a>?
</p><p>Yes, it should. And it has been done! Here is description of design and implementation of <a href="http://wiki.apidesign.org/wiki/ObfuscatePerLibrary" title="ObfuscatePerLibrary">Obfuscation per JAR file</a> for <a href="http://wiki.apidesign.org/wiki/Java" class="mw-redirect" title="Java">Java</a> (in a [[Bck2Brwsr|browser).
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 04:10, 29 May 2015 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/ConfigurationObject ConfigurationObject Pattern in Java 2015-02-22T12:44:00Z
<p><a href="http://wiki.apidesign.org/wiki/ConfigurationObject" title="ConfigurationObject">ConfigurationObject</a> pattern is quite common in many <a href="http://wiki.apidesign.org/wiki/JavaScript" title="JavaScript">JavaScript</a> libraries. Do you know what is the best way to express it in <a href="http://wiki.apidesign.org/wiki/Java" class="mw-redirect" title="Java">Java</a>? Check <a href="http://wiki.apidesign.org/wiki/ConfigurationObject" title="ConfigurationObject">my essay</a> that compares four different ways and analyses their impact on <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a> designer and especially <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">API</a> users.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 12:44, 22 February 2015 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Final_interface Final interface. Finally Done Right! 2015-02-04T16:53:00Z
<p>Maybe there is nobody interested in <a href="http://wiki.apidesign.org/wiki/Final_interface" title="Final interface">final interface</a> <a href="http://wiki.apidesign.org/wiki/Category:APIDesignPatterns" title="Category:APIDesignPatterns">API Design Pattern</a> anymore! Now when there is <a href="http://wiki.apidesign.org/wiki/JDK" title="JDK">JDK</a>8 with extender methods people may always mitigate bad design (e.g. using <a href="http://wiki.apidesign.org/wiki/Final_interface" title="Final interface">final interface</a> at all) by adding methods with default bodies. Still I found it important to cover this pattern in my <a href="http://wiki.apidesign.org/wiki/Category:APIDesignPatterns" title="Category:APIDesignPatterns">API Design Patterns</a> Collection.
</p><p>Let's me guide you through the short and incomplete history of <a href="http://wiki.apidesign.org/wiki/Final_interface" title="Final interface">final interface</a> design pattern with small excursion to <a href="http://wiki.apidesign.org/wiki/Final_interface" title="Final interface">JDK's own itches</a> and specifics of <a href="http://wiki.apidesign.org/wiki/Final_interface" title="Final interface">designing for OSGi</a> to finally describe how to do <a href="http://wiki.apidesign.org/wiki/Final_interface" title="Final interface">final interface</a> pattern right!
</p><p>Let you find <a href="http://wiki.apidesign.org/wiki/Final_interface" title="Final interface">such description</a> useful!
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 16:53, 4 February 2015 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/ImpossibleThreading Impossible. Part II. 2015-01-03T19:23:00Z
<p>Everybody understands <a href="http://wiki.apidesign.org/wiki/ImpossibleThreading" title="ImpossibleThreading">threading</a> is complex. Yet almost everyone believes that with good methodology it is possible to do <a href="http://wiki.apidesign.org/wiki/ImpossibleThreading" title="ImpossibleThreading">threading</a> right. Well, it is not. There is no theory to eliminate <a href="http://wiki.apidesign.org/wiki/Deadlock" title="Deadlock">deadlocks</a>. Achieving <a href="http://wiki.apidesign.org/wiki/ImpossibleThreading" title="ImpossibleThreading">proper threading is impossible</a>. Still people keep asking for it. When you tell them <a href="http://wiki.apidesign.org/wiki/ImpossibleThreading" title="ImpossibleThreading">it is impossible</a>, you may get fired. Just like me few years ago! Here is my <a href="http://wiki.apidesign.org/wiki/ImpossibleThreading" title="ImpossibleThreading">story</a>.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 19:23, 3 January 2015 (UTC)
</p><p><br />
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Bck2BrwsrLibraries Publish Bck2Brwsr Libraries as Maven Artifacts 2014-12-07T05:21:00Z
<p><a href="http://wiki.apidesign.org/wiki/Bck2BrwsrLibraries" title="Bck2BrwsrLibraries">Bck2BrwsrLibraries</a> can now be published as <a href="http://wiki.apidesign.org/wiki/Maven" title="Maven">Maven</a> Artifacts which greatly reduces edit/compile/run time.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 05:21, 7 December 2014 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Bck2BrwsrBlobURLs Bck2Brwsr and Images as Resources 2014-10-30T01:19:00Z
<p><a href="http://wiki.apidesign.org/wiki/Bck2BrwsrBlobURLs" title="Bck2BrwsrBlobURLs">Blob URL</a> support has been implemented for forthcoming version of <a href="http://wiki.apidesign.org/wiki/Bck2Brwsr_0.12" title="Bck2Brwsr 0.12">Bck2Brwsr 0.12</a>. Now you can easily access images packaged as resources in your <a href="http://wiki.apidesign.org/wiki/JAR" class="mw-redirect" title="JAR">JAR</a> files and obtain their <a href="http://wiki.apidesign.org/wiki/Bck2BrwsrBlobURLs" title="Bck2BrwsrBlobURLs">browser valid URL</a>.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 01:19, 30 October 2014 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Impossible Impossible. Part I. 2014-10-20T14:25:00Z
<p>Explaining that something is <a href="http://wiki.apidesign.org/wiki/Impossible" title="Impossible">impossible</a> is, well <a href="http://wiki.apidesign.org/wiki/Impossible" title="Impossible">impossible</a>! Here is a link to one viral video and one story from my computer science student years, which is so true, I would almost cry. In case you find my <a href="http://wiki.apidesign.org/wiki/Impossible" title="Impossible">impossible</a> story interesting, let me know. I have at least two more on the same <i><a href="http://wiki.apidesign.org/wiki/Impossible" title="Impossible">impossible</a> topic</i>!
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 14:25, 20 October 2014 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Bck2Brwsr_0.10 Lambdas Go Bck2Brwsr! 2014-09-15T17:48:00Z
<p><a href="http://wiki.apidesign.org/wiki/Bck2Brwsr_0.10" title="Bck2Brwsr 0.10">Bck2Brwsr 0.10</a> has just been released. The most important thing to note is that it handles JDK8's <a href="http://wiki.apidesign.org/wiki/Closures" title="Closures">lambdas</a>. See the illustrative video:
</p>
<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/ATp7WgUCIbU"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/ATp7WgUCIbU" type="application/x-shockwave-flash" wmode="transparent" allowfullscreen="true" width="425" height="350"></embed></object>
<p>The <a href="http://wiki.apidesign.org/wiki/JDK" title="JDK">JDK</a> emulation library is still based on <a href="http://wiki.apidesign.org/wiki/JDK" title="JDK">JDK</a>7, so don't expect your streams & co. code to run. I'll update to <a href="http://wiki.apidesign.org/wiki/JDK" title="JDK">JDK</a>8 after <a href="http://wiki.apidesign.org/wiki/JavaOne2014" title="JavaOne2014">JavaOne2014</a>. Meanwhile enjoy <a href="http://wiki.apidesign.org/wiki/Closures" title="Closures">lambdas</a> in your own <a href="http://wiki.apidesign.org/wiki/API" class="mw-redirect" title="API">APIs</a>!
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 17:48, 15 September 2014 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/DukeScriptInNetBeans Use NetBeans to Deploy Everywhere! 2014-06-18T11:09:00Z
<p><a href="http://wiki.apidesign.org/wiki/DukeScriptInNetBeans" title="DukeScriptInNetBeans">Client Java everywhere</a> is now possible thanks to essential part of <a href="http://wiki.apidesign.org/wiki/DukeScript" title="DukeScript">DukeScript</a> - its capability to deploy to almost any device on the planet (that can render <a href="http://wiki.apidesign.org/wiki/HTML" title="HTML">HTML</a>). One can configure everything in an <a href="https://dukescript.com/update/2015/02/05/New-Version-of-Dukescript.html" class="external text" title="https://dukescript.com/update/2015/02/05/New-Version-of-Dukescript.html" rel="nofollow">IDE independent way</a>, but the best way to start is to get your instance of <a href="http://wiki.apidesign.org/wiki/NetBeans" title="NetBeans">NetBeans</a> 8.0 and follow few easy steps described in the official <a href="http://wiki.apidesign.org/wiki/DukeScript" title="DukeScript">DukeScript</a> <a href="https://dukescript.com/getting_started.html" class="external text" title="https://dukescript.com/getting_started.html" rel="nofollow">getting started document</a>.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 11:09, 18 June 2014 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/IBrwsr MineSweeper on iOS 2014-05-21T14:13:00Z
<p>Thanks to <a href="http://wiki.apidesign.org/wiki/IBrwsr" title="IBrwsr">IBrwsr</a> I managed to run my favorite game on my iPad! Why don't you write applications that run on every device, yet?
</p><p><a href="http://wiki.apidesign.org/wiki/Image:MineSweeper-iOS.png" class="image" title="Image:MineSweeper-iOS.png"><img alt="Image:MineSweeper-iOS.png" src="http://wiki.apidesign.org/images/3/3b/MineSweeper-iOS.png" width="640" height="557" border="0" /></a>
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 14:13, 21 May 2014 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/TeaVM TeaVM Can Execute DukeScript Applications! 2014-03-20T14:27:00Z
<p>Alexey just released his first version of <a href="http://wiki.apidesign.org/wiki/TeaVM" title="TeaVM">TeaVM</a>. Congratulation!
</p><p>Well, everyone now writes virtual machines that run in a browser, but <a href="http://wiki.apidesign.org/wiki/TeaVM" title="TeaVM">TeaVM</a> is special - rather than separating and playing on its own sand field - Alexey decided to speak <a href="http://wiki.apidesign.org/wiki/DukeScript" title="DukeScript">DukeScript</a>. As a result, the same application can now be deployed to <a href="http://wiki.apidesign.org/wiki/Bck2Brwsr" title="Bck2Brwsr">Bck2Brwsr</a> and <a href="http://wiki.apidesign.org/wiki/TeaVM" title="TeaVM">TeaVM</a> and we can compare which virtual machine is better - or at least play <a href="http://xelfi.cz/minesweeper/teavm/" class="external text" title="http://xelfi.cz/minesweeper/teavm/" rel="nofollow">minesweeper 1</a> and <a href="http://xelfi.cz/minesweeper/bck2brwsr/" class="external text" title="http://xelfi.cz/minesweeper/bck2brwsr/" rel="nofollow">minesweeper 2</a>.
</p><p>Enjoy and give <a href="http://wiki.apidesign.org/wiki/DukeScript" title="DukeScript">DukeScript</a> (the JavaScript, the way it was meant to be) a try!
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 14:27, 20 March 2014 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Errata_11 Avoid Synchronization Problems 2014-02-14T16:24:00Z
<p>Don't let your objects escape from your methods! As suggested on <a href="http://wiki.apidesign.org/wiki/Errata_11" title="Errata 11">page 193</a>.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 16:24, 14 February 2014 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Knockout4Java Changes: HTML for Java, videos and hosting 2014-01-14T08:24:00Z
<p>I'd like to announce few changes related to apidesign.org site.
</p><p>First of all, the <a href="http://wiki.apidesign.org/wiki/Knockout4Java" title="Knockout4Java">Knockout4Java</a> is now a <a href="http://wiki.apidesign.org/index.php?title=HTML4Java&action=edit" class="new" title="HTML4Java">NetBeans subproject</a> and yesterday I managed to release its first bits as a stable version 0.7 - follow <a href="http://wiki.apidesign.org/wiki/Knockout4Java" title="Knockout4Java">three simple steps</a> to see how powerful <a href="http://wiki.apidesign.org/wiki/Java" class="mw-redirect" title="Java">Java</a>/<a href="http://wiki.apidesign.org/wiki/HTML" title="HTML">HTML</a> user interface can be.
</p><p>The other change is that I am migrating the whole website to new hosting infrastructure. <a href="http://wiki.apidesign.org/wiki/Sources" title="Sources">Sources</a> are up, <a href="http://wiki.apidesign.org/wiki/Main_Page" title="Main Page">mediawiki</a> as well. However I still need to recover mailing lists, etc. If you find something that is not working and should, please <a href="http://wiki.apidesign.org/wiki/Talkback" title="Talkback">Talkback</a>. Thanks in advance.
</p><p>One thing you don't have to complain is lack of <a href="http://wiki.apidesign.org/wiki/Category:Video" title="Category:Video">videos</a> - this is what one gets when using a <i>cloud</i> service! My uploaded screencasts had been found inappropriate and were deleted - after four years of being OK! Should I upload the backup copies (that I can find) elsewhere or rather host it myself?
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 08:24, 14 January 2014 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Serialization Can Deserialization Change Value of a Final Field? 2013-09-23T16:58:00Z
<p>De<a href="http://wiki.apidesign.org/wiki/Serialization" title="Serialization">serialization</a> can change value of a <b>final</b> field. See the <a href="http://wiki.apidesign.org/wiki/Serialization" title="Serialization">code snippet</a> to understand how. 1st lesson learned at <a href="http://wiki.apidesign.org/wiki/JavaOne2013" title="JavaOne2013">JavaOne2013</a>.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 16:58, 23 September 2013 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Equals The Art of Writing Equals in Object Oriented Languages 2013-09-06T08:53:00Z
<p>Do you think you know how to write <a href="http://wiki.apidesign.org/wiki/Equals" title="Equals">equals</a>? Are you sure? Take your time. Still sure? Check <a href="http://wiki.apidesign.org/wiki/Equals" title="Equals">this example</a> to verify.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 08:53, 6 September 2013 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/JSON4Jersey Bck2Brwsr Goes Server Side: Run the Same Code on Server and Client! 2013-05-20T12:45:00Z
<p>I'd like to introduce my <a href="http://wiki.apidesign.org/wiki/JSON4Jersey" title="JSON4Jersey">small contribution</a> to Jersey project. It provides (yet another, but this time very lightweight) converter from <a href="http://wiki.apidesign.org/wiki/Java" class="mw-redirect" title="Java">Java</a> to <a href="http://wiki.apidesign.org/wiki/JSON" title="JSON">JSON</a> and back. Together with <a href="http://wiki.apidesign.org/wiki/Bck2Brwsr" title="Bck2Brwsr">Bck2Brwsr</a> or <a href="http://wiki.apidesign.org/wiki/FXBrwsr" title="FXBrwsr">FXBrwsr</a> you can now smoothly execute the same <a href="http://wiki.apidesign.org/wiki/Java" class="mw-redirect" title="Java">Java</a> code on client as well as on your server.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 12:45, 20 May 2013 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Knockout4Java Introducing Knockout4Java 2013-05-16T21:32:00Z
<p><a href="http://wiki.apidesign.org/wiki/Knockout4Java" title="Knockout4Java">Knockout4Java</a> takes the best of two words: The type safety of <a href="http://wiki.apidesign.org/wiki/Java" class="mw-redirect" title="Java">Java</a> and <a href="http://wiki.apidesign.org/wiki/Knockout.js" title="Knockout.js">Knockout.js</a> ability to alter any <a href="http://wiki.apidesign.org/wiki/HTML" title="HTML">HTML</a> page in any browser. Write your models in <a href="http://wiki.apidesign.org/wiki/Java" class="mw-redirect" title="Java">Java</a> (using <a href="http://wiki.apidesign.org/wiki/JSON4Brwsr" title="JSON4Brwsr">JSON4Brwsr</a> library) and render them as <a href="http://wiki.apidesign.org/wiki/HTML" title="HTML">HTML</a> with the help of <a href="http://wiki.apidesign.org/wiki/Knockout4Java" title="Knockout4Java">Knockout4Java</a>!
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 21:32, 16 May 2013 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/FXBrwsr Introducing FXBrwsr 2013-04-30T09:25:00Z
<p><a href="http://wiki.apidesign.org/wiki/FXBrwsr" title="FXBrwsr">FXBrwsr</a> is an attempt to give people the rendering power of <a href="http://wiki.apidesign.org/wiki/HTML" title="HTML">HTML</a> (via <a href="http://wiki.apidesign.org/wiki/Knockout.js" title="Knockout.js">Knockout.js</a>) and the benefits of <a href="http://wiki.apidesign.org/wiki/HotSpot" title="HotSpot">HotSpot</a> <a href="http://wiki.apidesign.org/wiki/Java" class="mw-redirect" title="Java">Java</a> <a href="http://wiki.apidesign.org/wiki/VM" class="mw-redirect" title="VM">VM</a>. As the <a href="http://wiki.apidesign.org/wiki/Twitter" title="Twitter">Twitter</a> example shows, it is then easy to deploy the application to run <a href="http://wiki.apidesign.org/wiki/Bck2Brwsr" title="Bck2Brwsr">Bck2Brwsr</a>.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 09:25, 30 April 2013 (UTC)
</p><p><br />
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/Bck2BrwsrJavadoc Javadoc for Coding for Your Browser Published! 2013-03-01T09:11:00Z
<p>I've just set a job up to generate <a href="http://wiki.apidesign.org/wiki/Bck2BrwsrJavadoc" title="Bck2BrwsrJavadoc">Bck2BrwsrJavadoc</a>. Anyone wants to design a library for the browser?
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 09:11, 1 March 2013 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/C%2B%2B C++ May Not Be As Bad As Thought! 2012-09-27T07:40:00Z
<p>Do you remember my recent post about object oriented encapsulation and performance? It was written in a response to an article that claimed C is much better than <a href="http://wiki.apidesign.org/wiki/C%2B%2B" title="C++">C++</a>. There in given example nicely illustrates that by giving up on encapsulation one can implement more effective linked list. In my <a href="http://wiki.apidesign.org/wiki/Trait" title="Trait">recent post</a> I managed to prove that by using <a href="http://wiki.apidesign.org/wiki/Trait" title="Trait">traits</a>, one can easily get the same performance while keeping encapsulation in modern object oriented language. Only one question remained: Can one do the same with <a href="http://wiki.apidesign.org/wiki/C%2B%2B" title="C++">C++</a> templates?
</p><p>I am glad to report we have an <a href="http://wiki.apidesign.org/wiki/C%2B%2B" title="C++">answer</a> with a <a href="http://wiki.apidesign.org/wiki/C%2B%2B" title="C++">sample code</a>. There is a way to write generic <b>template</b> (well two of them) and orchestrate them in a way that keeps encapsulation and maintains the C linked list performance. <a href="http://wiki.apidesign.org/wiki/C%2B%2B" title="C++">C++</a> is not as bad as I thought.
</p><p>Last note related to this incident (influenced by <a href="http://wiki.apidesign.org/wiki/Thinking%2C_Fast_and_Slow" title="Thinking, Fast and Slow">book</a> I am currently reading). There are tons of comments attached to the original <a href="http://www.250bpm.com/blog:8" class="external text" title="http://www.250bpm.com/blog:8" rel="nofollow">article</a> yet most of them are really shallow. Usually along the line of <i>that is a non-sense!</i>, <i>use STL!</i> or <i>C rules, I knew it!</i>. I guess this has something to do with <a href="http://wiki.apidesign.org/wiki/Thinking%2C_Fast_and_Slow" title="Thinking, Fast and Slow">Thinking, Fast and Slow</a>: people were provoked to react instantly by seeing a topic they had already have an opinion about. Without really giving the issue a though, they replied using <a href="http://wiki.apidesign.org/wiki/Thinking%2C_Fast_and_Slow" title="Thinking, Fast and Slow">fast thinking</a>.
</p><p>It took me a weekend to come up with the <a href="http://wiki.apidesign.org/wiki/Trait" title="Trait">trait</a> solution and we needed about a week to polish the <a href="http://wiki.apidesign.org/wiki/C%2B%2B" title="C++">C++ sample code</a>. Looks like a little bit of <a href="http://wiki.apidesign.org/wiki/Thinking%2C_Fast_and_Slow" title="Thinking, Fast and Slow">slowness</a> can worth tons of fast made opinions. But that is for another story - first of all I need to finish reading <a href="http://wiki.apidesign.org/wiki/Thinking%2C_Fast_and_Slow" title="Thinking, Fast and Slow">Thinking, Fast and Slow</a> book.
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 07:40, 27 September 2012 (UTC)
</p>
JaroslavTulachhttp://wiki.apidesign.org/wiki/OlderBlogPosts Older Blog Posts 2012-09-27T07:00:00Z
<p><a href="http://wiki.apidesign.org/wiki/OlderBlogPosts" title="OlderBlogPosts">OlderBlogPosts</a>...
</p><p>--<a href="http://wiki.apidesign.org/wiki/User:JaroslavTulach" title="User:JaroslavTulach">JaroslavTulach</a> 07:00, 27 September 2012 (UTC)
</p><p>JaroslavTulach