I would like to prepose for Summer of Code

161 views
Skip to first unread message

corbinu

unread,
Apr 17, 2013, 4:25:20 AM4/17/13
to ceylo...@googlegroups.com

Hello,

 I am a 4th year Software Engineering student at MichiganTech and you may have seen me on the mailing list. I am very interesting in participating in the Google summer of code for Ceylon.

My credentials can be found here:

www.linkedin.com/pub/corbin-uselton/36/985/55a

http://careers.stackoverflow.com/corbinu

I primarily work on web dev and human computer interfaces so am looking for input and suggestions in regards to what I should work on.

In regards to the already proposed projects, the one that fits me best is “Improve Herd.” I have experience in HTML5, CSS3, Javascript, Java and REST. I could also transition from Play! 2 and MySQL to Play! 1 and PostgreSQL.

 Ideas of my own are:

1.  Improve Ceylon’s ability to run on Node.js IE:

A.  Add “assert” command to dynamic blocks

B. Port Express into Ceylon (and fix anything in Ceylon needed to make this work) as a working example of a Ceylon app on node

C. Create a grunt script for building and packaging a Ceylon project that compiles to JS as an NPM package

2. Create basic Ceylon bindings for JavaFX for something not as entailed as ScalaFX but working in that direction

I am also curious about the expected number of hours per week as the Google Summer of Code does not state this.

Stephane Epardaud

unread,
Apr 17, 2013, 4:31:21 AM4/17/13
to ceylon-dev
Excellent!

I'll let Enrique and Gavin reply on the JS propositions. JavaFX bindings are indeed an interesting project too. As for the number of hours per week, from what I understand this is a full-time internship, so students are expected to spend as much time as they would if they were physically located in an office for an internship, somewhere between 35-40h per week in most countries. The number of hours is not as important as the delivery of something complete, naturally, but there are checkpoints that we need to respect to check progress so we can't really take a month off and put double hours the next month ;)


--
You received this message because you are subscribed to the Google Groups "ceylon-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ceylon-dev+...@googlegroups.com.
To post to this group, send email to ceylo...@googlegroups.com.
Visit this group at http://groups.google.com/group/ceylon-dev?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Stéphane Épardaud

corbinu

unread,
Apr 17, 2013, 5:50:29 AM4/17/13
to ceylo...@googlegroups.com
Thanks that is exactly what I expected. Another quick thought on something I could do for JS interop is write a script to convert the many Typescript Declaration files into Ceylon nativejs interface declarations

Like those here:

Stephane Epardaud

unread,
Apr 17, 2013, 5:59:56 AM4/17/13
to ceylon-dev
I didn't know of this project, it's pretty impressive, and yes I suspect it would help JS interop if we could reuse that.

corbinu

unread,
Apr 21, 2013, 2:17:46 PM4/21/13
to ceylo...@googlegroups.com
Summer of code proposals begin tomorrow last chance for any one to get suggestions on what I should prepose to work on. I welcome any suggestions!

Stéphane Épardaud

unread,
Apr 21, 2013, 2:40:20 PM4/21/13
to ceylon-dev
Enrique and gavin please answer...

Sent from my phone
--

Enrique

unread,
Apr 22, 2013, 11:20:17 PM4/22/13
to ceylo...@googlegroups.com
Sorry for the delay, been having a lousy week and it's only going to get worse.

The JavaFX stuff sounds cool. As for the JS proposal, I don't really think being able to run Ceylon in node.js is a priority (I mean beyond the ability it has now); node is primarily a server-side framework and I believe the JVM is better suited to run Ceylon on the server side – the primary target of Ceylon JS is the browser. So in any case it might be more useful to work on a wizard on the IDE (or some project template, I believe there was going to be some templates but I don't know what the progress on that is) to have a simple HTML page with some JS that loads a Ceylon JS module so that its exported types/methods can be used on the page.

However the NPM thing could be really useful for interop with node; some refactoring of the compiler might be needed, if the format is different from CommonJS, or maybe this is something else that needs to be done with the CommonJS module, I don't know.

I don't know if the Express port might cause more problems than it solves, given that "fixing anything in Ceylon need to make it work" could mean breaking a lot of stuff that works for the general case, only to make it work for a special case. And perhaps the same goes for the "assert" in dynamic blocks, and really for anything that is specific to node.js regarding the generated js code. Packaging to NPM is useful and should be doable without having to modify the generated code.
Message has been deleted

corbinu

unread,
Apr 23, 2013, 12:56:40 AM4/23/13
to ceylo...@googlegroups.com

@Enrique thanks for your response sorry to hear your week is not going well and hope it gets better. 

 

Another vote for FX kinda expected everybody likes that.


Thanks for your input on the Node stuff this actually really helps me clarify my proposal. First off I am retitling that proposal “Improved JS-VM Support”


Secondly I agree that the current focus will defiantly provide a correct framework for current web apps on the JVM and the benefit of the added bonus of having the code be compatible into the browser. This is an excellent use case which has already seen success in GWT and do not wish to draw away from the importance of this at all. To this end I would like to add your idea of Ceylon in the browser examples as an additional possibility under Improved JS-VM Support.


Now the reason I would like to do an Express port is not specifically to get Express working in Ceylon. As you rightly point out application use cases for existing JVM servers would be much better suited to staying on the JVM. My focus is on the new use cases that the JS-VM presents for Ceylon beyond what traditional Java can do. I really feel the reason JS-VM is becoming so important because it complements the JVM so well. A few examples where Ceylon might be better suited for the JS-VM: 


Mobile App 

The JVM can not be used on iOS, Firefox OS and Windows Phone. Ceylon codealso can not be run on Android as its JVM is Java 6 compatible only. How ever a PhoneGap or Appcelerator Titanium could easily be written in Ceylon compiled to JS


Embedded Devices

Where there is limited storage and memory the JS-VM can significantly better then the JVM for example when programming for a Rasberry Pi. On size alone Node clocks in at about 6MB once installed


Small Scale Servers

Although the JVM is a good solution for large scale web apps there are a significant about of developers (who currently mostly use PHP and Ruby) for whom the JVM is just to heavy. Ceylon could very much fill a need here as Node presents a new option for them, but JS is not very well suited to application architecture. To me this is the biggest opportunity for Ceylon on the JS-VM as web-developers and startups could build and deploy their web sites and mobile app backends in Ceylon on Node.js and then if they ever scale to the point where  the JVM becomes a better solution. They simply drop their code on Undertow inside JBoss. Make a few changes and they are off and running. A perfect example of this is Twitter got started really fast and well because of how easy it was for them to build and deploy their system in Ruby, but then years later they ran into huge scaling problems so they have rebuilt most of their system in Scala. Image if instead they were building it today they could have gotten the same ease of build and quick to market using Ceylon on Node.js and then when they ran into the scaling issues switched to Undertow & JBoss.


Now as for what I would be trying to achieve with an Express port. First off my reason for selecting Express for two reasons. The first was that the httpd module for Ceylon provides similar features so this could be just a very early starting point for the httpd module compiling to both Java and JS. The second was purely because Express is so common. 


“fixing anything in Ceylon need to make it work”

My point here was not to say make it work just for this case ... was more that this is a chance to take Ceylon “out for a test drive” on Node and the JS-VM. To see what kind of rough edges developers are going to run into and come up with best practices and best case language solutions sooner rather then later. A perfect example is how the lack of Lambdas in Java has lead to callback-functions being wrapped in inner classes. I’m sure there was a point long ago where somebody at Sun thought they were making the right call thinking Lambdas would add unnecessary complexity to the language. So what I mean by this is to bring the hard edges I find in porting a JS application into a Ceylon one so we can all ask “Is there something we can change in the Language or the workflow to address this?” and then have me implement said feature.


Sorry for how long this is you just really got me thinking which is good :)


Thanks!

Enrique

unread,
Apr 23, 2013, 8:48:34 PM4/23/13
to ceylo...@googlegroups.com
Ok... the Android and Raspberry aspects sound *really* cool! And I hadn't really thought about Node in the way you described it. Looking at it that way, the Express port sounds way more useful now.

corbinu

unread,
Apr 23, 2013, 9:26:04 PM4/23/13
to ceylo...@googlegroups.com
Glad to hear it :) and thank you so much for your comments you have really helped me better understand and clarify not just what I want to do but why for my proposal. It also is the number one reason I would like to participate in the program to with different experience and who challenge me :)

I am still happy to take input from anybody but as it stands at the moment I am writing two preposals

1. Improved Ceylon support for the JS-VM Ecosystem (That title might be a bit long?)

Possible sub-items:
  • Examples for Ceylon use in both the web-browser and on Node.js
  • Port a popular Node package (possibly Express) into Ceylon as an example
  • Script to convert TypeScript Declaration files into Ceylon Native JS annotations
  • Compatibility between Native JS annotations and Dynamic block (Possibility via asset inside dynamic or maybe a module level Native JS annotation)
  • Grunt scripts for packaging Ceylon module as a NPM package
  • Try to fix or develop best practices for any rough edges that are found trying to do all of this
2. CelyonFX module

Possible sub-items:
  • Declarative syntax

corbinu

unread,
May 1, 2013, 10:55:46 PM5/1/13
to ceylo...@googlegroups.com
I have posted my proposal for Improved Ceylon JS-VM Support. Please feel free to make comments there or there:

Enrique

unread,
May 2, 2013, 6:24:26 PM5/2/13
to ceylo...@googlegroups.com
Sounds great!

corbinu

unread,
May 27, 2013, 5:11:06 PM5/27/13
to ceylo...@googlegroups.com
I would like to thank everyone for their help in my proposal and am very much looking forward to working with you all :)

Enrique

unread,
Jun 6, 2013, 10:40:49 AM6/6/13
to ceylo...@googlegroups.com
so the project was accepted?

corbinu

unread,
Jun 6, 2013, 12:54:36 PM6/6/13
to ceylo...@googlegroups.com
Yes! :) I am just doing some planning and playing more with Ceylon at the moment. I am supposed to start working on the 17th. I have set up a Wordpress blog here: http://ceylonjsvm.wordpress.com for any one that wants to track/comment on the progress. 

Feel free to hit me up for any questions, comments or concerns you have. 

I belive you should have access to my email through the summer of code or there is a contact form on my website: www.openswimsoftware.com (sorry for the hassle just try not to openly publish my email online)

corbinu

unread,
Jun 16, 2013, 12:43:30 AM6/16/13
to ceylo...@googlegroups.com
So I am not really sure who I am supposed to be reporting to and how as it doesn't really say on the google or JBoss' summer of code pages ... could somebody drop me a line please ... there is a contact form on my website www.openswimsoftware.com

Stephane Epardaud

unread,
Jun 17, 2013, 6:29:45 AM6/17/13
to ceylon-dev
I have just replied privately.


On 16 June 2013 06:43, corbinu <cor...@openswimsoftware.com> wrote:
So I am not really sure who I am supposed to be reporting to and how as it doesn't really say on the google or JBoss' summer of code pages ... could somebody drop me a line please ... there is a contact form on my website www.openswimsoftware.com

--
You received this message because you are subscribed to the Google Groups "ceylon-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ceylon-dev+...@googlegroups.com.
To post to this group, send email to ceylo...@googlegroups.com.

For more options, visit https://groups.google.com/groups/opt_out.
 
 



--
Stéphane Épardaud

Gavin King

unread,
Jun 17, 2013, 6:29:55 AM6/17/13
to ceylo...@googlegroups.com

corbinu

unread,
Jun 21, 2013, 1:50:08 AM6/21/13
to ceylo...@googlegroups.com
My first post and bit of work... It isn't much but wanted to show all the places Ceylon could go on JavaScript and how well that can compliment the places the JVM is normally used

The next project will be a very detailed browser example I am thinking a jQuery photo gallery
Reply all
Reply to author
Forward
0 new messages