JupyterLab is ready for users - <AUTHOR> https://blog.jupyter.org/jupyterlab-is-ready-for-users-5a6f039b8906 <comment><USER2> I'll be teaching a group of nine and ten years olds to code. I'm planning on using Jupyter.

What I'd really like to do is make a multiplayer naval game, with each player controlling their ship from their own notebook. Players would start out by running commands like fire(range=400, bearing=120) right from a cell, but would later be able automate their ship - for example, pick the nearest enemy, get the range, and plug that into firing automatically at it.

My server would be projecting a big map of the world up on the wall.

However, to do this nicely, I need the ability to make a cell (or a function defined in a cell) run every X milliseconds. I know I can do this for one cell, with a loop and sleep function, but I'd really rather have multiple cells/functions "running", so we can break the code into smaller chunks, and to let them build their own ship UIs.

Any advice on how to do this in Juptyer with Python? In an ideal world, I'd just "tag" a cell somehow so that it ran periodically.

<comment><USER3> To be totally honest, even though I love Jupyter notebooks, I wouldn't teach someone to code using it. See, as someone who's not, originally a programmer, I believe that teaching someone to code is intertwined with teaching (gradually) workflows and environments.

Now, Jupyter is great (I'm a statistician btw) precisely because you have a presentable literate programming tool. That is extremely valuable for data analysis and model building.

Now, If you are teaching programming in it self, I think the terminal + text editor is important since that is a step towards how things are done irl. But if you think that the terminal is too much for your audience, just go for IDLE, which has many advantages for python development + teaching, and is already a step towards text editor + terminal or IDE level development.

<comment><USER4> > Now, If you are teaching programming in it self, I think the terminal + text > editor is important since that is a step towards how things are done irl.

Jupyter (and similar) Notebooks are a way things are done "in real life"; they aren't just for entertainment purposes; and JupyterLab blends that into an IDE and the IDE with notebooks approach is also a way things have been done "in real life"; both with third-party tools incorporating Jupyter (and earlier IPython) notebooks, and with other IDE's incorporating notebook-style interaction.

Which isn't to say that there aren't arguments for teaching program outside of the notebook environment rather than within it (though the notebook is kind of a super REPL, and REPLs seem to me to be great tools for teaching), but that not using notebooks is better because it is how things are done "in real life" is just taking a highly selective view of real life.

</comment></comment></comment><comment><USER5> Absolutely love JupyterLab. Having used ipython for years, I switched to Jupyter Lab about 6 months ago and never looked back.

The things I'm most impressed with (relative to Jupyter Notebooks, which were already amazing):

\- The ability to render .geojson, .json, markdown, Vega and Vega lite files, and integrate external tools like Voyager.

\- The new terminal is a joy to use compared to what came before it

\- The ability to set out multiple windows easily, much like an IDE

\- The plugin ecosystem means that we can start writing custom components for the analytical platform we're building.

Thanks so much to the team!

<comment><USER6> Also the modular packages they have built are amazing. They have a node package called @jupyterlab/services which lets you write typescript code for your own libraries that can then call the Jupyter Server.

An example of using JupyterLab services is provided on their GitHub:

[https://github.com/jupyterlab/jupyterlab/tree/master/package...](https://github.com/jupyterlab/jupyterlab/tree/master/packages/services/examples/typescript- browser-with-output)

Because of the way they built their packages I have been able to stand on the shoulder of giants and build the following tool:

[https://github.com/SimonBiggs/scriptedforms](https://github.com/SimonBiggs/scriptedforms)

I am very grateful to the JupyterLab team. They have built something brilliant.

<comment><USER7> Holy shit. ScriptedForms is amazing. Is there any possibility you would consider selling a dual-licensed version that is not AGPL3?

</comment></comment></comment><comment><USER8> If you like Juypter, Google colabs has a google-docs style juypter notebook that's quite good. It's nice for collaboration.

[https://colab.research.google.com/notebook](https://colab.research.google.com/notebook)

<comment><USER9> There's also an official Google drive extension for jupyterlab worth checking out. I know they demoed it a few times before the v1.0 release it looks very promising.

[https://github.com/jupyterlab/jupyterlab-google- drive](https://github.com/jupyterlab/jupyterlab-google-drive)

Also worth checking out is the renderers, the vega and geojson ones are really cool.

<comment><USER4> > There's also an official Google drive extension for jupyterlab worth > checking out.

As the readme states, the realtime API it relies on has been deprecated.

</comment></comment></comment><comment><USER10> _Mathematica_ is wonderful in terms of sheer computational power, but the notebook interface it presents is hopelessly outclassed nowadays by initiatives such as these. I keep hoping Wolfram will spring some impressive new interface on us that will enhance usability for power users (rather than their weird attempts at bringing 'computation' to random casual users), but... I'm giving up hope.

This looks very impressive.

<comment><USER11> As someone who used Matlab and Mathematica in college, I'm not sure I'd want to have a closed source solution really take off again at this point. While they provided great products and documentation, they also made it much more difficult to share code/visualizations due to restrictive and expensive licensing. Ultimately, I think the ability to share information easily should help spur scientific advancement.

<comment><USER12> That's all nice but you go to real-world space/robotics/drones etc. shops and they all use Matlab or similar for their scientific computation and validation and treat Jupyter stack as a toy. Similar to telling a photographer to use Linux because there is GIMP and that should be enough for them.

<comment><USER13> Yeah, I work at a startup where we specialize in signal processing + ML. We have a robust set of infrastructure in MATLAB (use our own ML libraries rather than MATLAB's libs) and try as we might, we haven't been able to switch altogether to Python (despite a number of us being fans of Python).

MATLAB has a TON of things that you don't get with Python + Numpy + Scipy. Complicated plots/graphics with interactivity are a pain point in Python compared to MATLAB. Similarly, the debugging capabilities in MATLAB are truly magical compared to a pretty terrible experience on the Python side of things. Even though we deploy software in Python, we are much faster prototyping in MATLAB and deploying finalized algorithms/software to Python than trying to do everything in Python from the get go. MATLAB's JIT is also pretty great and while Numba is pretty great, it still requires more work and can be brittle at times.

<comment><USER14> Have you tried bokeh for interactive visualizations? [https://bokeh.pydata.org/en/latest/](https://bokeh.pydata.org/en/latest/)

</comment></comment></comment></comment></comment><comment><USER15> Loving Jupyter, I use it every day and for sure I will try this out. What I do miss though is good separation between code and data, it is a pain when someone just takes a look at your notebook and it autosaves, the code block counters reset, this alters the file and GIT reports a lot of alterations.

<comment><USER16> This so much. It is my only real complaint about notebooks. Would be so much nicer if a notebook was split in two files, like `my-notebook.input.ipynb` and `my-notebook.output.ipynb`, where `my-notebook.input.ipynb` would only contain code and be editable with any text editor similar to a .md file (and not some verbose xml). The output would contain all outputs, so that would be easily separated from the input if needed.

I can see the benefits of stuffing everything into a single file, but separating would be so much better IMHO. Version control is too important to mess with. Sometimes I want input and output to be version controlled, sometimes I only want the input. By splitting I can easily do that with simple .gitignore rules.

<comment><USER17> The notebook server have "contents managers" which decide how notebooks get stored. It is perfectly possible to write what you request, and some users have done it: [https://github.com/aaren/notedown](https://github.com/aaren/notedown) here without the outputs but it's easy enough to add.

The other possibility is to export a notebook as an actual files and folder tree: [https://github.com/takluyver/nbexplode](https://github.com/takluyver/nbexplode) so rich object (png, svg... etc) are independently editable.

It though can be challenging to have work well because of different filesystems.

You can even go further and tell the server to store nothing on disk but in a database, postgres for example :[https://github.com/quantopian/pgcontents](https://github.com/quantopian/pgcontents)

</comment></comment></comment><comment><USER18> This is really exciting for the team! However I don't think that I am particularly sold on the notebook style of coding.. its possible that I simply haven't found a good use case for it, can anyone suggest an example where the notebook style outperforms a simple script based style?

For reference, I use Matlab and Mathematica pretty heavily, and python in a text editor like sublime along with a terminal running ipython shell.

<comment><USER19> I find notebooks to be great for prototyping longer pipelines or processes. Instead of having to constantly get fresh data, particularly if it's from an external API, the notebook can persist the data in memory and you can iterate on the next piece of the process right there.

I then take that and make it a more formal script/process w/ version control and all that fun stuff. They're also really great for learning. I just wouldn't put them in production :-)

<comment><USER20> I'm using Python for lab automation, so my data comes fresh from an experiment. I've found that keeping stuff in memory is extremely convenient until the kernel shuts down for some reason (e.g., I inadvertently kill it while forgetting that I've left a notebook open).

Still, I love having my data collection scripts documented right there with the subsequent analysis. So, I've disciplined myself to handle experimental data in one of two ways:

* For "small" data, format it as a Python thing (list, dict, whatever is appropriate), and paste it into the next cell as an input. I haven't found a way to do this automatically, and I'm careful not to make things too automatic lest I run a cell and over-write old data.

* For "big" data, dump it to a file. I just turn the system time into a filename, to avoid over-writing an old file.

I don't think I've come up with the last word, on using Jupyter as a self data collecting lab notebook, nor am I yet 100% certain that it's even a good idea. This is a work in progress, but much better than anything else I've ever tried. For complicated experiments, I still create stand alone Python programs to control things.

</comment></comment></comment><comment> cup-of-tea So I can now use a decent text editor (emacs) to edit Jupyer notebooks? Great! I do wish it was possible to interleave languages like with org-mode, though. I've yet to find a literate programming/notebook format I'm truly happy with.

Edit: oh.. I misread. It doesn't support using external editors. All I want is some way to edit those text boxes with another program. I can't do any serious work in a web browser. It's awful.

<comment><USER21> Have you tried "EIN" in Emacs? [https://github.com/millejoh/emacs-ipython- notebook](https://github.com/millejoh/emacs-ipython-notebook)

I have used it quite productively for a while, but at the moment have mostly moved back to the browser for my notebooks. I can recommend to collect larger functions in a separate source file (for Emacs editing bliss) which you import to the notebook. [import helpers; reload(helpers)]

<comment> cup-of-tea I did try it, but it seemed to break "undo" unfortunately. That's something that will make me stop using a package immediately. I also tried ob-ipython for org-mode but found it not ready unfortunately. I think I will have to do what you suggest and just minimise the amount of code written in the notebook itself.

</comment></comment></comment><comment><USER22> On behalf of Azure Notebooks team, a huge congrats to the team!

If you like to try it, pick any of your libraries, right click and select "open in JupyterLab".

<comment><USER17> Much love from the Jupyter Team to the Azure Notebook team !

</comment></comment><comment><USER23> I'd really like 1 thing from those articles. I didn't knew what Jupyter was in first place.

So please dear authors when I click on your articles I'd like to have a single sentence somewhere on the landing zone where I can easily figure what we're talking about and not having to read entire paragraphs

Thanks,

<comment><USER24> The closest thing to what you're asking for is the first image in the post, which is a screenshot that has this caption:

> JupyterLab is an interactive development environment for working with > notebooks, code, and data.

<comment><USER25> But what are jupyter notebooks? Had to Google it to find out. Still not sure what it does.

<comment><USER26> This isn't meant to be snarky, but maybe this post just isn't for you, in the same way that posts about Ruby on Rails simply aren't for me.

On the other hand, if you use Python, you should definitely check out Jupyter notebooks (formerly IPython notebooks, and now JupyterLab, I guess). They're useful when prototyping data pipelines, since the state of the interpreter is saved, letting you iterate on ideas and see the outputs quickly.

</comment></comment></comment></comment><comment><USER27> If you like Jupyter you might also like [https://beta.observablehq.com/](https://beta.observablehq.com/) which was released recently, in case you missed it.

</comment><comment><USER28> I love the term "reproducible computational narratives" from their post. This is a great step toward making software accessible for everyone. In addition, imagine how transparent governments and open source communities can be by helping explain the algorithms in use with a clear provided sense of understanding for everyone. On the project level, it can be useful for keeping it simple. It's all good stuff!

<comment><USER29> Though a year old, [https://www.oreilly.com/ideas/the-state-of- jupyter](https://www.oreilly.com/ideas/the-state-of-jupyter) might interest you as well.

</comment></comment><comment><USER30> So let's say I am progressing inside a jupyter notebook top to bottom. I run code blocks, then some markdown, then code blocks, and so on.

At some point I need to drop down to the terminal to run something. I run commands in the terminal I collect some results or collect some info and go back to my notebook to resume my work inside it.

Later I need to look up something in a text file. I open a certain text file. Browse to a certain line number, read that line, maybe edit the text file, and close the text file to go back to my notebook.

Does JupyterLab keep a record of the point in my progress in the notebook when I switched to the terminal or the text file, what I ran in the terminal, and what info was used? If I edited the text file, what was before and after of the text file? In other words, does JupyterLab help with the chronology of workflow events?

If not, I don't see how this is anything other than hundreds of "IDE"s out there.

Notebook format has its own issues, but going back to IDE is not a solution. Offering both notebook and an IDE at the same time and leaving it up to the user to make the best of the combo is not a solution either, unless the offering helps some kind of a way of eliminating the cons of either format.

<comment><USER30> Replying to my own comment, I have a plot and a text file open side by side. I want to change a value in the text file and I want the plot to be updated automatically. The update might not be trivial, behind the scenes maybe the text file is an input to a simulation that runs for a minute, then computes some values in a table that are used for the plot. Can Jupyter allow you to do that?

Point being, offering an IDE in 2018 is not interesting unless you added something "smart" to the IDE that makes the life of the engineer/scientist easier compared to the rest. Otherwise, IDE's are being developed for the last three decades or more.

<comment><USER31> With respect to your parent comment: the IDE can be made to log UI context switches, but it cannot interpret intention. This is a very unusual and I suspect very sub-optimal thing for an IDE to support, whatever year it is supposed to have been built. If you really want those events to be recorded, you need to either annotate your code, or programatically have it invoke something.

As for graphics updating on file-change event, that can probably be supported through an extension. This is similar to how certain LaTeX editors automatically re-render the doc on a change-event.

</comment></comment></comment><comment><USER32> _At the same time, the community has faced challenges in using various software workflows with the notebook alone, such as running code from text files interactively. The classic Jupyter Notebook, built on web technologies from 2011, is also difficult to customize and extend._

Do I read this correctly as hinting that Jupyter Notebook is being replaced by an IDE?

<comment><USER33> We should disambiguate the term "jupyter notebook" here. Jupyter notebooks, as documents that contain code, markdown, math, widgets, etc., are a central feature of JupyterLab. Jupyter notebooks are not going away, and are getting better in JupyterLab.

The "Jupyter Notebook" web application (i.e., the browser application that was originally released in 2011) will eventually be replaced with JupyterLab.

</comment></comment><comment><USER34> Jupyter was already one of the greatest Python projects out there, this just takes it to another level. I can't wait to use this. Enormous kudos to the Jupyter team.

</comment><comment><USER35> I very heavily rely on the "official" notebook extensions from [https://github.com/ipython- contrib/jupyter_contrib_nbextensi...](https://github.com/ipython- contrib/jupyter_contrib_nbextensions)

This especially includes things like "Table of Contents", "Variable Inspector", "Ruler", and "Execute Time". How easy will it be to have all of this functionality in the JupyterLab notebooks? There's certainly advantages to having data/terminals/notebooks in an IDE-style layout, but for the moment it would still be two steps back, one step forward for me personally. This is to disparage the effort, JupyterLab clearly is the future!

<comment><USER17> First of all these are not "official" (hence why it's a different organisation on GitHub) and all is maintained by community.

It will take some time to port all the existing extensions, but the good news is that JupyterLab has been thought to work with extensions (actually everything in JupyterLab is an extension with no privileged component), so it will be easier to write these for JupyterLab than for current notebook.

The documentation on writing extension is also way better than for Classic notebook, and we had new contributor writing extension in 2 to 3 hours.

So we encourage you to try and send us feedback !

<comment><USER35> Will do! And thanks for all the great work around the Jupyter ecosystem. I didn't mean to come across as too critical!

<comment><USER17> Didn't meant to imply you were critical, sorry if it's how I expressed myself. Just trying to explain what did not ended in the blog post. Thanks!

</comment></comment></comment></comment><comment><USER36> Been trying to use JupyterLab over the weekend and had some issues with it. The idea is great though. I also look forward for the extensions. Data pipelines and dashboards can be built in visual applications much more quickly than with coding, so maybe we can now program extensions for that? Also, with vegalite and flask you can build dashboards from scratch and jupyterlab is great there (as you can mix code and notebooks). I think jupyterlab is very well positioned for being a complete end to end analytics tool from raw data to dashboards and visuals. If the extensions are powerful enough on the UI side, who knows? Maybe even business users could use jupyterlab.

</comment><comment><USER37> I like Medium, but I always struggle to find a link to the company's site. Is this hidden somewhere? I had to google it to find it, not that it was hard, but I thought it would somewhere on their Medium blog.

<comment><USER17> Oh ! Thanks, we'll try to fix that ! BTW we're not a company, but sponsored by a non profit, academics and volunteers mostly.

<comment><USER38> As someone new to not just Jupyter (and for someone coming from the Microsoft c# world, mind = blown, many kudos)....do you (or anyone else reading) happen to know off the top of your head a particularly well done, information dense (not dumbed down, showing _what_ you can do, but skipping a hand holding explanation, one can go get that elsewhere) notebook that demonstrates a broad range of Pandas & Jupyter capabilities?

<comment><USER39> The Nature article and notebooks from a few years back are still pretty good for demos, though everything has updated since then , especially iPython -> Jupyter.

[https://www.nature.com/news/interactive-notebooks-sharing- th...](https://www.nature.com/news/interactive-notebooks-sharing-the- code-1.16261)

hth

adric

<comment><USER17> s/iPython/IPython/g otherwise it looks like an Apple product :-)

</comment></comment></comment></comment></comment><comment><USER40> When i checked two weeks ago, there was a bug that when opened a notebook with large number of cells(~200), in firefox, it would freeze for about 10 seconds if the window was resized. The problem, as i know, only occurs in Firefox, not in Chrome.

This was problematic, especially for me, as I open documentation on other side of the window and keep resizing the window as part of my habit. But, overall JupyterLab was great. You can work on the same notebook side by side too and has a file manager/viewer panel.

<comment><USER33> Please try it again. In the last few weeks we've made some changes that drastically sped up things in Firefox, and we have plans for more changes in the pipeline.

See [https://github.com/jupyterlab/jupyterlab/pull/3805](https://github.com/jupyterlab/jupyterlab/pull/3805) and [https://github.com/jupyterlab/jupyterlab/pull/3802](https://github.com/jupyterlab/jupyterlab/pull/3802) for more details.

</comment></comment><comment><USER41> This looks like it could be quite the competitor to RStudio!

<comment><USER17> Complementary ! We love R-Studio (and JupyterHub can run R-Studio). R-Studio is still more tightly integrated with R, but we are progressing.

It would be great to have community plugins that make R-Studio able to open Jupyter files, and JupyterLab open R-Studio files !

</comment></comment><comment><USER6> Woohoo! Congratulations JupyterLab team. It is a brilliant thing being built.

</comment><comment><USER42> I am going to ask a very dumb question, but if I am not an exploratory data scientist, what and how do i use jupyter/ipython for? I keep meaning to try it out but never quite got round to anything but toy stuff.

how does it fit into a developer workflow, or do i need a different mindset?

what should I try to do with this beta to get my mind right is probably the best question

<comment><USER31> No, it's a fair question.

To be honest, if you're not doing exploration or quick prototyping work (you don't have to be a data scientist though), Jupyter might not be that useful to you.

Jupyter is really useful when you have intermediate results that you don't want to keep regenerating. It lets you test different ideas at any given point in the program without re-running everything above it -- kind of like a pause button. (garden of forking paths) And if you do have to change any code, you can change things in-situ without re-running the entire program. It's like programming with a tape-recorder with mutable state.... hmm, ok maybe that isn't a good analogy, but close enough.

For quick scripts, I reach for vim and run my code on the console, and insert "import ipdb;ipdb.set_trace()" wherever I need breakpoints.

For more complex work where there are different permutations, and many throwaway branches of ideas that I have to test, Jupyter (or any notebook type tool) is way more useful.

</comment></comment><comment><USER43> I'm trying to get a JupyterHub or JupyterLab instance deployed at my university. JupyterHub has documentation on deployment, authentication (e.g,. LDAP, CAS), and so on. I'm guessing that JupyterLab will eventually get things like this. Does anyone know if there will be a migration path for JupyterHub to JupyterLab?

<comment><USER44> JupyterHub is the multi-user application which will proxy a single user application. Jupyter notebook is the default single user app, but it can be configured to use jupyterlab.

<comment><USER45> Also, it should be noted that, since it just proxies a single user notebook server, JupyterHub doesn't support any interaction, sharing, or other collaboration between users (though one could implement some of that by mounting an NFS share inside notebook containers). Still, I've found it quite useful for teaching. IIRC, there's also a project underway to bring collaboration features to Jupyterhub.

<comment><USER17> To JupyterLab, yes it's working but google retired the real-time API, so the project have seen some delay as we are reimplementing the Backend server where we were hoping to use Google Drive. CoCalc (ex sagemath cloud) already have real-time notebooks.

</comment></comment></comment></comment><comment><USER46> A key point - for me as a user unlikely to develop extensions- is buried some paragraphs down. "JupyterLab 1.0 will eventually replace the classic Jupyter Notebook. Throughout this transition, the same notebook document format will be supported by both the classic Notebook and JupyterLab."

</comment><comment><USER47> Wanted to give a shout out to phosphor - the underlying UI framework used in JupyterLab. Used it for some non JupyterLab use cases and found it a pleasure to use. ([https://github.com/phosphorjs/](https://github.com/phosphorjs/))

</comment><comment><USER48> This is the closest I've seen anyone actually deliver upon the promise of OpenDoc [1] and similar tech like KParts, but in a more user-accessible packaging. I'll be interested to find out its scalability and performance. If it renders only the part of a notebook that is visible, while continuing to run threaded computations of hidden components, then that might help some of the performance limitations I'm seeing people write about. That might be important to scale up collaboration as well in the future.

[1] [https://en.wikipedia.org/wiki/OpenDoc](https://en.wikipedia.org/wiki/OpenDoc)

<comment><USER17> It does render the all doc (at least for notebook) IIRC, but that an implementation choice. As long as there is a model somewhere it could only render what's visible.

Note that almost all the rendering is - for JupyterLab – client side, and that for scaling we know of Single JupyterHub deployments that have close to 5k users. Horizontal scaling of Hubs is improving, and we hope to have more robust solution soon.

</comment></comment><comment><USER49> Love the original version of jupyter and this looks great too. Thanks for all you guys do

</comment><comment><USER50> I used the beta of Juypterlab and I was really impressed. Congrats on the Juypter team for releasing this! I was at Juypter Day at 2016 and they were talking about the roadmap to this feature. Its really exciting for this to come out!

</comment><comment><USER51> This is awesome - jupyter basically drives my whole company at [https://kyso.io](https://kyso.io) we are gonna implement jupyterlab really soon once we've done sufficient testing.

<comment><USER52> I think you have a typo (or mobile font problem) on the homepage. "platformin" on Chrome Android.

</comment></comment><comment><USER53> Is it possible to have a notebook and a console using a single, shared kernel?

<comment><USER24> If you have a notebook open in JupyterLab with a running kernel, you can go to the menu and open File > New > Console.

It will prompt you for what sort of kernel to use, including the ability to use any currently running session.

</comment></comment><comment><USER54> There is only one mention of Python in the entire post... there are 5 mention of JavaScript. Recently, I have been mulling over the GUI creation problems and packaging problems that still plague the Python ecosystem. That being just the start of it...

I guess my love affair with Python is souring a bit. Compared to JavaScript it seems like it has slowed to a crawl on the innovation front. That is, for anything NOT related to machine learning.

I use Jupyter notebooks with Python all the time and only recently started using them with Node.js it seems like JS is just killing it...

<comment><USER17> Haha, don't worry the Python side is still quite active, and IPython is still evolving. JupyterLab is (so far) only a new UI. It still connects to all the kernels via the same protocol in the back, and we were not willing to change both at the same time. But thanks for caring and expressing concerns.

<comment><USER54> The fact that the GUI is written in JS is my point. The reports of Python's death... you heard it here first.

</comment></comment></comment><comment><USER55> I've started using Jupyter Notebooks 2 years ago and I found it fantastic for data exploration, analysis, quick coding and prototyping.

Switched to Jupyter Lab recently and I can only recommend it. It's an absolute joy to work (I especially like the full screen mode - really great). Even for simple tasks where I used to open file in Excel by default (when I just need to take a look or do very simple operations), I now prefer the Jupyter Lab experience.

Anyway, thanks for the excellent work !

</comment><comment><USER56> Is there a way to integrate a debugger and browse variables? I have been using Spyder for casual programming, and don't think I could do without a debugger.

<comment><USER57> In Python, the Jupyter notebook kernels are based on IPython which has some magic commands for pdb debugging hooks.

If you want more then that, someone (maybe you) will build an extension at some point.

</comment></comment><comment><USER58> I tried Jupyter Lab two weeks ago and found it to run unbearably slow. I'll try it again eventually I suppose, very well could have been a local issue

<comment><USER33> Please try again. We had some drastic speedups with notebooks, particularly on Firefox, in the last few weeks.

<comment><USER59> i installed it now (v0.31.8) via pip on centos7 with python 3.6. Switching to a notebook tab takes about two seconds (notebook has 45 python code cells), saving a texteditor with python code in it takes about 1 second. Chrome Version 63.0.3239.132 on macosx (15" macbook pro). "regular" jupyter notebook is instant on both things.

<comment><USER33> There are definitely more optimizations planned in the future. The optimizations that happened in the last few weeks took it down from tens of seconds to open and deal with large notebooks.

</comment></comment></comment></comment><comment><USER60> Maybe this will motivate the otherwise great pycharm team to improve their product's dismal Python jupyter notebook support

</comment><comment><USER61> I really hope they will add a panel to inspect current defined variables, like in Matlab, that would be so useful!

<comment><USER6> The extension framework means anybody can build something like that. The beauty of it is that because that feature is so useful it's almost guaranteed someone will make it at some point.

</comment></comment><comment><USER62> Does anybody knows if with JupyterLab I will be able to keep some code running, close the browser, and still get the output of the code afterwards? For what I know, currently I have to keep the browser open if I want to capture the output of a cell.

<comment><USER17> If you update the `notebook` package there should be a workaround. Messages will be buffered on server-side until a client reconnect. It is still not perfect, but get part of the way. One long term plan is to have server-side model (not sure if it will be by default, or an extension), and have the browser just be a vue on this. It is quite hard to design as many visualisation libraries assume to be in a browser context, and have access to DOM.

<comment><USER62> Buffering is indeed helpful, but will not solve the problem. I always thought that a proxy server holding the current state and sending diffs to clients would be enough, but it would still have issues with visualization libs. Is there somewhere were this issue can be discussed and addressed? GitHub?

<comment><USER17> There are a couple of issues about that, a bit scattered around. And many moving pieces. I agree that a proxy would be a nice thing, and IIRC someone made a prototype. This also hook into the JupyterLab "StateDB"/"modeldb" work and making it CRDT (Conflict-free Replicated Data Types) which is WIP somewhere; but I'm not sure where the best place is to discuss this. Work may happen on jupyter/notebook , jupyterlab/jupyterlab or maybe even [https://github.com/phosphorjs/phosphor](https://github.com/phosphorjs/phosphor) I would take my chance on the main mailing list/google group.

</comment></comment></comment></comment><comment><USER63> What put me off Jupyter is that it can't do dynamic text. I can't link to a variable in the code, such that the text updates when I run the code again with new parameters. This would be a great feature for demos/presentations.

<comment><USER4> > What put me off Jupyter is that it can't do dynamic text. I can't link to a > variable in the code, such that the text updates when I run the code again > with new parameters.

You can either output text (including HTML/Markdown) from a code cell, or (at least for python, don't know of similar for other languages) use the Python Markdown notebook extension to do this.

</comment></comment><comment><USER64> I still cant get this plugin working with JupiterLab [https://github.com/genepattern/jupyter- wysiwyg](https://github.com/genepattern/jupyter-wysiwyg)

<comment><USER65> This plugin is a classic notebook plugin, not a JupyterLab plugin unfortunately.

</comment></comment><comment><USER66> I really care [https://github.com/jupyter/notebook/issues/1647](https://github.com/jupyter/notebook/issues/1647) more.

</comment><comment><USER67> Just tried it and found it tremendously easy to use. Well done

One thing I couldn't seem to figure out is if it is possible to plot interactive matplotlib plots (for getting mouseover values zooming etc).

</comment><comment><USER68> Anyone know of any maintained Docker images for this?

I'm not a fan of pip etc and prefer to isolate my notebooks in a docker container.

EDIT: never mind, you can run it using the official images by executing `start.sh jupyter lab`

</comment><comment><USER69> Is it clear yet how one will use text editors (emacs, vim) with JupyterLab?

<comment><USER70> Are you referring to editing text files or in notebooks?

<comment><USER69> I'm interested in any jupyter workflows that allow me to use my text editor and a terminal-based language REPL/shell.

In general,

\- I want to use my text editor to write any non-trivial function/class implementations.

\- I want any substantial amount of code to be held and version-controlled in regular files of code, not inside JSON.

\- I want to use the notebook for display (tables, figures, rendered markdown/LaTeX, etc)

So the most important question is:

\- How do I conveniently work on a code file in my text editor, and then execute code in the notebook so that the most recent variable definitions in the code file are honored during the jupyter execution?

Also

\- How do I start a terminal-based REPL/shell that is sharing the same kernel as the notebook? (Relevant to text editors, because this might be for example an ipython shell running inside emacs, allowing me to easily evaluate fragments of code in the text editor.)

There are more sophisticated things one could imagine, but I don't think I want (e.g. evaluate a cell/notebook from the text editor, create a cell from text editor).

<comment><USER70> I see, well you might get a better answer from a Jupyter dev. I use the autoreload extension to automagically pull in my lastest code [1]. It usually works. For your second question you can connect multiple frontends to the same kernel [2].

[1] [https://ipython.readthedocs.io/en/stable/config/extensions/a...](https://ipython.readthedocs.io/en/stable/config/extensions/autoreload.html)

[2] [https://jupyter- notebook.readthedocs.io/en/stable/examples/N...](https://jupyter- notebook.readthedocs.io/en/stable/examples/Notebook/Connecting%20with%20the%20Qt%20Console.html)

<comment><USER69> Thanks, yes I'm somewhat familiar with the story under the current jupyter notebook. E.g. when I'm feeling very energetic, I sometimes manage to come up with the right series of shell invocations to get a notebook running in a browser and a terminal python shell sharing the same kernel via `jupyter console --existing`, with the right python version and virtualenv. Or even have the shell running in emacs, though there's usually something broken somewhere along the way in my setup.

I'm vaguely aware of autoreload but it seemed a bit confusing; there are various similar-sounding alternatives.

</comment></comment></comment></comment></comment><comment><USER71> Not a single note on how to debug code. Or did I miss something?

<comment><USER17> Debugging story has not changed. The core team is in discussions with some large company to get funding and work on debugging protocol and collaborate.

</comment></comment><comment><USER72> Excited for a new Julia IDE. Seems like it's a nice interactive style which surprisingly doesn't feel like it has the kludge of the notebooks.

<comment><USER17> We don't have enough Julia developers involved ! It would be great to have more feedback and patches !

</comment></comment><comment><USER73> I am a heavy PyCharm user, will try it as I am gradually shifting to Notebooks. This IDE should help for a smooth transition.

</comment><comment><USER74> Give me collaborative editing please. It's a great potential feature for pair programming or instructing with Jupyter.

<comment><USER70> Have you tried [https://github.com/jupyterlab/jupyterlab-google- drive](https://github.com/jupyterlab/jupyterlab-google-drive)?

<comment><USER17> Unfortunately Google retired the Google Drive API, so you can't create new application the use RT. So while it works, there is no point in releasing it.

</comment></comment></comment><comment><USER75> If I can have a console view simultaneously with everything else, I may finally switch to Python

</comment><comment><USER76> Is JuypterLab available on a cloud service? I use azure notebook a lot, it's great.

<comment><USER77> It's already available on Azure Notebooks: [https://news.ycombinator.com/item?id=16422217](https://news.ycombinator.com/item?id=16422217)

>> If you like to try it, pick any of your libraries, right click and select "open in JupyterLab".

</comment></comment><comment><USER78> How does this affects the other environments? Will this be the demise of R Studio?

<comment><USER79> RStudio has had a server-based semi-collab SKU since before JupyterHub was even in development: [https://www.rstudio.com/products/rstudio/](https://www.rstudio.com/products/rstudio/)

<comment><USER80> What does "SKU" mean in this context?

<comment><USER79> Meant product, but brain was failing at time of comment.

</comment></comment></comment></comment><comment><USER81> What would be the best way to install JupyterLab on a fresh Mac?

</comment><comment><USER82> is there now a viable way to create multi-user read-only notebooks ?

so that a data scientist can prototype a dashboard on jupyter and then multiple people can use the dashboard ?

</comment><comment><USER83> It's a bit of a mathematica for the current era :)

</comment><comment><USER84> Every programming language needs something like this!

<comment><USER17> That's why Jupyter support more than 60 languages ([https://github.com/jupyter/jupyter/wiki/Jupyter- kernels](https://github.com/jupyter/jupyter/wiki/Jupyter-kernels)) which language did you had in mind ?

<comment><USER38> Perhaps a dumb question, but do those languages tend to have wrappers for common Python libraries like Pandas?

<comment><USER85> I doubt it. Python is not very embedding-friendly. You might be able to bridge the gap via the foreign function interface, but it's unlikely that the Pandas API will feel as comfortable in another language that it wasn't designed for.

<comment><USER17> What you can do is the opposite, run Python as the main language and integrate with other. There are demos around of notebook with multiple languages. Old example I wrote: Python, R, Rust, C, Cython, Julia and Fortran all calling each others: [https://matthiasbussonnier.com/posts/23-Cross-Language- Integ...](https://matthiasbussonnier.com/posts/23-Cross-Language- Integration.html)

</comment></comment></comment></comment></comment><comment><USER86> Can't wait to put my paws on this!!!

</comment><comment><USER87> With no support for Microsoft IE or Edge, this cannot be used in numerous enterprise environments where installing alternative browsers is not allowed.

<comment><USER17> No support does not mean that it won't work. As this is an open-source and free tool, the support is announced only for the publicly available code which is regularly tested and fixed. Now if a company want to pitch in, and sell IE/Edge support that would be great. Even better would be windows developers to contribute fixes back until the quality and regular fixes on IE/Edge make it possible to officially say they are supported.

</comment></comment><comment><USER88> I guess we just killed the demo site.

</comment><comment><USER89> Those sliders look sweet :)

</comment><comment><USER90> Will this be in anaconda?

<comment><USER17> Yes, it may already be, but an older version. It will be on cada-forge at least ([https://conda-forge.org/](https://conda-forge.org/)) but it may take a few hours to appear.

</comment></comment><comment><USER91> Does it support Intellisense?</comment>


Writing apps for the iPhone in Scheme - <AUTHOR> http://jlongster.com/blog/2009/06/17/write-apps-iphone-scheme/

<comment><USER2> This is very cool and I hope this idea spreads to other languages.

There was a recent post on HN about compiling various dynamic languages to C (I've lost the link). Of particular interest to me was JavaScript. For writing js code targeting the iPhone, PhoneGap and Appcelerator Titanium are cool, but still feel a bit gimped for doing truly native non-cross-platform stuff.

</comment><comment><USER3> Also check out <http://programming.nu/>.

It's a sort of S-expression-based functional language that leverages the Objective-C runtime.

</comment><comment><USER4> Doesn't Apple frown on VM's and/or embedded interpreters in the iPhone submissions? Couldn't the presence of Scheme's eval function ( whether it's exposed to the user of the compiled software or not ) end up being an issue?

<comment><AUTHOR> I commented on that near the end. You can compile Gambit without EVAL.

Also, supposedly there are apps out there which have embedded Lua. You just aren't allowed to download new code.

</comment></comment><comment><USER5> While this is a very cool hack, compiling to C is (relatively) easy. Objective-C, but mostly the (Cocoa Touch) API's are the interesting bit of iPhone development. Until there is a good way to use those API's in a high(er) level language, I'd stick with Objective-C :)

</comment><comment><USER6> This is really cool as I'm in the process of working my way through SICP (though painfully but learning), I was wondering if I could really use Scheme for real world usage. This seems to be the most likely answer.

<comment><USER7> Real-world usage is where Scheme and most Lisp dialects really shine, specially when you're not fighting against the deployment platform. I say that because this Scheme on iPhone hack has a lot of GCCisms, shell fudging and other not-too-lispy kludges. The day you have a Scheme repl with nice bindings for the system libraries is the day the fun begins ;-) it almost feels like cheating; you do things on the system live, where others have to cross compile and upload it :-)

<comment><AUTHOR> Hold on now, this isn't a hack :) It's a full Scheme implementation compiled to C and then compiled for the iPhone.

And once you get this far, it's easy to compile in the Scheme system, but load all of your code at runtime and edit it live. I'm going to add a remote REPL for debugging which will let you attach a REPL to a running app the iPhone, for example.

Maybe my blog posts on that will be more of the real world you are looking for!

</comment></comment></comment><comment><USER8> Any idea if you can actually get an iPhone app published this way? Usually the code generated from one of these high->low level compilers is tough to read and nearly impossible to understand. If it hasn't already done so, I imagine that Apple might bar submissions with obfuscated code[1], and it can be argued that the resulting code produced by the Scheme to C compilation is obfuscated and therefore ineligible for App Store inclusion.

[1] I was operating under the assumption that the source, not a binary, was provided to Apple. I stand corrected.

<comment><USER9> You submit a binary to the app store, not source code.

<comment><USER8> Oh, OK, good to know. The article made it sound like using Objective-C was a requirement for developing for the iPhone, and the only reason I could see for that to be the case is if they needed the source code. That said, why not just target the architecture directly? Why make a pit-stop at C?

<comment><USER10> >Why make a pit-stop at C?

Optimizing C compilers and platform independence properly. There have been a lot of research involved in making C compilers very fast, so you get to copy that for free.</comment></comment></comment></comment>


Predicting Effects of Covid 19 on US Healthcare Capacity - <AUTHOR> https://qventus.com/blog/predicting-the-effects-of-the-covid-pandemic-on-us-health-system-capacity/ <comment><AUTHOR> We adapted the CDC Flu Surge model to estimate the effects of COVID-19 on US hospital resources. Many assumptions detailed here but combined disease and population with hospital bed and occupancy data to help prepare for where the largest shortages may occur if things were to get bad</comment>


Feedback on a service to help Developers monetize their work - <AUTHOR> https://licensify.io/?src=hn2105 <comment><USER2> How much does it cost ?

<comment><USER3> It's free to use/set up/etc... then 2.9% of the revenue generated.</comment></comment>


Unlicense - One Year of Public Domain Code - <AUTHOR> http://ar.to/2011/01/unlicense-1st-year <comment><USER2> I'm trying to use the Unlicense whenever I can. I'm even retroactively licensing past open source projects (and many projects I did as part of university classes), to encourage reuse as much as possible.

My sincere thanks to those who worked hard on the Unlicense! :)

</comment><comment><USER3> What's the story on using the Unlicense with libraries under other licenses? I'd love to use it, but I depend on libraries that are under Apache and LGPL licenses. Is it compatible?

<comment><USER4> You can freely incorporate public domain code into a code base licensed under any license whatsoever. For example, as the FSF states in <http://www.gnu.org/licenses/license-list.html>, "Public domain material is compatible with the GNU GPL."

For the other direction, that is, incorporating some copyrighted code into an otherwise copyright-free code base, just be careful to keep the copyrighted files isolated and clearly marked as encumbered, so that nobody accidentally copies anything from them into the unencumbered portions of the code base. See [http://groups.google.com/group/unlicense/browse_thread/threa...](http://groups.google.com/group/unlicense/browse_thread/thread/2b6daab51dbef77e) for more information.

</comment></comment><comment><USER5> I really wish there was a license that forced developers after a certain amount of profit/time they would make their code open source. I would buy a lot more software if I knew I was supporting something that is useful and would soon be free for all. That sort of license could be really beneficial for developers who want to work on small open source projects full time.

</comment><comment><AUTHOR> kinda cool to see creative commons has recognized unlicense as a legitimate alternative for dedicating code to the public domain.

</comment><comment><USER6> _"The best estimate I can give, from having semi-actively tracked the growth of adoption for the last year, is that there must at the very least now be many hundreds of projects using the Unlicense. I doubt we have yet crossed the 1,000-project mark, but I'm quite certain that in another year's time we will have."_

Someone should make a list of them (that goes beyond 50 projects). Without some sort of substantiation, there's no real reason to believe this claim.

<comment><USER4> If you think it that important, feel free to improve upon the list; it's maintained at <https://github.com/bendiken/unlicense.org>. Fork the repository, update the list, and submit a pull request to merge. Easy as pie.

Given that the list at Unlicense.org doesn't even include all of my own projects, it's really not comprehensive at all. So, here's a tip: just set a couple of Google Alerts (in addition to the obvious "Unlicense", searching also for the first line of text from the Unlicense is particularly effective). Much easier.

Note also that there isn't much point listing hundreds of projects directly on the front page of Unlicense.org. If we wanted to actually be comprehensive, we should do something like a tagged and searchable database of projects. This has been discussed previously, but isn't a priority.

<comment><USER6> I'm not in your "movement" - it's not _my_ responsibility to provide the evidence just because I'm the first person to bother saying _citation needed_ on a broad, unsubstantiated claim like that.

<comment><USER4> I thought I had made it pretty clear what my estimate was based on (observing new projects pop up nearly daily over the course of the last year) and that it _was_ merely my personal estimate, not some peer-reviewed fact as you are supposing.

I'm in the unique position to know the figures best, knowing roughly how many projects I _haven't_ added to the project list at Unlicense.org. I have to say I'm at a loss to understand why you would think hundreds of projects implausible given that even simply googling for the uniquely-worded first line of the Unlicense returns 9,440 hits at present:

[http://www.google.com/search?q=%22This+is+free+and+unencumbe...](http://www.google.com/search?q=%22This+is+free+and+unencumbered+software+released+into+the+public+domain%22&filter=0)

If we merely added the projects of the people listed at <http://twitter.com/bendiken/unlicensed> to the project list, the list would certainly already be at 100+ projects; this can be easily and quickly verified even just by eyeballing the GitHub, Bitbucket, Google Code, SourceForge, etc. accounts of the people involved. And those people are just a subset of all the developers currently using the Unlicense.

To put this in proper perspective, even I just by myself have more Unlicense- using projects hosted on GitHub than there are total projects listed on Unlicense.org. (I have tended to not add my projects to the list so as to make room for others.)

Even lacking other information than all the previous, it's hardly a stretch to estimate hundreds of projects. And, _I_ of course actually _have_ further information, having been uniquely positioned to observe this ecosystem grow during the last year.

I didn't keep notes on every new project, and have no intention of doing so in the future, as we who maintain Unlicense.org feel no need to grow the project list there to anything all that much longer than it already is (it clearly states "a sample", and is arguably already too long as it stands today; it needs curation for quality, not expansion for quantity).

As I said before, if we, or someone else, wished to provide a comprehensive catalogue of projects who've adopted the Unlicense, that would already at this point need to be a tagged/categorized database to be useful to anyone. By next year, that, too, probably couldn't keep up, so what's the point?

<comment><USER6> You continue to miss the point: it's not the responsibility of anyone else to back up what you're saying or to provide any substantiation for your claims.

None whatsoever.

Nor did I ever say I found it "implausible" that there were hundreds or thousands of projects using this license - that is _your_ word. I just noted that you're pushing a movement and making a claim about its adoption without any clear basis for anyone else to believe it. I'm not a fan of blindly believing tossed-out claims. And no, when you throw around phrases like "I'm quite certain", you don't get to blow off skepticism with _this isn't peer- reviewed!_

"[H]aving semi-actively tracked the growth of adoption for the last year" doesn't mean much of anything - for all a random person knows, it could be a WAG on the lines of _I saw 50 or 60 projects in the first month, so let's say ~700 projects by the end of the year_.

It's great that you _can_ point to much better evidence than that, in all seriousness. In the future, you might bring some of that up before getting defensive. _I don't know you_ , and like many other people out there, I'd never heard of the Unlicense; you're not going to get blindly trusted.

</comment></comment></comment></comment></comment><comment><USER7> great work, unlicense is my go-to license for all projects!</comment>


Ask HN: I have some questions as a new iOS Freelancer - <AUTHOR> Hey HN,
I've been working in a small startup as an iOS freelancer for almost 2 years (bug fixing, features implementation, etc). I landed this contact by publishing two apps to the App Store (one got a fairly good amount of downloads) and doing some small gigs.
Anyway, I have some free time now because this small startup doesn't have much work for some time. My first reaction was to go after some projects to work on. I stumbled upon UpWork and Guru and, as everyone else seems to be saying, it's pretty hard to compete with some programmers applying to work for $15/h for example. I'm trying to maintain my price as $35/h (I receive $30/h after UpWork's fee) as I think it's fair for my service, but I not having much success with that.
Is my price too high? Is my cover letter wrong? I've never applied to this kind of thing before and I'm having a hard time writing a good letter... do clients on websites like UpWork even read all cover letters? Some projects has over 100 proposals.
I have tried to move to websites like Crew and Toptal (I don't think I have enough experience to toptal yet). Can anyone help me?
Thank you! <comment><USER2> Do you live somewhere where $30/hr is a good wage? In the US, a decent iOS freelancer should be getting at least $100/hr -- you can't do that by competing on these platforms.

The standard advice for getting better rates (you'll see all over HN -- and I can tell you that it's what I do personally)

1\. Charge by the week, not by the hour.

2\. Sell the business result, not the app's features.

3\. Your cover letter should reference how your portfolio projects delivered (profit, cost saving, risk reduction) to the client.

4\. You need to convey that you are the low risk choice -- money to you definitely turns into an app for them.

<comment><AUTHOR> Thank you, your reply is extremely helpful. I have some questions:

Can you expand on item 2? Also, I'm having trouble finding places where I can find the kind of clients that are looking for quality over fast and cheap solutions, UpWork is not that place and I don't have enough quality contacts (I don't have conferences to go near where I live).

<comment><USER2> Look here: [http://doubleyourfreelancing.com/](http://doubleyourfreelancing.com/)

There is lots of similar advice there.

Finding the clients for iOS development will be hard. It would be easier to just apply for remote or full-time contract positions (try careers.StackOverflow.com)

</comment></comment></comment><comment><USER3> Your price _is_ too high for the clients you _don 't_ want -- maybe low for the ones you _do_ want.

It's a Market for Lemons.

And competing in the race for the bottom will cause you to get lost in the noise. Some small number of clients will prefer higher rates and take the gamble -- and upon a happy conclusion of a project, will seek you out in the future.

hth

<comment><AUTHOR> Hmm, it might make sense, but, correct me if I'm wrong, there's almost no room for more expensive freelancers on UpWork. At least I don't see where they (we) would fit.

<comment><USER3> Looks like they fit on this page: [https://www.upwork.com/o/profiles/browse/?q=ios&rate=60](https://www.upwork.com/o/profiles/browse/?q=ios&rate=60)

</comment></comment></comment><comment><USER4> What keeps you on odesk/upwork or similar race-to-the-bottom sites?

Eliminate the middle man, contact directly to prospective clients. There are a lot of opportunities for mobile devs.

<comment><AUTHOR> I don't have enough quality contacts to find these clients. And this kind of work is not common where I live so I don't have conferences to go... Do you have any suggestions?

<comment><USER4> I live in a similar place. Going remote is the solution, but again without a middle-man... Look for gigs on HN hiring/freelancer threads; weworkremotely.com; wfh.io; etc...

Even on upwork or similar sites, especially when the client is new to site, in case they provided contact info - contact them directly. Yes, and needless to mention - double (better triple) your rate.

<comment><AUTHOR> mhmm, I never considered direct contact, I thought it might be too intrusive. The websites you provided seems nice, I'll definitely check them out

<comment><USER4> Yep, and no need to mention the [race-to-the-bottom] site. Just check their website, contact info, maybe jobs/careers section, and contact anyway. And again, consider doubling/tripling your rate.

For short-term quick jobs - daily (better weekly) charging is preferable.

For long-term-like-regular-job - I prefer hourly billing, because I usually work part-time and with a hourly setup I have a freedom.</comment></comment></comment></comment></comment>


Ask HN: Who Handles Eng Recruiting – VP Engineering, or VP Talent? - <AUTHOR> For example, Snap seems to have a VP of Talent/People (VP People Jason Halbert) and a VP of Engineering (Senior Vice President Engineering Jerry Hunter). Both report to the CEO.<p>My previous understanding was that VP Engs are responsible for engineering hiring. Is that wrong? And how does a VP Talent fit into this? <comment><USER2> Recruiting is pretty hard, actually. It takes a lot of moving pieces, and there's a lot of work to be done. This work is split between recruiters who manage the overall candidate relationship, interviewers who assess the candidates, and managers who are staffing their teams and thus do a lot of other work. There are also coordinators and all kinds of other folks.

If my understanding about product development is correct, it's not that different from building a product. Besides engineers, there are product managers, designers, researchers, and managers in that process as well. There are all kinds of processes and dependencies that go into it. Same with recruiting :)

Ultimately, I believe the heads of both Talent and Engineering have other responsibilities besides recruiting as well. Recruiting happens to be one where they share a lot of responsibility.</comment>


What is a Smalltalk "image"? - <AUTHOR> http://stackoverflow.com/questions/3561145/what-is-a-smalltalk-image

<comment><AUTHOR> OK, I understand why the title would get edited (I couldn't think of a very good way to summarize it and "Smalltalk images are (sort of) alive" may not be very good), but I linked specifically to the second answer because that's what I found fascinating: <http://stackoverflow.com/a/3617319/215168>

Why did the submission link get edited to point to the question? The question and top answer (which is copied from Wikipedia) are not all that interesting I think.

</comment><comment><USER2> It seems like there's a growing renewed interest in the tools of old (like smalltalk). Happy to see it.

</comment><comment><USER3> Most Lisps do this as well.</comment>


Ross Ulbricht's arrest: How the FBI handled evidence and destroyed the laptop - <AUTHOR> This is new information the FreeRoss team released yesterday. Everything is backed up with a source.
For anyone interested in knowing how the evidence used against Ulbricht was produced and handled by the FBI, read or watch at https://freeross.org/railroaded
The whole scene reads like a joke. <comment><USER2> We like to smugly look back on Aztec sacrifice ceremonies, where the common people believed to the depth of their souls, that the people being decapitated in front of them were deserving of that fate, and that defeating that process would endanger their own futures in view of the gods. The process was righteous by definition, no matter what facts and bases the condemned could supply.

Next year is the 500-year anniversary of the peak of the Aztec empire. We need to be continually reminded that the more things change, the more we stay the same.

</comment><comment><AUTHOR> The arrest scene is in Episode 3 chapter 11.</comment>


Show HN: I've launched my iPhone journal app I've worked on for almost 2 years. - <AUTHOR> http://hey.co Hi everyone - I've been working on this automatic journal for a long time. It takes your photos, makes them look nice, and also journals the places you go just by having your phone in your pocket. Would love your feedback! <comment><USER2> This is sort of off-topic, but I think it's still HN relevant and might be helpful.

The WOT (web-of-trust) plugin rates your site as untrustworthy. But the rating shows some crazy IP-based russian spam site from a year ago. I'm new to WOT so I don't understand--is this rating due to too-broad-a-wildcard in the system, or due to previous use of the site owner, or something else? (I'm hoping someone more familiar with WOT jumps in and explains what's going on here.)

In any case I rated it trustworthy on WOT so hopefully that percolates through the system eventually.

<comment><USER3> Engineer @heyday here. Thanks for letting us know :)

I think the evaluation is based on the previous owner / user of that IP address (it's hosted on S3, and IP addresses are kind of like relatives on your family's christmas get-together.) I submitted the site for re-evaluation though.

<comment><AUTHOR> It may be relevant to note here that Manuel joined our team through a Hacker News Who's Hiring thread. =)

</comment></comment></comment><comment><USER4> I was really happy to see an app I actually want to use.

Then I downloaded it, went through the introduction and hit a wall when I had to make an account or log in with facebook.

If this is a personal journal, why do I have to make an account? I would love to use the app, but I'm not going to make an account and would want it to run without having to connect to an outside server in any way.

<comment><AUTHOR> We actually implemented the other way first, where we showed you the journal and then let you log in. The user experience ended up being more complicated then we liked in user testing.

We ask you to make an account so that we can back up your memories, in case you lose your phone, or want to see it on the web. You can turn this off in Settings, and Heyday will live completely on your device and nothing will go to our servers, and it will work fine. Sorry about that.

<comment><USER5> Just saw this reply. Maybe bring me to a screen with two buttons that say "create an account to sync" or "sync using icloud"?

<comment><USER6> Perhaps you could ask this after the user has created their first entry? If they ignore it they can setup an account/syncing later via settings.

</comment></comment></comment></comment><comment><USER7> Feedback... \- The initial user experience is fantastic. You take people by the hand through the setup process and granting proper permissions. This is very well done.

\- The account creation was fine but could have been lighter weight. You really only needed my email and could have sent me a password if the purpose is to just backup my stuff. I think you could push this so it's not part of the first launch experience. (while still hitting your goal of preserving memories)

\- I love how you pulled in so much history from an initial load. I enjoyed my photos and that was awesome.

\- I think there is too much emphasis on "editing." When I tap a photo or video I want to see it big or I want to play the video. I couldn't find an easy way to make photos big and playing a video was too many clicks. Same for maps... they don't get big either?

\- Nice UI dynamics on the calendar control and a couple other nice touches like that.

\- With a search icon I expect a text box to type a search. Consider a different icon for browsing/exploring by location. \- You use the wrong iOS transition in a couple places for modal dialogs. Nit.

\- Once I used the service and understood how it works I wanted to add my twitter and instagram accounts to get even more into my journal. I suspect this is a natural reaction and would be a better place to offer account creation or Facebook integration (gasp).

\- There's a screen that talks about "Friend Requests" but doesn't have any clear way to do that. Coming soon or nuke the field when there aren't any friend requests.

\- This could crush Facebook. Not in the short term but if you create a timeline that is more personally valuable to people they will be far more likely to use it and share it with friends and family. Your timeline is already far more interesting then my "Wall."

\- Keep it up. Can't wait to see the updates.

<comment><AUTHOR> This is so incredibly helpful. Thank you.

Nice find on the iOS transition. Search isn't is a good place, but eventually we want to do real search, so the current functionality can be considered a place holder. Unfortunate, but you have to launch some time. =)

Can you tell me more about what you mean when you say "Friend Requests? We shouldn't have any friend requests.

<comment><USER7> When you open search you see a table section header that reads "Friend Requests" I don't have any friend request but the presence of the header made me go looking for this type of functionality.

Other notes: \- This morning I wanted to add a journal entry for the day. I looked for a compose button but it seems like that's only possible for things that are system created. \- I like the time-travel area and local push. That's nice and seems better then TimeHop \- I saw a couple things on my timeline that I wanted to delete. Swipe to delete didn't work, neither did tap and hold. Tapping the photo and dragging it into the lower shelf seemed really broken. (I later discovered I could swipe delete from the description, this took some exploration to discover)

Shoot me an email if you like.... email@example.com

</comment></comment></comment><comment><USER8> Wow. I rarely download this stuff. But the fact that it claims to be automatic piqued my interest.

After downloading it I can say that my first impression is shocked. Shocked that I really liked it.

I think what I love about it is that it's not social. It lets me relive my recent past. It includes some photos of my kids that I wouldn't put on Facebook, for example. That leads to a much more intimate experience of my past.

<comment><AUTHOR> Thanks so much for the feedback! I'd love to learn about what we can do better for you!

</comment></comment><comment><USER9> The only thing that would attract me to a "personal archive" product is being able to completely and totally own it. I want to have ownership not just over my data, but also of its presentation. If you decide you want to redesign the app and I hate it, then all of my previous time and energy is wasted.

This product immediately asserts, 'use me forever', but everything about the project says 'we raised money, and who knows how this will play out.' It always frustrates me that companies are willing to gloss over that obvious conflict when entering in to such a potentially long commitment with their users.

I don't mean to be overtly negative, but instead just want to point out something you may have overlooked. I would expect that you want to attract users who don't take these choices lightly, right?

<comment><AUTHOR> I feel the same way. That's why we spent time building it so that all of your data lives fully on your device (it's synced to our servers for backup purposes, which you can switch off). So even if we run out of money, you can still use Heyday forever.

But less factually, I'm in love with this product and I intend to work on it for the rest of my life. Even for free.

<comment><USER9> I certainly appreciate the boldness of your personal commitment. You should add that to the site somehow.

</comment></comment></comment><comment><USER10> Ever since I started grad school in 2011 I've been thinking about needing an app to remember things. I reead about Personal Knowledge Bases. I proposed making this our innovation in my Tech Venturing class, but my group ended up going with Automated Parking Garages...

In my Cloud Computing class we had to make an Elastic Beanstalk scalable web app. I had a bit of experience with MySQL and PHP and found out about TiddlyWiki and a side project called ccTiddly which was a PHP/MySQL implementation of TiddlyWiki that stores the tiddlers in the database so you can run it as a webserver rather than transferring around the html file. I actually started attempting to convert it to SimpleDB to accomplish the project task, but ended up going with a more simple application from scratch.

I still use ccTiddly, but I'm pretty lazy with my usage, and I'm also lazy in learning how to code applications myself. I also created an account on TiddlySpace, which is a more successful python implementation of TiddlyWiki as a web server. It allows people to share their tiddlers between accounts as well as store and expert their tiddly wikis within the cloud. It is available open source, but I had trouble trying to set up my own :(

I just installed this on my iPhone. I have been looking for this. I've been so desperate for this I've been contemplating creating it myself. We need more innovation in the ability to store and recall information. If we can make it easy to automatically organize the massive amount of information about people, experiments, finances, health, etc, whatever kind of knowledge you normally have to remember with difficulty or re-google all the time. I think this is also highly tied to keeping good track of resources on the internet. What if you could bring together information about all the services you use into one private location and keep track of what you need to know?

One of the inspiring things I read about when delving into thought about this topic was the Memex:

[http://alpha.uhasselt.be/jan.vandenbussche/actueletrends_121...](http://alpha.uhasselt.be/jan.vandenbussche/actueletrends_1213/still_memex.pdf)

</comment><comment><USER11> The tile is so vague, please:

         ShowHN: I've launched an app I've worked on for almost 2 years.
         ShowHN: I've launched my iPhone journal app I've worked on for almost 2 years.

<comment><AUTHOR> Fixed, thanks!

</comment></comment><comment><USER12> I got the biggest smile on my face when I saw pictures I had already taken get pulled into your app right after launching for the first time. It was so easy to add a note to pictures I had already taken. Immediate engagement win.

By the way, your sign-up introduction flow is awesome. I love how all the permissions I granted (location, photos) had context as to why I gave them. That's a huge deal, since most apps just ask for what they need on immediate startup and I always get really annoyed. More apps should emulate this design!

Awesome work!

<comment><AUTHOR> Thank you! We did it the naive way at first. We iterated to the current the sign up flow to maximize the opt in rate, so not quite brilliant design, just lots of iterating! =)

</comment></comment><comment><USER13> I love that I didn't have to do anything and I already had a journal from my old photos. Very compelling. Overall on-boarding fantastic.

I also really appreciate that its a private journal. Sick of sharing.

<comment><AUTHOR> Thanks, would love to hear more as you use it, there's lots to be improved!

</comment></comment><comment><USER14> I love the idea. I have a _terrible_ memory, and when people ask me "remember when were at ____ on ____?". My answer, every time, is no.

If only I had an iPhone...

</comment><comment><USER15> Congrats! I'm on a plane now so haven't been able to download but it looks like it addresses the major complaint I have about journaling apps (i.e. Day One, which I use and, for the most part, love) -- which is that if you forget/are too busy/get behind, the queue just gets bigger and bigger and more overwhelming.

I go through phases with Day One where I write every day, but sometimes I'm just too busy and instead take pics. But then you have to manually add, tag, geo-locate, and it still gets overwhelming.

If this addresses that, you've got a convert on your hands! (and probably many more...)

Congrats!

<comment><AUTHOR> This is exactly why we built Heyday! Please try it, I think you'll love it. =)

<comment><USER15> Downloaded. Looks great so far!

One question: is it possible to add an entry without either changing locations or adding a picture? I can't seem to just add a "normal" note...?

</comment></comment></comment><comment><USER16> I love it, its simple, automatic and it does exactly what I want. The initial tutorial is awesome - great idea! But...

I was quite disappointed when I read here, that you're actually downloading(syncing) all data to your cloud automatically. I would expect you to ask me also, in that brilliant tutorial, if I want to save my data to the cloud, since as you have mentioned, you're operating with the most sensitive data. As a result I found photos, which I really rather have in my pocket than somewhere on cloud.

</comment><comment><USER17> Good for OP admitting they spent more than a weekend or 2 weeks on a project. Most of what we see posted boasts about how quickly they did it.

</comment><comment><USER18> I had to create a account to comment here. I'm not the kind of person who likes this kind of app: Personal Journal, track activities, photo collages and so on.

HOWEVER, my sister is my opposite and SHE LOVED IT. She has a local (brazil) FB group of moms and first time mothers. The group has 3k members I think. She'll probably recommend it.

</comment><comment><USER19> Amazing work, incredible on-boarding experience. Opening the app for the first time and having the past few days already perfectly chronicled for me felt truly magical. Maybe I just got lucky, but I felt like the combination of my photos, geolocation data, and time data was perfect. Thanks for showing!

<comment><AUTHOR> Thanks for trying it out and the feedback! When the stars align Heyday can be really magic.

</comment></comment><comment><USER20> Why is it free? I would've paid for this. Does advertising net you more profit in the long run?

<comment><AUTHOR> We're going to be a freemium product. Advertising would be a terrible business model given how sensitive the data we're going to have is.

<comment><USER20> Why did you spend 2 years of your life on this to give it away for free? It sounds like you don't want to benefit from this in any way, monetarily, which is interesting.

Much respect. I'm only curious...

EDIT: Whoops, I misunderstood the meaning of freemium.

<comment><AUTHOR> Freemium is how things like Dropbox and Evernote make money, and they seem to be doing okay. =)

<comment><USER21> Hey Blader - Freemium is typically used for a landgrab, but only when there's a very specific monetization plan in place to leverage the "leads" (free users). I'm a bit concerned that you're not first to market and going straight to free. Do you have monetization thought out?

Here's a good article to consider: [http://blog.priceintelligently.com/blog/bid/188339/Screw- Fre...](http://blog.priceintelligently.com/blog/bid/188339/Screw-Freemium-Use- a-Free-Trial)

</comment></comment></comment></comment></comment><comment><USER22> Awesome app! But I am going to echo same concern as tomahertus and so many others on this page:

[https://news.ycombinator.com/item?id=6858853](https://news.ycombinator.com/item?id=6858853)

"""

I was quite disappointed when I read here, that you're actually downloading(syncing) all data to your cloud automatically. I would expect you to ask me also, in that brilliant tutorial, if I want to save my data to the cloud, since as you have mentioned, you're operating with the most sensitive data. As a result I found photos, which I really rather have in my pocket than somewhere on cloud.

"""

</comment><comment><USER23> Congratulations on the launch! The app looks beautiful and the fact that it automatically does all of this for you is pretty cool. Anyway, I was wondering, are you guys funded at all? You seem to have a pretty big team. Just curious!

<comment><AUTHOR> Thank you! We did raise a seed round from some investors. It was $2M and from a bunch of people: [https://angel.co/hey](https://angel.co/hey)

<comment><USER23> Right on! Looks like a good group behind you. Any plans for an Android version?

<comment><AUTHOR> Yes! As soon as we make the product great on iPhone.

</comment></comment></comment></comment><comment><USER24> This app looks great. The comments seem to be very encouraging and blader seems to have his/her head in the right place.

I really like the whole "keeping your own data" part. I'm probably too disconnected to normal smartphone users to know whether or not that point would resonate with them, but it certainly did with me. It's not really advertised on the front page. Not sure if that's a good thing or a bad thing. We may all be in an HN thought bubble :)

I'm not a smartphone user, but something like this makes me want to get an iphone...

Nice work!

</comment><comment><USER25> When I read the title I got concerned that you worked on something for 2 years without testing the market with a quick prototype, but looking at your site I'd say your likely to succeed. Excellent execution!

</comment><comment><USER26> This is great! I could definitely see myself using this if my life was more interesting than home -> work -> home (mon-fri).

And if weather permits, home -> beach -> home (weekends).

<comment><USER27> I work from home (home -> home -> bar -> home).

<comment><USER28> I work from home and brew my own beer. (home -> home -> home -> home)

</comment></comment></comment><comment><USER29> Here's an interesting example of where time to market really matters. I've had Memoir since upgrading to iOS7, and I'm pretty happy with it. So it feels like you're late to the party by several months. Bit of a bummer since it sounds like you put a lot of effort in.

Conversely, when Memoir came out, they couldn't handle their anticipated scale, but they got their foot in the door. Seems to be a good case for "just shipping it".

<comment><AUTHOR> That's cool. I use Memoir too, and it's a great app. I think you'll find that Heyday does things a little differently and is good for other use cases, like traveling or keeping a journal.

<comment><USER30> I see Memoir has a fairly rubbish review score on itunes (3.5/5) whereas Heyday looks good (4.5)

</comment></comment></comment><comment><USER31> Beautiful app! It was a no-brainer setup and just worked! It so happened, I was listening to spotify while installing this app and it automatically pulled images and built a nostalgic video for me from the pictures I had stored! Just for that feature alone, I would use it. May be you can think about "centering" pictures and avoid zooming into dull areas etc.

But great inspiring job! Congrats!

<comment><AUTHOR> Thank you! We're working on exactly that - detecting nice faces and features in your photos to make them look better in your collages and slideshow.

<comment><USER31> Awesome! Look forward to it.

</comment></comment></comment><comment><USER32> Congrats on the launch, Siqi and team. Beautiful app.

<comment><AUTHOR> Thanks Ryan! Appreciate the support.

</comment></comment><comment><USER33> This app is awesome.

Question for developers: How can I delete stuff that you automatically journal? For example, I take pictures of white boards in meetings. I don't want them in my journal. I'd like my journal to be curated for future viewing.

Also, feature request: password protection. I don't anyone with access to my phone to be able to open the app.

<comment><AUTHOR> You can swipe right on the title of any moment to delete it. =)

Passcode is coming, it's a pretty frequently requested feature.

</comment></comment><comment><USER34> I've used it and the first time I immediately saw benefit. Key awesome features include: intuitive design, really easy to share, and it's definitely something that could compete against a lot of photo apps out there that don't make it NATURAL to share and curate your photos.

Android soon?

<comment><AUTHOR> Thank you so much for the kind words. We're working on way better automatic photo beautifiers (scene/face detection + automatic cropping).

</comment></comment><comment><USER35> 60 seconds in and it looks fantastic.

Awesome launch / onboarding process. You explained each permission just before asking for it. So well done.

Suggestion -- can you use the M7 chip to detect when I've walked / run a distance worth remembering?

<comment><USER36> Hi Rob, Employee @ Heyday here -- while i can't promise anything M7 support is definitely on our radar :)

-Yi

</comment></comment><comment><USER37> She's a beaut, nice work. I'm sure the NSA will greatly appreciate this also.

<comment><AUTHOR> If you disable syncing it's as secure as your device is ... which is to say probably not that secure. =(

<comment><USER26> Security against NSA/espionage really shouldn't be a concern considering nobody that paranoid would even use this app, let alone pay for it.

<comment><USER3> Nobody that paranoid should use an iPhone. Or any phone, actually...

</comment></comment></comment></comment><comment><USER38> One thing that I've always liked about OhLife is that they send me an email everyday to keep track of my journal entries, anyway of integrating that in? I keep a zero inbox so this works out for me really well.

<comment><AUTHOR> Yes! You should be getting a notification every so often to surface a nice memory or remind you to write. This is kind of annoying right now, but we're making it better!

</comment></comment><comment><USER39> Excellent app. Free idea - Have an in-app purchase to have a hard cover printed journal for every year. Having a journal in a smartphone is good but a hard cover print gives a different feeling to those memories.

<comment><USER40> I thought the same - similar to what Paper does with their journals.

</comment></comment><comment><USER41> Curious to know how you and other people on HN think about how this stacks up to existing journaling apps, like Day One and Memoir. Do you see it replacing Day One or complementing other apps like that?

<comment><AUTHOR> I'm a fan of both of those products. I think different people are going to like different things. Heyday isn't the best product for very introspective people to write about their lives (we actually don't even let you write a new text note right now!), so DayOne is probably going to be better for people like that.

For people who are lazy, travel a lot, and take a lot of photos, Heyday is the best product for those people. Of this I'm fairly sure.

<comment><USER41> I totally get that. From playing with Heyday for a few minutes I noticed that it's not a replacement, but it's a great way to consolidate photos.

</comment></comment></comment><comment><USER42> Just downloaded. Looks great so far! I think you the entire idea of photo collages, filters, mashed with geolocation is simply cool here.

</comment><comment><USER43> Great job! One of the best I've played with in a while. Apple needs to pay attention, iOS natively should have something like this.

</comment><comment><USER44> Fantastic. Great job. Also, well done for sticking to a side project for so long and releasing it, that's rare.

<comment><AUTHOR> Thanks! To be clear, I didn't mean to imply that it's a side project. We've been working on it as a team of 2-9 for the past 18 or so months.

</comment></comment><comment><USER45> Looks great! I wish I could use it on my phone, which is an android (galaxy note ii.)

</comment><comment><USER46> I am floored by you weaving feature explanations with permission grants. That is art.

<comment><USER13> Totally agree. Super-elegant. Often the permission grant seems like you're doing the app a favor. In this case it seemed like the app was doing you a favor.

<comment><USER46> Sort of... though just to nit-pick a bit, an application should never feel like it's doing you a favor (Heyday doesn't). It should feel like it completely defers to you. But we agree.

</comment></comment></comment><comment><USER47> Digging this. Great organization, photo layouts, filters: great presentation overall.

</comment><comment><USER48> It's a beautiful app, and I like just about everything about it.

Generally, when I look at apps like this, I immediately think of ways I could be doing it better (often, I'm wrong, but nevermind that) -- but with this, it seemed like everything I thought of was in the very next screenshot as I scrolled through.

It looks great (thought I would make the logo on the website much bigger -- probably twice as large). The site is fantastic -- and I especially love being able to flick through the iphone on the page.

I'm an Android user, so I can't check the app proper, but I'd expect good things from it from what I see. Congratulations on shipping.

<comment><AUTHOR> Thank you so much, that's such a nice compliment to our team. We're working on Android as soon as we can, but we're a very small team of 9 people.

<comment><USER49> Any plans to release for Windows Phone?

<comment><AUTHOR> None at the moment, the numbers just don't make sense for our very small team right now. =(

</comment></comment></comment></comment><comment><USER50> I shouldn't have pre-judged this app. I actually really like it.

</comment><comment><USER51> Why did you build this? I'm curious about your motivation.

</comment><comment><USER52> Wow, really beautifully done. Simple, elegant, useful, and fun.

<comment><AUTHOR> Thank you, all credit goes to our amazing team: [http://www.hey.co/about](http://www.hey.co/about)

</comment></comment><comment><USER53> I am very impressed.

</comment><comment><USER54> Just saw it got featured on the app store, nice work!

</comment><comment><USER55> Would be sweet to see the stats of the launch!

</comment><comment><USER56> Is there a backup or data download function?

<comment><AUTHOR> We do sync the data to our servers, which you can switch off. We've engineered it so that if you just want to keep the data on your phone, the app will still work fine, and you can rely on your iTunes/iCloud backups.

<comment><USER27> Any plans for a kind of "export"? I like this idea a lot, as someone with a terrible memory but that doesn't use social media like Foursquare. I would only worry about a way to have my data permanently. Outside of the app which could be pulled from the AppStore at any time.

<comment><USER3> Engineer @heyday here. We've already got an export-to-json prototype, but it's not quite ready for the public yet. And of course we want to export into a beautiful format for the average user as well.

<comment><USER30> Export to html would be nice so it could look pretty in my laptop browser.

</comment></comment></comment></comment></comment><comment><USER57> Excellent work, super polished app!

</comment><comment><USER58> Commenting in thread for when OP becomes a millionaire. Calling it right now.</comment>


Rolling Stone Profile of XKCD's Randall Munroe - <AUTHOR> http://www.rollingstone.com/culture/features/xkcd-cartoonist-randall-munroe-what-if-20140902

<comment><USER2> I almost didn't click on this, because Rolling Stone, but it's actually pretty good. If you're an xkcd fan then definitely go ahead and read it.</comment>


Current use of Linux in spacecraft flight software (2017) - <AUTHOR> https://www.researchgate.net/publication/321788741_Current_use_of_linux_in_spacecraft_flight_software <comment><USER2> This is my favorite quote:

> "During the mission, a problem in the Linux system was discovered that > caused a temporary loss of control. A comma-separated values file grew out > of bounds due to a bug, causing the system to halt; fortunately, a > radiation-induced single-event effect caused the main computer to reboot, > temporarily fixing the problem, and allowing a bug fix to be applied in > orbit. After the bug fix, the solar sail deployment was successfully > performed - just in time before the low-flying satellite deorbited".

G. Manyak and J. M. Bellardo, "Polysat's next generation avionics design," in Space Mission Challenges for Information Technology (SMC-IT), 2011 IEEE Fourth International Conference on, Aug 2011, pp. 69–76. [Online]. Available: [http://dx.doi.org/10.1109/SMC-IT.2011.13](http://dx.doi.org/10.1109/SMC- IT.2011.13)

[22] R. Ridenoure, R. Munakata, A. Diaz, S. Wong, B. Plante, D. Stetson, D. Spencer, and J. Foley, "LightSail program status: one down, one to go," in Proceedings of the AIAA Small Satellite Conference, SSC15-V-3, 2015.

<comment><USER3> Funny seeing this on HN. I worked at PolySat until 2010 (a year before that article was published), so I know most of those names.

When I worked there, our avionics was embedded C on bare metal. We had several problems we were trying to solve when we realized that switching to embedded Linux makes solving them easier. We wanted to abstract away from the hardware to be able to make more use of automated testing. Switching to Linux meant we didn't have to build our own HAL. For the algorithms I was working on, I wanted to do more of my development on a Linux system. And we saw it as a way to make on-orbit patches easier. I wasn't involved in making the transition to Linux though. That effort started around the time that my focus shifted to my master's thesis.

</comment></comment><comment><AUTHOR> Originally, the ZDNet article "From Earth to orbit with Linux and SpaceX" caught my attention ([https://www.zdnet.com/article/from-earth-to-orbit-with- linux...](https://www.zdnet.com/article/from-earth-to-orbit-with-linux-and- spacex/), June 3, 2020). A little searching turned up this research paper, which investigates a range of vehicles beyond Falcon 9.

<comment><USER4> > The Dragon spacecraft also runs Linux with flight software written in C++. > The ship's touchscreen interface is rendered using Chromium and JavaScript.

I'm actually shocked by this statement. I would never trust JavaScript on a spacecraft.

<comment><USER5> Genuine question - why?

IMHO, most of the flak javascript gets is primarily due to 2 reasons -

1\. Using javascript indiscriminately

2\. Using javascript frameworks to a point where it becomes it's own universe and people end up with blinders unable to see anything else.

In both these cases, the issue is not as much as with the language as with the people (ab)using it.

<comment><USER6> I'm disturbed you should ask. Several answers but for me the main one is simplicity (lack of it).

Add to that, lack of explicit memory handling and dynamic typing _at least_. You could say you could use a small subset of the language, in which case you'd have to enforce that subset only is used, in which case you'd strip out the unused stuff from the language, and then you don't have javascript any more.

</comment></comment></comment></comment><comment><USER7> So that's why there's no sound in space.

<comment><USER8> Audio-Less Space Agency

</comment></comment><comment><USER9> > SpaceX uses ordinary electronics parts in their flight electronics, as > opposed to ded- icated radiation-hardened parts, since systems can be made > radiation-tolerant with re- dundancy, and commercial off-the-shelf components > are easier to work with.

Something about this confuses me -- for years, I'm assuming since the earliest days of human spaceflight, the convention has been to used radiation-hardened hardware, yes?

I absolutely see the benefits of _not_ using this expensive, unfamiliar, specialized hardware when you can instead use cheap, well-known, store-bought CPUs that everyone is familiar with and knows how to use.

But... how do you solve the original problem? Does it turn out that radiation is not that big of an issue after all? Is it a big deal, but SpaceX found a workaround? Do you have three CPUs all running the exact same computations and you assume there was no impact from radiation if at least 2/3 give the same result?

It makes me somehow both extremely satisfied, and a little jittery, to know we just flew two humans to the space station on off-the-shelf CPUs :)

<comment><USER2> No, SpaceX did the exact same thing the shuttle did. 3 normal RtLinux Intel boxes running the very same model, with one hardened controller comparing the results. This can run at much higher CPU frequencies to get the required controller speed and HW latencies. This is just for low orbit and very short missions.

The longer the missions, the higher the orbit, the more radiation fallouts then. The Moon or Mars missions would need to fall back to hardened CPU's and RAM, but there's not much need for high speed controllers there. Just reliable reboots. 200Mhz is enough. The controller high speed is mostly needed for the earth gravity. Up there it's much more relaxed.

</comment></comment><comment><USER10> Two more recent ones beyond Earth orbit:

The MarCO cubesats that flew past Mars in 2018 used Linux and Python with an off-the-shelf single board computer and camera: [https://arc.aiaa.org/doi/pdf/10.2514/6.2016-2491](https://arc.aiaa.org/doi/pdf/10.2514/6.2016-2491)

The Mars 2020 rover launching next month carries a helicopter that contains a phone SoC running Linux: [https://rotorcraft.arc.nasa.gov/Publications/files/Balaram_A...](https://rotorcraft.arc.nasa.gov/Publications/files/Balaram_AIAA2018_0023.pdf)

</comment><comment><USER11> Their pdf won't load on my phone. No matter:

[https://sci-hub.tw/10.1109/MAES.2017.160182](https://sci- hub.tw/10.1109/MAES.2017.160182)</comment>