67 Matching Annotations
  1. Jan 2026
    1. The Mathematica notebook is the more coherently designed, more polished product—in large part because every decision that went into building it emanated from the mind of a single, opinionated genius. “I see these Jupyter guys,” Wolfram said to me, “they are about on a par with what we had in the early 1990s.” They’ve taken shortcuts, he said. “We actually want to try and do it right.”

      Desde mediados/finales de los noventas no uso Mathematica, e incluso en ese momento era un gran sistema, altamente integrado y coherente. Sin embargo, en la medida en que me decanté por el software libre, empecé prontamente a buscar alternativas e inicié con TeXmacs, del cual traduje la mayor parte de su documentación al español, como una de mis primeras contribuciones a un proyecto de software libre (creo que aún la traducción es la que se está usando y por aquella época usábamos SVN para coordinar cambio e incluso enviábamos archivos compresos, pues el control de versiones no era muy popular).Por ejemplo el bonito y minimalista Yacas, con el que hiciera muchas de mis tareas en pregrado y colocara algunos talleres y corrigiría parciales cuando me convirtiese en profesor del departamento de Matemáticas

      TeXmacs, a diferencia de sistemas monolíticos como Mathematica, se conectaba ya desde ese entonces con una gran variedad de Sistemas de Álgebra Computacional (o CAS, por sus siglas en inglés) exponiéndonos a una diversidad de enfoques y paradigmas CAS, con sus sintaxis e idiosincracias particulares, en una riqueza que Mathematica nunca tendrá.

      TeXmacs también me expondría a ideas poderosas, como poder cambiar el software fácilmente a partir de pequeños scripts (en Scheme), que lo convirtieron en el primer software libre que modifiqué, y las poderosas S-expressions que permitían definir un documento y su interacción con CAS externos, si bien TeXmas ofrecía un lenguaje propio mas legible y permitía pasar de Scheme a este y viceversa.

      En general esa es la diferencia de los sistemas privativos con los libres: una monocultura versus una policultura, con las conveniencias de la primera respecto a los enfoques unificantes contra la diversidad de la segunda. Si miramos lo que ha ocurrido con Python y las libretas computacionales abiertas como Marimo y Jupyter, estos han ganado en la conciencia popular con respecto a Mathematica y han incorporado funcionalidad progresiva que Mathematica tenía, mientras que otra sigue estando aún presente en los sistemas privativos y no en los libres y viceversa. Yo no diría que las libretas computacionales libres están donde estaba Mathematica en los 90's, sino que han seguido rutas históricas diferentes, cada una con sus valores y riquezas.

    2. “I think what they have is acceptance from the scientific community as a tool that is considered to be universal,” Theodore Gray says of Pérez’s group. “And that’s the thing that Mathematica never really so far has achieved.” There are now 1.3 million of these notebooks hosted publicly on Github. They’re in use at Google, Bloomberg, and NASA; by musicians, teachers, and AI researchers; and in “almost every country on Earth.”
    3. Out of the box, Python is a much less powerful language than the Wolfram Language that powers Mathematica. But where Mathematica gets its powers from an army of Wolfram Research programmers, Python’s bare-bones core is supplemented by a massive library of extra features—for processing images, making music, building AIs, analyzing language, graphing data sets—built by a community of open-source contributors working for free. Python became a de facto standard for scientific computing because open-source developers like Pérez happened to build useful tools for it; and open-source developers have flocked to Python because it happens to be the de facto standard for scientific computing. Programming-language communities, like any social network, thrive—or die—on the strength of these feedback loops.
    4. In early 2001, Fernando Pérez found himself in much the same position Wolfram had 20 years earlier: He was a young graduate student in physics running up against the limits of his tools. He’d been using a hodgepodge of systems, Mathematica among them, feeling as though every task required switching from one to the next. He remembered having six or seven different programming-language books on his desk. What he wanted was a unified environment for scientific computing.

      Como he documentado en mi blog, antes de Grafoscopio, mis primeros intentos por crear flujos y herramientas de documentación interactiva a medida fueron en IPython, pero me cansé de lidiar con la complejidad incidental del stack con el que IPython y luego Jupyter estaban hechos, encontrando en Pharo Smalltalk una plataforma más coherente, simple, entendible y adaptable.

      Como he explicado en otros apartados, si bien Grafoscopio mezcla herramientas distintas de nuestros flujos de documentación y publicación, ahora Cardumem surge con la idea de crear una interfaz web y una experiencia unificada para las integraciones, con una sintaxis minimalista y sin los requerimientos conceptuales de la programación orientada a objetos.

  2. Dec 2023
  3. Oct 2023
  4. May 2023
  5. Jan 2023
  6. Dec 2022
  7. Nov 2022
  8. Oct 2022
    1. https://www.loom.com/share/a05f636661cb41628b9cb7061bd749ae

      Synopsis: Maggie Delano looks at some of the affordances supplied by Tana (compared to Roam Research) in terms of providing better block-based user interface for note type creation, search, and filtering.


      These sorts of tools and programmable note implementations remind me of Beatrice Webb's idea of scientific note taking or using her note cards like a database to sort and search for data to analyze it and create new results and insight.

      It would seem that many of these note taking tools like Roam and Tana are using blocks and sub blocks as a means of defining atomic notes or database-like data in a way in which sub-blocks are linked to or "filed underneath" their parent blocks. In reality it would seem that they're still using a broadly defined index card type system as used in the late 1800s/early 1900s to implement a set up that otherwise would be a traditional database in the Microsoft Excel or MySQL sort of fashion, the major difference being that the user interface is cognitively easier to understand for most people.

      These allow people to take a form of structured textual notes to which might be attached other smaller data or meta data chunks that can be easily searched, sorted, and filtered to allow for quicker or easier use.

      Ostensibly from a mathematical (or set theoretic and even topological) point of view there should be a variety of one-to-one and onto relationships (some might even extend these to "links") between these sorts of notes and database representations such that one should be able to implement their note taking system in Excel or MySQL and do all of these sorts of things.

      Cascading Idea Sheets or Cascading Idea Relationships

      One might analogize these sorts of note taking interfaces to Cascading Style Sheets (CSS). While there is the perennial question about whether or not CSS is a programming language, if we presume that it is (and it is), then we can apply the same sorts of class, id, and inheritance structures to our notes and their meta data. Thus one could have an incredibly atomic word, phrase, or even number(s) which inherits a set of semantic relationships to those ideas which it sits below. These links and relationships then more clearly define and contextualize them with respect to other similar ideas that may be situated outside of or adjacent to them. Once one has done this then there is a variety of Boolean operations which might be applied to various similar sets and classes of ideas.

      If one wanted to go an additional level of abstraction further, then one could apply the ideas of category theory to one's notes to generate new ideas and structures. This may allow using abstractions in one field of academic research to others much further afield.

      The user interface then becomes the key differentiator when bringing these ideas to the masses. Developers and designers should be endeavoring to allow the power of complex searches, sorts, and filtering while minimizing the sorts of advanced search queries that an average person would be expected to execute for themselves while also allowing some reasonable flexibility in the sorts of ways that users might (most easily for them) add data and meta data to their ideas.


      Jupyter programmable notebooks are of this sort, but do they have the same sort of hierarchical "card" type (or atomic note type) implementation?

  9. Aug 2022
  10. Apr 2022
  11. Mar 2022
  12. Dec 2021
  13. May 2021
    1. Matrix Algebra with Computational Applications e-book offered by Michigan State University. It's a lovely book, and what stood out about it was the way it used PressBooks for distribution as an open e-book, and how it embedded Jupyter Notebook in with the text.

      example of a OER textbook with an embedded Jupyter Notebook. I've wanted to noodle around with this myself.

  14. Mar 2021
    1. I don't like notebooks.- Joel Grus (Allen Institute for Artificial Intelligence)

      Because it teaches scientists bad programming habits:

      • no modularity (but result depend on order of evaluation)
      • no testabilty
      • cannot view code without opening jupyter
      • missing history (ok %history works) untitled24.ipynb
  15. Feb 2021
  16. Jan 2021
    1. Did you know that everything you can do in VBA can also be done in Python? The Excel Object Model is what you use when writing VBA, but the same API is available in Python as well.See Python as a VBA Replacement from the PyXLL documentation for details of how this is possible.

      We can replace VBA with Python

    2. Use the magic function “%xl_get” to get the current Excel selection in Python. Have a table of data in Excel? Select the top left corner (or the whole range) and type “%xl_get” in your Jupyter notebook and voila! the Excel table is now a pandas DataFrame.

      %xl_get lets us get the current Excel selection in Python

  17. Oct 2020
  18. Sep 2020
  19. May 2020
    1. If running the server blocks the main thread, then it’s not possible to execute additional code cells without manually interrupting the execution of the kernel.JupyterDash resolves this problem by executing the Flask development server in a background thread. This leaves the main execution thread available for additional calculations. When a request is made to serve a new version of the application on the same port, the currently running application is automatically shut down first. This makes is possible to quickly update a running application by simply re-executing the notebook cells that define it.

      How Dash can run inside Jupyter Notebooks

    2. Then, copy any Dash example into a Jupyter notebook cell and replace the dash.Dash class with the jupyter_dash.JupyterDash class.

      To use Dash in Jupyter Notebooks, you have to import:

      from jupyter_dash import JupyterDash
      

      instead of:

      import dash
      

      Therefore, all the imports could look like that for a typical Dash app inside a Jupyter Notebook:

      import plotly.express as px
      from jupyter_dash import JupyterDash
      import dash_core_components as dcc
      import dash_html_components as html
      from dash.dependencies import Input, Output
      
    1. For many data scientists, the finished product of a work session is a business analysis. They need to show team members—who oftentimes aren’t technical—how their data became a specific recommendation or insight.

      Usual final product in Data Science is the business analysis which is perfectly explained with notebooks

  20. Apr 2020
    1. This kind of “exploring” is easiest when you develop on the prompt (or REPL), or using a notebook-oriented development system like Jupyter Notebooks

      It's easier to explore the code:

      • when you develop on the prompt (or REPL)
      • in notebook-oriented system like Jupyter

      but, it's not efficient to develop in them

    2. notebook contains an actual running Python interpreter instance that you’re fully in control of. So Jupyter can provide auto-completions, parameter lists, and context-sensitive documentation based on the actual state of your code

      Notebook makes it easier to handle dynamic Python features

    3. They switch to get features like good doc lookup, good syntax highlighting, integration with unit tests, and (critically!) the ability to produce final, distributable source code files, as opposed to notebooks or REPL histories

      Things missed in Jupyter Notebooks:

      • good doc lookup
      • good syntax highlighting
      • integration with unit tests
      • ability to produce final, distributable source code files
    4. Exploratory programming is based on the observation that most of us spend most of our time as coders exploring and experimenting

      In exploratory programming, we:

      • experiment with a new API to understand how it works
      • explore the behavior of an algorithm that we're developing
      • debug our code through combination of inputs
    1. Reproducibility is an issue with notebooks. Because of the hidden state and the potential for arbitrary execution order, generating a result in a notebook isn’t always as simple as clicking “Run All.”

      Problem of reproducibility in notebooks

    2. A notebook, at a very basic level, is just a bunch of JSON that references blocks of code and the order in which they should be executed.But notebooks prioritize presentation and interactivity at the expense of reproducibility. YAML is the other side of that coin, ignoring presentation in favor of simplicity and reproducibility—making it much better for production.

      Summary of the article:

      Notebook = presentation + interactivity

      YAML = simplicity + reproducibility

    3. Notebook files, however, are essentially giant JSON documents that contain the base-64 encoding of images and binary data. For a complex notebook, it would be extremely hard for anyone to read through a plaintext diff and draw meaningful conclusions—a lot of it would just be rearranged JSON and unintelligible blocks of base-64.

      Git traces plaintext differences and with notebooks it's a problem

    1. Visual Studio Code supports working with Jupyter Notebooks natively, as well as through Python code files.

      To run cells inside a Python script in VSCode, all you need to is to define Jupyter-like code cells within Python code using a # %% comment:

      # %%
      msg = "Hello World"
      print(msg)
      
      # %%
      msg = "Hello again"
      print(msg)
      

  21. Mar 2020
  22. Jan 2020
  23. Sep 2019
  24. Jul 2019
  25. May 2019
  26. Jul 2018
  27. Apr 2018
    1. At one point, Pérez told me the name Jupyter honored Galileo, perhaps the first modern scientist. The Jupyter logo is an abstracted version of Galileo’s original drawings of the moons of Jupiter. “Galileo couldn’t go anywhere to buy a telescope,” Pérez said. “He had to build his own.”

      Cool name/logo story!

    2. At every turn, IPython chose the way that was more inclusive, to the point where it’s no longer called “IPython”: The project rebranded itself as “Jupyter” in 2014 to recognize the fact that it was no longer just for Python.

      Such an interesting progression!

  28. Jan 2018
  29. Aug 2017
    1. markdown_display_priority

      I don't know why or when my annotations will be properly applied.

      This is quite confusing. The interface remembers my tag, but not the content of my annotation.

      It does not seem to allow the application of an annotation to text inside of an iframe. This prevents proper testing of hypothes.is as a jupyter notebook annotation tool.

      In some ways it's great, but the interface and user model could use a lot of work. If it allowed annotations inside iframes I'd gladly navigate those rough edges. But without that feature it's hard to justify trying to use this for the purpose of annotating notebooks.

      Hopefully, this can be fixed, in which case I'll edit this annotation to acknowledge that annotation inside iframes works. That would mean the annotation of Jupyter notebooks would be be a process capable of supporting code review on a notebook via GitHub.

  30. Mar 2017
    1. Seco, si bien es una implementación del 2004, tiene varias ideas que son similares a las de Grafoscopio de hoy, incluyendo la persistencia de una imagen (ellos usan HyperGraphDB, pero incluso mencionan Smalltalk), el hecho de ser una aplicación de escritorio y la idea de una computación p2p, o la opción de embeber el motor de rendering de un browser o el browser mismo en un ambiente más rico, incluso la inspiración de los notebooks de mathematica.

  31. Jan 2017