Workspace URL naming pattern

Mike's Notes

I'm working out a pattern to use for naming workspace URLs. This is part of the current build roadmap.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

06/10/2025

Workspace URL naming pattern

By: Mike Peters
On a Sandy Beach: 30/09/2025

Mike is the inventor and architect of Pipi and the founder of Ajabbi.

Logged-in Ajabbi users will be able to use web-based applications called a workspace. Each application requires a URL that follows a predefined pattern.

Again, this is a work in progress and is likely to change, especially when addressing performance, usability, security, and privacy issues.

Here are examples used by other companies.

Google Workspace example URLs

  • https://calendar.google.com/calendar/u/0/r/week
  • https://calendar.google.com/calendar/u/0/r/month
  • https://mail.google.com/mail/u/0/#inbox
  • https://mail.google.com/mail/u/0/#sent
  • https://draft.blogger.com/blog/posts/jsdksjdksJK;Sjk;SJDKsjd/
  • https://draft.blogger.com/blog/post/edit/hhddfddfd/
  • https://docs.google.com/document/d/5fd8f5/
  • https://contacts.google.com/directory
  • https://contacts.google.com/person/123456789/
  • https://groups.google.com/all-groups
  • https://groups.google.com/g/ontolog-forum
  • https://groups.google.com/g/ontolog-forum/c/coj8JqR6nzw

Zoho Office Suite example URLs

  • https://www.zoho.com/mail/
  • https://accounts.zoho.com.au/signin?

Service Now example URLs

  • <instance>.service-now.com/now/cmdb/relationship-health-dashboard/
  • https://www.servicenow.com/docs/bundle/zurich-healthcare-life-sciences/page/product/healthcare-life-sciences/concept/hcls-cto-care-team-portal.html
  • <instance>.service-now.com/now/servicenow-studio/home
  • https://www.servicenow.com/docs/bundle/zurich-application-development/page/administer/ui-builder/concept/ui-builder-overview.html

MuleSoft example URLs

  • https://docs.mulesoft.com/exchange/to-describe-an-asset

Note: The URLs below don't link to anything.

Ajabbi workspace domain

Note: workspace. or app. or cloud. or wsp/ ? I have decided on cloud.

The default naked domain URL is

  • https;//cloud.ajabbi.com/

The user account code name will be added as a URL before the domain.

  • https;//example.cloud.ajabbi.com/

Domain redirection enables

  • https://cloud.example.com/

Ajabbi Workspace proposed available URL patterns

A lot of customisation will be possible for user accounts.

  • https://cloud.ajabbi.com/eng/9/calendar/
  • https://example.cloud.ajabbi.com/eng/9/calendar/
  • https://example.com/cloud/eng/9/calendar/
  • https://example.com/eng-uk/cloud/9/calendar/
  • https://app.example.com/eng-uk/calendar/
  • https://calendar.example.com/eng-uk/
  • https://en.example.com/workspace/calendar/
  • https://fr.example.com/espace/calendrier/

Workspace application directories

Each application has directories associated with different tasks.

Mail

  • inbox/
  • draft/
  • sent/

Some simple examples using mail.

  • https://cloud.ajabbi.com/eng/9/email/inbox/
  • https://cloud.ajabbi.com/eng/9/email/draft/12345678/

Security concerns

Long, meaningless code will be used to name endpoints similar to those used by Google.

    • https;//cloud.ajabbi.com/eng/9/email/draft/hnjsdhtrhxn79snrfusni9c5/

    To do next

    1. Define the code names to use with all the workspace applications
    2. Build some static web-based workspace mockups
    3. Make some examples in other languages and scripts
    4. Share with volunteer testers
    5. Reiterate till people are happy
    6. Build a working demo at
      • https://demo.cloud.ajabbi.com/
    7. Provide a Template Engine template for the Pipi Render Engine to render on demand from the Pipi Deployment Engine.
    8. Automate the deployment of workspaces for logged-in users.

    Ajabbi high-level navigation options

    Mike's Notes

    Ajabbi is the home of Pipi. Today's task has been to think about the common navigation bar used across Ajabbi.com and make it more useful.

    The common navigation bar has been added to the top of this blog website as an experiment.

    Resources

    • Resource

    References

    • Reference

    Repository

    • Home > Ajabbi Research > Library >
    • Home > Handbook > 

    Last Updated

    03/10/2025

    Ajabbi high-level navigation options

    By: Mike Peters
    On a Sandy Beach: 29/09/2025

    Mike is the inventor and architect of Pipi and the founder of Ajabbi.

    Common navigation bar

    The ajabbi.com website uses a common navigation bar across all its subdomain sites. It deliberately resembles a ribbon. It's inspired by PostHog's previous website navigation.

    For logged-in users, a toolbar will be added to each sub-menu.

    The bar comprises 8 menu items, 6 of which are permanent and 2 are contextual. Choosing any permanent menu item brings up a sub-menu and 2 possible contextual menus. There are spaces for a total of 12 contextual menus (6x2).

    Sub-menu

    There is room for up to 8 sub-menu items.

    8 menu items x 8 sub-menu items gives a total of 64 possible sub-menu items.

    Existing permanent menu items (6)

    • Ajabbi.com
    • Learn
    • Community
    • Handbook
    • Foundation
    • Research

    Existing contextual menu items (12 possible)

    • Developer
    • pipiWiki
    • i18n
    • Project
    • Design

    Possible menu items

    • Example
    • i18n
    • API
    • Schema
    • Help
    • Blog
    • Cloud

    Audience

    Are these menu options helpful for website visitors? Who are the groups by audience/task/need?
    • Ajabbi.com (customers)
    • Blog (readers, curious about why)
    • Community (users)
    • Developers (building stuff)
    • Foundation (supporting open-source)
    • Researcher (standards & science behind Pipi)

    Changes to be made to the common navigation bar

    Each menu item choice has 2 contextual items.

    Ajabbi.com

    • Ajabbi.com
      • About
      • Legal
      • Privacy
      • News
      • Press Releases
      • Pricing
    • Blog
    • Community
    • Developer
    • Foundation
    • Research
    • Handbook
      • Ajabbi
      • Handbook
      • Design
      • Documentation
      • Engineering
      • Product
      • Publication
      • Teams
    • Item 2

    Blog

    • Ajabbi.com
    • Blog
      • About
      • Posts
    • Community
    • Developer
    • Foundation
    • Research
    • Item 3
    • Item 4

    Community

    • Ajabbi.com
    • Blog
    • Community
      • Publications
      • Events
      • Whitepapers
      • Newsletters
      • Blogs
      • GitHub
    • Developer
    • Foundation
    • Research
    • Learn
      • Reference
      • Docs
      • Guides
      • Tutorials
      • Demo
    • i18n
      • Languages
      • Downloads

    Developer

    • Ajabbi.com
    • Blog
    • Community
    • Developer
      • Reports
      • Support
      • Tools
      • Translate
    • Foundation
    • Research
    • pipiWiki
      • Recently Added
      • Interaction
      • Toolbox
      • Platform
    • Design
      • Acessibility
      • Components
      • Content
      • Data Visualisation
      • Foundations
      • Objects
      • Style Guide
      • Tokens
      • Usability

    Foundation

    • Ajabbi.com
    • Blog
    • Community
    • Developer
    • Foundation
      • Mission
      • Board
      • Programme
      • Events
      • User Groups
    • Research
    • Item 9
    • Item 10

    Research

    • Ajabbi.com
    • Blog
    • Community
    • Developer
    • Foundation
    • Research
      • Research
      • News & Events
      • People
      • Complex Systems
      • About
    • Schema
    • Item 12

    On a Sandy Beach, database version 2 is underway

    Mike's Notes

    In May, after manually reformatting every page and post of "On a Sandy Beach," I wrote.

    "A blogging module needs to be built and added to Pipi 9 CMS. This could then be used to create blog posts using an underlying database, which could be modified to be more useful."

    Resources

    References

    • Reference

    Repository

    • Home > Ajabbi Research > Library >
    • Home > Handbook > 

    Last Updated

    28/09/2025

    On a Sandy Beach, database version 2 is underway

    By: Mike Peters
    On a Sandy Beach: 28/09/2025

    Mike is the inventor and architect of Pipi and the founder of Ajabbi.

    The datamodel version 2 to support blogging is now being built. It is designed to support On a Sandy Beach. Yesterday, this Blogger post index was scraped and imported to initially populate the database.

    In future, the blogging module will also support other blogs/newsletters, including the Ajabbi Research Monthly Newsletter, which begins next month in October on Substack.

    The new database and blogger will be synced while other jobs are completed, including;

    • The tags need consolidating
    • The same tags will form a topic map and be used across Ajabbi
    • etc

    Data Model version 1 (current)

    • Mike's Note
    • Resources
    • References
    • Repository links
    • Date Updated
    • Title
    • Page Url
    • Author
    • Source publication
    • Date Created
    • Author description
    • Body of the article
    • Tags
    • Comments

    Data Model version 2 (now being built)

    • Title
    • Page Url
    • Site-wide Navigation
    • Site-wide Breadcrumb
    • Mike's Note
    • Author
    • Source publication
    • Date Created
    • Author description
    • Body of the article
    • References
    • Further Reading (replacing References)
    • Articles
    • See Also (cross-links to Ajabbi.com website pages, replacing Repository URL)
    • External Links (replacing Resources)
    • Keywords (replacing Tags)
    • Sharing
    • Updated
    • Forum (replacing Comments)

    The Bitter Lesson

    Mike's Notes

    I found this article written by Rich Sutton in today's Gary Marcus Substack.

    I agree with both Rich and Gary, LLMs don't have a world model, and that's a point of failure. LLMs are great for translating between languages. They are overhyped and contributing to a speculative bubble. There will be tears.

    Resources

    References

    • Reference

    Repository

    • Home > Ajabbi Research > Library > Subscriptions > Marcus on AI
    • Home > Handbook > 

    Last Updated

    27/09/2025

    The Bitter Lesson

    By: Rich Sutton
    Incomplete Ideas: 13/03/2019

    I am seeking to identify general computational principles underlying what we mean by intelligence and goal-directed behavior. I start with the interaction between the intelligent agent and its environment. Goals, choices, and sources of information are all defined in terms of this interaction. In some sense it is the only thing that is real, and from it all our sense of the world is created. How is this done? How can interaction lead to better behavior, better perception, better models of the world? What are the computational issues in doing this efficiently and in realtime? These are the sort of questions that I ask in trying to understand what it means to be intelligent, to predict and influence the world, to learn, perceive, act, and think..

    The biggest lesson that can be read from 70 years of AI research is that general methods that leverage computation are ultimately the most effective, and by a large margin. The ultimate reason for this is Moore's law, or rather its generalization of continued exponentially falling cost per unit of computation. Most AI research has been conducted as if the computation available to the agent were constant (in which case leveraging human knowledge would be one of the only ways to improve performance) but, over a slightly longer time than a typical research project, massively more computation inevitably becomes available. Seeking an improvement that makes a difference in the shorter term, researchers seek to leverage their human knowledge of the domain, but the only thing that matters in the long run is the leveraging of computation. These two need not run counter to each other, but in practice they tend to. Time spent on one is time not spent on the other. There are psychological commitments to investment in one approach or the other. And the human-knowledge approach tends to complicate methods in ways that make them less suited to taking advantage of general methods leveraging computation.  There were many examples of AI researchers' belated learning of this bitter lesson, and it is instructive to review some of the most prominent.

    In computer chess, the methods that defeated the world champion, Kasparov, in 1997, were based on massive, deep search. At the time, this was looked upon with dismay by the majority of computer chess researchers who had pursued methods that leveraged human understanding of the special structure of chess. When a simpler, search-based approach with special hardware and software proved vastly more effective, these human-knowledge-based chess researchers were not good losers. They said that ``brute force" search may have won this time, but it was not a general strategy, and anyway it was not how people played chess. These researchers wanted methods based on human input to win and were disappointed when they did not.

    A similar pattern of research progress was seen in computer Go, only delayed by a further 20 years.

    Enormous initial efforts went into avoiding search by taking advantage of human knowledge, or of the special features of the game, but all those efforts proved irrelevant, or worse, once search was applied effectively at scale. Also important was the use of learning by self play to learn a value function (as it was in many other games and even in chess, although learning did not play a big role in the 1997 program that first beat a world champion). Learning by self play, and learning in general, is like search in that it enables massive computation to be brought to bear. Search and learning are the two most important classes of techniques for utilizing massive amounts of computation in AI research.

    In computer Go, as in computer chess, researchers' initial effort was directed towards utilizing human understanding (so that less search was needed) and only much later was much greater success had by embracing search and learning.

    In speech recognition, there was an early competition, sponsored by DARPA, in the 1970s. Entrants included a host of special methods that took advantage of human knowledge---knowledge of words, of phonemes, of the human vocal tract, etc. On the other side were newer methods that were more statistical in nature and did much more computation, based on hidden Markov models (HMMs).

    Again, the statistical methods won out over the human-knowledge-based methods. This led to a major change in all of natural language processing, gradually over decades, where statistics and computation came to dominate the field. The recent rise of deep learning in speech recognition is the most recent step in this consistent direction. Deep learning methods rely even less on human knowledge, and use even more computation, together with learning on huge training sets, to produce dramatically better speech recognition systems. As in the games, researchers always tried to make systems that worked the way the researchers thought their own minds worked---they tried to put that knowledge in their systems---but it proved ultimately counterproductive, and a colossal waste of researcher's time, when, through Moore's law, massive computation became available and a means was found to put it to good use.

    In computer vision, there has been a similar pattern. Early methods conceived of vision as searching for edges, or generalized cylinders, or in terms of SIFT features. But today all this is discarded.

    Modern deep-learning neural networks use only the notions of convolution and certain kinds of invariances, and perform much better.

    This is a big lesson. As a field, we still have not thoroughly learned it, as we are continuing to make the same kind of mistakes. To see this, and to effectively resist it, we have to understand the appeal of these mistakes. We have to learn the bitter lesson that building in how we think we think does not work in the long run. The bitter lesson is based on the historical observations that 1) AI researchers have often tried to build knowledge into their agents, 2) this always helps in the short term, and is personally satisfying to the researcher, but 3) in the long run it plateaus and even inhibits further progress, and 4) breakthrough progress eventually arrives by an opposing approach based on scaling computation by search and learning. The eventual success is tinged with bitterness, and often incompletely digested, because it is success over a favored, human-centric approach.

    One thing that should be learned from the bitter lesson is the great power of general purpose methods, of methods that continue to scale with increased computation even as the available computation becomes very great. The two methods that seem to scale arbitrarily in this way are search and learning.

    The second general point to be learned from the bitter lesson is that the actual contents of minds are tremendously, irredeemably complex; we should stop trying to find simple ways to think about the contents of minds, such as simple ways to think about space, objects, multiple agents, or symmetries.

    All these are part of the arbitrary, intrinsically-complex, outside world. They are not what should be built in, as their complexity is endless; instead we should build in only the meta-methods that can find and capture this arbitrary complexity. Essential to these methods is that they can find good approximations, but the search for them should be by our methods, not by us. We want AI agents that can discover like we can, not which contain what we have discovered. Building in our discoveries only makes it harder to see how the discovering process can be done

    Data Colada Table of Contents

    Mike's Notes

    Data Colada is a remarkable effort by Uri Simonsohn, Leif Nelson and Joe Simmons on topics such as fake data, research design, meta-analysis, and the reproducibility of science, among others.

    Here is the table of contents of Data Colada.

    Resources

    References

    • Reference

    Repository

    • Home > Ajabbi Research > Library >
    • Home > Handbook > 

    Last Updated

    26/09/2025

    Data Colada Table of Contents

    By: Uri Simonsohn, Leif Nelson and Joe Simmons.
    Data Colada: 26/09/2025

    Thinking about evidence and vice versa.


    Table of Contents

    About Research Design

    About Research Tips

    Comment on media coverage

    Credibility Lab

    Data Replicada

    Discuss own paper

    Discuss Paper by Others

    Effect size

    Fake data

    file-drawer

    Interactions

    Just fun

    Lawsuits

    Meta Analysis

    Music

    On Bayesian Stats

    Opinion

    p-curve

    p-hacking

    Preregistration

    Replication

    Reproducibility

    Researchbox

    Statistical Power

    Teaching

    Unexpectedly Difficult Statistical Concepts

    Further UI customisation

    Mike's Notes

    Something I figured out last night. This will be very easy to implement.

    Resources

    • Resource

    References

    • Reference

    Repository

    • Home > Ajabbi Research > Library >
    • Home > Handbook > 

    Last Updated

    25/09/2025

    Further UI customisation

    By: Mike Peters
    On a Sandy Beach: 25/09/2025

    Mike is the inventor and architect of Pipi and the founder of Ajabbi.

    Enterprise Account

    The various Ajabbi Appl UI will come out of the box with industry-standard language strings used for terms in the ribbon, menus, controls, navigation, and other elements. However, the option of customising these strings will be available for all Enterprise accounts.

    These changes can be saved as a template, shared and applied to any owned Deployment Workspace. The underlying terms still remain and can be easily restored.

    Healthcare example

    In healthcare, SNOMED provides a comprehensive list of terms, ensuring that any healthcare app utilises these terms. But an Enterprise account will be able to override any of these terms. This may be necessary if SNOMED is currently being implemented to replace an existing system. Another example would be healthcare not covered by SNOMED.

    Building like it's 1984: A comprehensive guide to creating intuitive context menus

    Mike's Notes

    This excellent article was originally published on the Height App Blog in 2022. Height is being discontinued. You may need to click on the videos to play them.

    Resources

    References

    • Reference

    Repository

    • Home > Ajabbi Research > Library >
    • Home > Handbook > 

    Last Updated

    24/09/2025

    Building like it's 1984: A comprehensive guide to creating intuitive context menus

    By: Michael Villar
    Height: 01/02/2022

    Michael Villar is the founder and CEO of Height. Height closed September 24, 2025.

    Context menus have existed for decades, from macOS to Windows, from Xerox Parc to the web. They’re a widely understood user interface concept, but many new apps still fail to deliver them at the standard users have come to expect.

    Since the context menu paradigm has existed for so long and is so widespread, users anticipate them to behave in similar ways across platforms and apps. But in reality, they don’t! In fact, each new web app creates their own custom menus, and users have to relearn what is possible and what is not in each app. Moreover, just like with the best animations, a great context menu should feel so intuitive that users don’t even stop to think about it.

    In this post, we’ll go through some of the basics, as well as some more advanced interactions, for building seamless context menus.

    The basics

    Context menus are menus that appear upon user interaction, usually from a right-click or clicking a button. They have many names (pop-up menus, dropdowns, contextual menus), but they usually look pretty similar across different operating systems and apps. What does differ — however — is how they behave during user interactions.

    Note: while context menus also exist on mobile devices, this post will focus desktop menus.

    Historical examples of context menus, from Windows 95 through macOS 12 and Height.app 2021. 

    They may look simple, but context menus can actually be quite intricate. We’ll go through the details one by one to break down the context menu user experience.

    Position menus correctly

    There are two main ways to open a context menu these days: from a right-click, or from a button-click.

    Here’s an example of opening a context menu from our app:

    Most context menus open from a right click.

    If there is enough space, context menus align their top-left corner to the bottom-left of the cursor or button. They’re extremely predictable, as they should be — a user should instinctively know where to move their cursor to next.

    It’s also a nice touch to highlight what the context menu is attached to, so the user clearly understands what their selection will be applied to (see the examples above, where the task and button are highlighted while their menu is open). Look around, and you'll see this is actually also true on macOS and Windows when right-clicking a folder or file.

    Reposition menus as needed

    Menus should auto-position themselves based on available space.

    There are many instances where menus need to be repositioned as they approach an edge of the screen.

    The consensus logic is to position the menu to the opposite side of the origin frame, which basically means inverting the horizontal/vertical axis to align menus.

    Example: if a menu aligns their top-left corner to the bottom-left of a button, but doesn’t have space vertically, we can simply invert the vertical axis. So the menu would align their bottom-left corner to the top-left corner of the button.

    One simple thing to do is monitor the window dimensions and re-layout the menus on the fly, so they can work in any situation.

    Menus should be reoriented as the surrounding space changes.

    Add keyboard navigation

    Type-to-select

    Typing the beginning or part of an option to select it makes keyboard navigation feel slick.

    Though it's so useful and seems obvious, type-to-select is a feature that's often forgotten in newer apps. The most common implementation is to listen for keystrokes and automatically select the first menu item that matches the same prefix. At Height, we build a solution using match-sorter to be more forgiving as people might miss a keystroke when typing fast.

    Keyboard navigation

    Navigating a menu with your keyboard should be predictable and fast.

    Your context menu should be navigable through keyboard shortcuts. This is another one that seems unpredictable on the web these days, yet it's so obvious in retrospect. And of course, a nice little touch is to cycle through the menu when reaching the end of the options.

    Shortcut Action
    Enter Select action
    Select next
    Select previous
    Close submenu
    Open submenu
    Esc Close menu

    Give hints to the user

    Feedback on click

    Give the user subtle confirmation about which action was successful.

    Something that makes context menus special is that they disappear right after being used. Adding some form of feedback after you’ve clicked an action is important to convey to the user that their action was successful. We stole the flashing indication from macOS, but there are many other ways to deliver a similar feeling of confirmation.

    Menu anatomy

    Copy-writing and information architecture might be the most important part of user interface. When it comes to designing the content of a menu, there are a few rules that are easy to follow to stay consistent and feel predictable to an user. Apple does a great job going through best practices around naming and organization menu. A few highlights:

    • Separate menu items with dividers, based on their similarity or relation with each other.
    • Dissecting a context menu's anatomy by type of action.
    • Disable menu items instead of removing them. A user can then discover actions, and be greeted by a menu that looks the same in any context. It’s also clearer to users that an action isn’t supported when it’s greyed out rather than just completely missing.
    • Display shortcuts next to menu items to increase their discoverability.
    • Suffix “…” to menu items that require user input to indicate the user needs to do something.

    Simple and fast transitions

    Animations are often used as transitions from one state to another. They’re important because they help the user understand the link between their actions and their effects.

    Context menus are user interfaces designed for productivity. Speed and predictability are extremely important, and animations can quickly obstruct these goals.

    At Height, we decided to briefly animate the primary context menu, but disable all submenu animations. To us, it gives the user the best of both worlds: a way to better understand how a menu relates to its environment, while keeping complex menus a blast to navigate.

    Intuitive access to submenus

    An interesting problem with submenus is: how do you access them with your cursor before they get disappear? Specifically, you would see this problem when moving your mouse diagonally towards the submenu.

    A naive approach of implementing submenus. In this example, trying to quickly access the "Sort by" submenu is frustrating.

    There are different solutions to this problem:

    Delay

    The simplest solution to this problem is to keep the submenu around for some time after leaving its parent menu item. If the submenu gets selected, it stays around and its parent menu item gets reselected.

    Delay approach to the submenu problem.

    Unfortunately, there are two issues with this solution:

    • It feels a bit janky to have a submenu open while another menu item is selected. Example: "Show visualizations options" is selected, while the "Sort by" submenu is visible.
    • When going through different menu items rapidly, there will be a delay for submenus to appear, causing the user interface to feel unresponsive.

    Safe triangle

    Amazon used to have a big dropdown menu and it became famous for the way it toggled submenus while moving your cursor. The basic idea is to show the submenu while the cursor is within a safe triangle.

    macOS also uses the safe triangle principle and adds a timeout to disable the safe triangle logic. This makes it easier to select siblings while staying in the safe triangle.

    Here's a showcase of this concept, with the safe triangle visible for comprehension.

    Keeping submenus opened while the cursor is in a safe triangle gives us good results.

    Content overflow

    In some rare cases, context menus cannot be repositioned in a way that shows their entirety. There are two ways to avoid this problem.

    macOS chose to let the user scroll through the menu using arrows, going through menu items one by one.

    At Height, we didn’t like this solution as it is a bit cumbersome to navigate. Instead, we added a scrollbar into our menus that is shown when needed to let users know when a portion of the menu is hidden. We think this is a more modern way of solving this problem.

    macOS uses arrows to scroll through menu items one by one.
    Height uses a scrollbar to navigate within a long context menu.

    As you can see, building context menus isn’t as straightforward as it seems — and doing it right can make navigation smoother for your users. At Height, we aim to be really intentional about building, from seemingly small details like context menus and scrollbars to core features and workflows. We’re excited to continue sharing our story of building a PLG product so you can develop your own product strategy. If you’d like to try the first-of-their-kind autonomous workflows we’re building at Height, sign up today…and make sure to follow along with our blog for more posts like this in the future.