Closed StefanKarpinski closed 5 years ago
The webpage is quite good already IMHO. It could be nice to highlight a few killer packages. Also add a visible link to Github, and show dynamic stats about the ongoing activity, e.g. the number of committers to date, the number of packages - I'm sure Github allows that easily. You could also create People page where you would list people using or supporting Julia with their affiliations, programs they are known for, and language experience.
Overall the top level page could do with fewer words. It’s hard to go wrong with more pretty pictures with clickthrough links to explanatory pages.
The main point I got out of the discussion was to highlight more sociodynamic aspects of the Julia community. Some random ideas:
I had no idea about all those meetups.
+1 to everything @jiahao says. All of those things will invite a viewer to engage more with the site, and finally download julia. We own the JuliaLanguage twitter account. I would love to have something dynamic if possible, where the latest package updates are shown, latest tweets, latest blog posts are shown, etc.
I am not sure if we will end up over-designing this second version, but there is only one way to find out.
@alanedelman suggests keeping track of dates so that we have a sense of historical progression also.
Also, do we have some form of web counter or tracker? It would be very easy to insert a Google Analytics counter.
We have GA setup already. Viral can give you access (or I can later).
By the way, who has the @JuliaLanguage twitter account?
Pretty sure @ViralBShah has it.
Yup I do have that Twitter handle. Can send the password to others. We should probably start tweeting through it.
I'll take a login cred. It would be almost no effort to RT stuff from @juliacajun
Hi everyone! I've tried to update the Julia page a little bit. The Rust homepage has a clean index page, which I took as an example. I've made the following changes:
/
is rather brief, previous start page moved to /about
html, body { height: 100% }
, this caused always visible scrollbar<br/><br/>
hack at bottomlist-style-type
back to defaultYou can try the new page here: http://julialang.herokuapp.com
What do you think? :)
The text (copied from Wikipedia) and code example could definitely be improved. My ideas where:
Especially notice how the site now works on mobile:
Before:
After:
Nice work! A few comments:
We want a language that’s open source, with a liberal license. We want the speed of C with the dynamism of Ruby. We want a language that’s homoiconic, with true macros like Lisp, but with obvious, familiar mathematical notation like Matlab. We want something as usable for general programming as Python, as easy for statistics as R, as natural for string processing as Perl, as powerful for linear algebra as Matlab, as good at gluing programs together as the shell. Something that is dirt simple to learn, yet keeps the most serious hackers happy. We want it interactive and we want it compiled.
What I like:
What I don't like:
So on the whole a big improvement.
Also, just as an informational point, about 12% of visits to the Julia site come from mobile.
I'm glad you like it :) Thanks for the kind words!
I've just uploaded a new version with
1em
spacing between the "Features" and the "Example" columns14pt
to 13pt
)/about
now only has horizontal scollbars on mobile for the benchmark table/blog
is displayed correctly on mobile (no horizontol scrolling)As for external links: I would suggest the same thing what Wikipedia is doing: Display a small image after external links (can't copy the image somehow, because it's directly encoded as a SVG in Wikipedia's CSS).
Btw: My own jekyll setup supports highlighting Julia, but I'm not sure if Github's does. I will create a pull request to test this on the current page.
A small suggestion: use
after (or before) the pipe characters in the header links, so that they are consistently positioned in relation to the links to their right (or left) regardless of screen size.
Also, it might be a problem with my mobile browser (stock browser on an Android 2.3.5), but the logo isn't showing up at all (not even a "broken image" placeolder).
done! Good idea.
The reason the logo doesn't show up, is because Android's browser (before 3) doesn't support SVG images: http://caniuse.com/svg As Android 2 is slowly dying out, I would say don't fix this. You can install Firefox for Android btw, which should support SVG.
OT: I wish I could install Firefox, but my device has very little internal memory and is constantly complaining about that. Hopefully I'll get a better one sometime soon.
In any case, the fix isn't complicated. I came across this problem before, and after some experimenting, I managed to make it work in browsers that don't support svg by simply doing:
<object data='img/logo.svg'><img src='img/logo.png' alt='logo'></object>
and in the css, object { pointer-events: none; }
to make it clicable if it's wrapped in an <a>
.
Hi! Any news on this?
I'll have to take a look at this again. Last I checked, it seemed like I had a bunch of issues that were not addressed and it would be a lot of work (for me) to go through and try to separate out the changes that were ok and the ones that weren't.
I see. If it helps I can seperate the changes into multiple pull requests?
Yes, that's exactly the way to do this. One for styling changes, others for content changes.
Ping @shashi who has been thinking about a larger website revamp.
Okay I've splitted it up in 3 PRs so far. After they are merged the only thing left is the content change, which I guess is the one with issues left.
Thanks for these. I've merged them and made a few tweaks. On to the content!
I'm not sure what commit exactly changed the width of the text, but now the download page doesn't look great because in the first column of the arrays some entries do not fit on one line. Maybe increase the width a bit more?
@nalimilan I think this is because I was using em
for the max-width of the site ;) I've fixed it in #176.
Bump. Note that the parallel code
nheads = @parallel (+) for i=1:100000000
int(randbool())
end
now actually has two bugs in 0.5!
Fixed that bug - rather both.
Fixed that bug - rather both.
a387af7 for those wondering.
Bumping this. Whoever did your JuliaComputing design was really good. You should try to get them to redesign the Julia page as well!
We're planning on it. The content needs a lot of reorganization as well.
@shashi Can you post your redesign of the julialang front page content. We can do the design work separately, but I think shashi got off to a good start.
sure, it's at http://shashi.github.io/julialang.github.com/
you have to manually rewrite links for now (e.g. Learning is at http://shashi.github.io/julialang.github.com/learning/ and not http://shashi.github.io/learning/)
If someone offers content for the features section of the front page, I will put that in. Do mock up the layout you want to show it with, I can also put that in. All the internal pages basically look as they did before, but in better fonts and stylesheet. Just the new front page needs content.
We probably should do this for 1.0
Anyone volunteering to write content for the home page? I'd like to keep the click on feature -> short description + example layout.
I wonder if we should close this issue, and have a slack #website channel. I wonder if @ChrisRackauckas has some time to brainstorm this. While I think the prototype website has good content, it is not user focussed. It does not convince someone coming why they should use Julia. It may be better to showcase Julia packages front and center along with the language on the landing page, for example.
I think this is a difficult issue because the webpage has to stand somewhere in the battle of Julia's identity between a general-purpose programming language and a tool for technical computing. Right now it's an odd hybrid. For example, if you take a look at Rust's homepage:
https://www.rust-lang.org/en-US/
you can see how the top of ours has elements matching that: talk about the language and show some code. If you look at some technical computing tools
https://www.wolfram.com/mathematica/ https://www.mathworks.com/products/matlab.html
it's all about showing plots related to technical computing, which is what we do right after.
Which path we choose depends on the identity that we want Julia to have. However, I think we can choose the technical computing path, but instead make sure we explicitly highlight some examples of general-purpose computing.
One other thing to keep in mind is the sub-communities of "technical computing". There is somewhat of a split in there between scientific computing and data science. Scientific computing is focused on solving differential equations, optimization, and numerical linear algebra. Data science covers statistics, machine learning, and data visualization. These communities have a lot of interplay within Julia but that's quite unique. In reality, most of the time these groups are separated. Usually they are working at different jobs or are in different departments. Even when they are in the same field, they separate themselves by name and application (e.g. in biology you have mathematical biology vs bioinformatics).
The technical computing focus of Julia with many of its packages and features is amazing for both parties. However, I think that there has been quite a focus on showing off to the data science crowd. And I understand why: data science at around 2013 was booming in popularity and R/Python were taking most of that growth. It's a popular subject with industry pouring lots of money into it. But the scientific computing group is large in academia and national labs. They are in dire need of newer tools as evidenced by how popular Fortran is (with C++ growing) and how MPI is still the most popular HPC tool (this is the crowd that dominates HPC usage).
These two groups have separate but related focuses. Data science communities really care about machine learning frameworks, MCMC tooling, and data handling tooling like DataFrames + MYSQL databases. Scientific computing communities care about parallelization, solving PDEs, 3D plots, and preconditioned Krylov subspace methods for Ax=b
. They both care about reproducibility and visualization.
So above are the constraints. We need to straddle between general-purpose computing and technical computing, and in technical computing we need to balance between scientific computing and data science. How do we do that?
I think that we can pull inspiration from the Mathematica and MATLAB sites and realize that having a header image is a much more engaging way to show off applications. However, in order to hit our diverse audience we need a sliding display of a few randomized images. Each slide should be a few images composed together with some simple text next to it. Given the above analysis, I think we need to hit a few points:
Below those 5 images, I think that MATLAB's site has a good setup of doing a picture with each quick explanation. I think it should go like this:
I think that covers a wide range of technical computing? Each of the names should be a link to send the potential user directly to the packages. This answers the vast majority of "does Julia have ___?" that the audience usually asks.
There is a tough balance here between "not wanting to pick winners" in an open source community, but also we want to show some stuff off! So I am considering a general rule would be to pick and order packages by star count as much as possible as a reasonable indicator of popularity and overall impact. And the list can always be changed in the future (and this was only preliminary, feel free to bikeshed that list like crazy).
And I think that's it. I don't think it should go further than 3 sections. Maybe a 4th one showing off an interactive REPL if we have one for the web.
We need to hit general computing, data science, and scientific computing. I think we do this by
Each section has a corresponding visualization to catch the eye. Some core parts of this design is:
Of course, this is just my idea/explanations so I am curious to hear what others think. Building these images will be the toughest part, but I think image-based websites look much more modern and inviting than something that is text-heavy.
@ChrisRackauckas Love your thoughtful comments! I agree that it's difficult yet important to resolve what identity of Julia we would like to convey on the front page. Focusing on one may dilute the others. But I think your plan strikes a good balance.
I could prototype the layout for this page as you described it and circulate, do you think you can help me with the images and verbiage?
Cheers!
Yeah, if you're willing to prototype lets get the community together! I can help get some of the Julia visualizations, but I will say my editing skills are bad so I can't really compose them together well. Let's pull in @MikeInnes @Evizero (you make good figures 👍 ) @mkborregaard @tlnagy and see if any of them have concrete ideas for figures.
On https://julialang.org/ there is a screenshot https://julialang.org/images/ijulia.png containing code
using RDatasets
using Gadfly
set_default_plot_size(9inch, 9inch/golden)
plot(data("datasets", "iris"), x="Sepal.Width", y="Sepal.Length", color="Species")
Running this code in 0.6.2 results in error:
MethodError: no method matching data(::String, ::String)
Stacktrace:
[1] include_string(::String, ::String) at ./loading.jl:522
Indeed. Looks like we need to replace data
with dataset
.
👍 to @ChrisRackauckas ' ideas (except I don't think data science has gotten too much of the attention :-) ). Should we brainstorm ideas on Slack or in this thread? Figures - I think we need a basic non-fancy multipanel figure with a scatter plot with error bars and a trendline, and a barplot, to signal "yes julia is useful for your daily pedestrian work" and a nice shaded 3D visualization with Makie to demonstrate the scope.
Some notes from a quick call discussing some redesign ideas based on @ChrisRackauckas's post:
Need some space for announcements at the very top, perhaps videos too?
Have “domains” subpage with all domains
Different target audiences?
Like Shashi’s row of videos
Showcase slot for a random selection of cool, well-documented packages?
I highly appreciate the ideas in this thread and would be willing to contribute within my capabilities if this makes sense. Where is the communication for this redesign happening? I couldn't find a #website channel on slack.
FWIW, a minor point that I observed when reading the above. I feel that the domain/topics lists above seem to focus on more abstract disciplines like general math disciplines, computer science and generic things like plotting. I, of course, agree that this should be the main focus as it basically allows you to do anything else, but to inspire new scientists maybe more specific science domains should also be mentioned/showcased. BioJulia in Stefan's list seems to be the only mention in this direction. What about the other natural sciences and the finance branch of Julia? (I'm a physicist and would be most likely be caught be showing some physics application).
Done. The new website is live at www.julialang.org.
Kicked off by this post: https://groups.google.com/forum/#!topic/julia-dev/pQG6bSglkjc, maybe the home page should get a redesign. This issue is a location for discussion and brainstorming ideas for such a redesign.