4 Head-2-Head #10
4 Head-2-Head #10 | Have a listen to 4 new releases, featuring Junior Reid, Steel Pulse, Bounty Killer & Promise No Promises. Enjoy! #JuniorReid #SteelPulse #BountyKiller #promiseNoPromises #JRebel Read the full article

seen from United States

seen from Switzerland
seen from Switzerland

seen from Switzerland

seen from Switzerland

seen from Australia

seen from Switzerland
seen from Australia
seen from China
seen from United States

seen from Switzerland
seen from Japan
seen from United States
seen from Nigeria
seen from United States
seen from United States
seen from Morocco
seen from United States

seen from United States
seen from China
4 Head-2-Head #10
4 Head-2-Head #10 | Have a listen to 4 new releases, featuring Junior Reid, Steel Pulse, Bounty Killer & Promise No Promises. Enjoy! #JuniorReid #SteelPulse #BountyKiller #promiseNoPromises #JRebel Read the full article
Live code reloading, hotswap, hotloading
Question: in learning Lua, is it possible to keep the program running and inject changes into it in some live manner? Having to cycle through edit-stop-reload seems a bit inefficient.
Short answer: Maybe. It seems as though this really needs to be factored into at least two distinct units: live reloading assets; hotswapping code. The former is what we see in the HandmadeHero example videos below. The latter is a much more difficult proposition and may only be available in a subset of languages as it depends on the capabilities of the virtual machine running the bytecode. DZone explain that Java Hotswap is an oldish, limited technology that only allows changing details of objects, but that JRebel allows adding methods and fields via class reloading (There is a 5 part series on it starting here.
Handmade Hero videos. User-defined access to shared memory regions
At around 7m30s the Handmade Hero podcast looks at a way to implement hot or dynamic reloading. He dismisses Visual Studio approach named Edit and Continue as fragile except for trivial cases.
https://www.youtube.com/watch?v=WMSBRk5WG58
Here at 4m40s he shows the basics of being able to load the static memory map into a recompiled version of the game. This session is dedicated to trying to run the debugger:
https://www.youtube.com/watch?v=oijEnriqqcs
This blog extends on the HH findings http://chrismdp.com/2015/08/how-to-add-live-code-reload-to-your-game/
Lua: Löve2D, user-defined main class reloads versus IDE ZeroBrane
This shows how to achieve the same effect in the Lua-based game engine Love2D: https://love2d.org/forums/viewtopic.php?f=4&t=79784
This seems to be an abortive attempt with the love2d lua framework, it certainly fails for me even after I remove the triple dot at the chunk as noted in comments: https://love2d.org/forums/viewtopic.php?f=4&t=79784 Other people seem to be calling it HotReload https://love2d.org/forums/viewtopic.php?f=3&t=84815 There seems to be an editor/IDE from zerobrane that supports livecoding.
Eclipse with JRebel hotswap demoed by Notch (Minecraft)
This is a video of Notch of Minecraft fame using the ‘HotSwap’ functionality of the Java JVM 1.4.2, which continuously updates the running code when it detects that a class has changed.
Java: Hotswap Agent
The blurb here suggests that this is exactly what would be useful: The main purpose of this project is to avoid infamous change->restart + wait->check development lifecycle. Save&Reload during development should be standard and many other languages (including C#) contain this feature.
This dzone article about HotSwap and the JRebel variant explains how bytecode of a class can be updated without having to reload all of a class.
Lua bytecode
This Dirk Laurie writeup on Lue bytecode and VM seems like a useful starting point.
These days, Java language has boosted the programmers not only to invent something new in this language, but also to seal greater opportunities for the Java developers. The world is going crazy and so do the people around you.
JRebel productivity tool platform is officially integrated with several solutions delivered from cloud infrastructure companies, like AWS to boost development and testing for java developers. The platform resolves common redeployment delays that affect development and consume lots of hours of developers.
Get Jet pack for Mifso X development !^!
Yes, you read it right, you can get a set of Jet pack for Mifos X development. If you are looking for zero turnaround time (practically <10secs) to see the your code changes propagating to running application (without rebuilding app and restarting the app server)
jRebel is the ultimate solution!
I will be brief about how to set up jRebel for Mifos X dev environment, if you are using Eclipse as IDE.
I assume, you are familiar with Mifos X development and already have MIfos X dev env setup in Eclipse. (I use STS, is wrapper on Eclipse, for this setup context it as good as Eclipse)
STEP 1: Install jRebel plugin into IDE
To install JRebel for Eclipse, access Help > Eclipse Marketplace…. When opening it for the first time, you may need to pick a solution catalog. Select Eclipse Marketplace and search for JRebel. Click Install once found.
STEP 2 :Activation
After restarting Eclipse you most likely won’t have a license yet. The plugin will notify you about this sad fact. This happens via a popup notification:
Click the link in this popup. The JRebel activation window will immediately open. You can also open it from Help > JRebel Activation.
This window contains the following:
If you don’t have a JRebel license yet - click the link to open a web browser and apply for a totally free evaluation license.
If you have a license and want to register it - if you are awesome and already own a JRebel license then here is where you can apply it. There are three options to do this:
Paste license code from the clipboard - once you register for a free evaluation license, you will receive a license code via email and in the web browser. Paste this code here to activate it!
Choose license file from the disk - provided you bought a full license, you received the jrebel.lic file via email. Save this file in a location of your choice on your workstation and refer to it from here. Press Browse... to locate the file.
Specify License Server address - use this option if you get your JRebel license from a central license server. You will get this address from your administrator. You can enable or disable the option to use the proxy settings stored in your IDE - if your workstation setup requires this.
Press Apply or OK to store your chosen license information. Alternatively, press Cancel to dismiss the activation window.
Congratulations, you now have a fully functional JRebel installed!
STEP 3 :Project configuration
JRebel requires just one configuration file: rebel.xml. This is used by JRebel to map the running application to the workspace. The good news here is that the IDE plugin can automate the configuration for you. In fact, rebel.xml is generated automatically once you enable JRebel nature for the project.
It will generates rebel.xml at ~\mifosng-provider\src\main\resources\rebel.xml
And content of the file look similar to below xml
<classpath> <dir name="F:/clients/mifos/mifosx/mifosng-provider/bin"> </dir> </classpath>
dir tag refers to the directory in that IDE compiles the java class, Rebel needs to know when any code is changed, from where it needs to pick the recompiled files :)
STEP 4 :Automatic build
JRebel does not compile Java code on its own. It relies on the compilation results from the Java compiler. For a smooth user experience with the tool it is recommended to enable the automatic build feature, also known as compile-on-save.
You can enable this option from the Project menu, by clicking Build Automatically menu item.
STEP 5 : Server configuration
Rebel need to where your application is running, since Mifos setup uses gradle task for building, deploying and starting the server. As we are not using standalone server to deploy and and run the server, In this case it is better run Rebel as javaagent.
To run jRebel as javaagent, download the current stable jRebel from here and extract the zip and locate the jrebel.jar, And then open the gradlew (~\mifosng-provider\gradlew) file in edit mode and add -javaagent:[location of jRebel extracted]/jrebel/jrebel.jar -noverify to JAVA_OPTS
Example configuration: JAVA_OPTS="-Xms512m -Xmx512m -XX:PermSize=256m -XX:MaxPermSize=512m -javaagent:F:/utilities/jrebel/jrebel.jar -noverify" Save the file and restart the server with gradle command (i.e., gradlew clean tomcatRunWar)
STEP 6 : Confirm jRebel configuration is successful
When server is booting, first you will see jRebel logs (similar to below one)
Yep, jRebel agent is started! Once server is started do some simple code change and wait for IDE to recompile that class and verify those changes are reflected on the running application (you may try as simple as logging "Welcome to Jetpack development with jRebel" message :)
Be sensible to jRebel, do not expect big bang changes will be reloaded without issue.
Think of below examples:
Example 1: If you modify the constructor, then do not expect jRebel will re-initialize the objects which present in JVM with new constructor, but newly initialized object will be from modified construct :)
Example 2: If add new attributes to a class, jRebel injects the that attribute to old objects also nut do not expect value for that attribute it will be just NULL.
So jRebel for sure gives you Jetpack to do faster development.
JRebel is a JVM-plugin that makes it possible for Java developers to instantly see any code change made to an app without redeploying.
위 링크 타고 들어가면 이클립션 프로모션으로 jRebel 라이센스 키 발급해준다.
이클립스에서 플러그인 설치하고 라이센스 키 입력하면 인증 완료!!!
Top 5 New Features for November
This month’s release is a big one for Codenvy! We are revealing new features and partnerships, all designed to make developers and their teams more productive. Here are the top 5 announcements for November. 1. New - Smart - Project Creation Wizard This new layout gives you a single view of the configurable technologies and PaaS within Exo IDE. We have implemented logic within the wizard that maps the right technology to the right PaaS. Each PaaS supports different frameworks and APIs, and we filter out options to make your selection less error prone. 2. Save Minutes On Every Deploy: JRebel Integration! We inked a partnership with ZeroTurnaround to integrate JRebel into our debugging run time JRebel is a JVM plug-in that makes it possible to see Java code changes instantly within a running application without re-deploying your artifacts. The time savings are significant for each compile-deploy-debug cycle, and now we’ve passed along those savings to you! If you’ve picked a Java project at the first step of the wizard, you’ll notice the JRebel checkbox at the bottom of the template selection box. When the plug-in is active, we add an “Update Application” menu item to the run menu. Selecting this option will use the JRebel technique for deployment. Within our own labs we are seeing the deployment times reduced by nearly a minute per deployment on some applications. Find out more about the integration and Exo IDE’s architecture in our guest blog post on ZeroTurnaround's blog. 3. More PaaS: AppFog Integration Another month and another PaaS! AppFog adds a layer of flexibility on top of Cloud Foundry, allowing you to choose which Infrastructure provider you want to deploy to. We have added Ruby and Java support for AppFog. You can also easily deploy to AppFog's private cloud PaaS by changing the deployment target URL. 4. Fixed-Width Font We got a number of emails from users asking us to improve the readability & controls of fonts within the editor. We’ve listened to your feedback and have started answering your calls by including Adobe’s fixed-width font within this release. The Adobe font has a number of improvements that make reading letters and numbers that look similar easier. We are hoping that this tweak helps us get rid of our glasses one day. 5. Team Development: JAR Publishing With teams of any size, building modules that have a dependency relationship is a fundamental part of the process. Our own R&D team - which now uses Exo IDE to build Exo IDE - added this little nugget to facilitate faster development. First, they’ve added a Java JAR project type. JARs are standard library formats for Java. Second, developers can publish publish these libraries in a public maven repository that is accessible by other team members. Finally, other projects can reference these shared JARs within their maven project. Tell Us What You Need We need more of your feedback! We’re collecting feature requests on our new feedback page so please take a moment to contribute. You can also drop us an email at [email protected]. Have fun coding in the cloud! Mark Downey Product Manager at Codenvy
I think of Scala as a swimming pool; there is a deep end and a shallow end, it seems that many people who haven’t learned to swim yet jump straight into the deep end. Inevitably, after splashing about for a while are surprised to find that their legs don’t quite reach the floor, or that they sank to the bottom and are startled by not being able to breathe under water.
This is a decent metaphor.
Avoid the SBT
What? No. That is not avoiding the deep end, it is avoiding the pool. Almost every Scala open-source project worth using is built with sbt. If you refuse to use sbt, you can not contribute fixes, enhancements, or tests to any of them.
For example, to make my project a web project, I first had to add a plug-in dependency like this in plugins.sbt ...
Listen, it's not 1997. There are ways to write web applications that don't require a servlet container. But if you wish to use a servlet container, you could start with a template project. That's what we make them for.
This made me puke a little bit in my mouth...
"Meh."
4 . Avoid libraries that overuse “operator overloading”
This is going to be fun.
But sometimes you may have no good choice of a library that doesn’t overuse symbols. Although I wrote a HTTP client wrapper for Scala that is mostly symbol-free (except for / and ? for constructing URLs)
For a second I thought there was a principle here.
it was mainly for my own use and I haven’t maintained it properly.
There's the rub.
On the other hand, Databinder Dispatch, which does use symbols a bit much (as seen from the periodic table above), is quite well maintained.
They said the same thing about chemistry.
~~~
I don't actually care about the linked post very much one way or the other. It is a regrettable attempt to attract attention by courting controversy, without offering new information. My hopes were high with the pool metaphor, but then the swimming advice was something like "wear a helmet".
If I have a warning to Scala beginners, it's to use libraries that are reliably cross-published if they ever plan on upgrading the library or the language. (Cross-publishing is a key feature of sbt, so you know.) With libraries that are only published for one version of Scala, you may have to upgrade your Scala version to get fixes or features in the library, or upgrade the library to get fixes or features in Scala. That would be acceptable if upgrades never introduced bugs of their own.
And if people want to pontificate about Dispatch, they could at least be up to date. I went to some trouble to write about the future of the library in this three-part series { 1, 2, 3 } and practically nobody read it. Why? There was no bullshit controversy.
Since nobody uses RSS or reads boring old "lots of words" posts on tumblr, the only remaining distribution mechanism is to write something silly and hope everybody links to you from their personal shouty stumps. This is most effective if popular convictions are uplifted or ridiculed, and you simply can not go wrong by declaring that a particular departure from convention goes too far or not far enough. The only thing you will fail to do, with such empty debate, is change minds.
Now. If your hunger for polemic is sated and you have a more than superficial interest in Scala library design, allow me to refer you to a series I once composed on the subject...