Below is a summary of the work we've done recently as part of our "Leprechaun" release!
- Released "friendly names" for projects.
- Added a debugging endpoint for projects.
- Added ability to download SQL results as a CSV file.
- Reports are now sent via email to allow for larger reports to be run outside of the time constraints of a browser.
- Added a visual interface selector to the Sandbox launchpad.
- Fix Safari rendering the tabs bar and directory sidebar incorrectly.
- Enabled screen readers on the embedded terminal.
- Addressed some low hanging fruit for buttons and tooltips.
A leprechaun is a type of fairy of the Aos Sí in Irish folklore. They are usually depicted as little bearded men, wearing a coat and hat, who partake in mischief. They are solitary creatures who spend their time making and mending shoes and have a hidden pot of gold at the end of the rainbow.
We've released a big improvement for how a project can be accessed from the Internet! Previously, the URL used to load a project's website would look something like this:
This presented a number issues:
- It just wasn't that friendly, and really downright strange.
- It was impossible to type.
- The double dashes (--) would turn into a―in many text editors.
- Most importantly, it changed with each session (re-launch of the project).
Now, a project will have a URL like this:
Much friendlier! And this URL stays the same through multiple sessions, allowing you to bookmark it and return to it later.
Here's how we describe these URLs:
We have many other improvements related to these URLs in the works. For now, we hope you enjoy these friendlier URLs!
Next Tech is focusing heavily on accessibility over the next few months to ensure that our products can be used by everyone. Below is a summary of our projected timeline for rolling out these changes:
- By the end of the week:Enabling screen reader for the embedded terminal, as well as some quick wins for buttons, tooltips, etc.
- By the end of October:Completion of all changes except for code editor (see below). This includes tab navigation, screen reader support for instructions, button labels, and more. These will be released on a rolling basis so your users with disabilities may notice improvements as this progresses.
- By the end of the year:Screen reader / keyboard navigation support for code editor. We need to switch to entirely different software for this so it's going to take the longest to get done.
By the end of the year we will be conformant with WAI Level A and Level AA. Note that these updates are focused on our core project interface, but we'll be continuing to improve the accessibility of our other webpages as we continue to improve our products.
Keep an eye on a section of our changelog posts dedicated to accessibility over the next few months as we roll out these changes!
Below is a summary of the work we've done recently as part of our "Kraken" release, which was performed from May 29th through June 25th. This release consisted of numerous improvements to underlying parts of the product and some exciting new functionality!
- Codey can speak again! This feature was removed as part of our interface redesign last summer and we're very excited that it's finally been re-added. You can read more about it here.
- Our new nt.run domain for container hosting is live! Read more about it here.
- We've added deep linking support for those finding our courses from search engines, which allows you to jump directly into a particular step in a lesson. You can see what that looks like by picking a result from a search like this one.
- We've switched to a dark theme for our external webpages! Check it out.
- The speed of various pages on the website (such as the course catalog and sandbox listing) has been improved.
- Sandboxes on the dashboard now appear non-actionable if you are out of credits and don't have a payment method on file.
- apt updateis now being run in containers when they startup, which removes the need to do it during anapt installonce a container has launched.
- We've disabled some unnecessary updates inside of containers to conserve CPU usage on container hosts.
- Added a fix to prevent extremely rare occurrences of invalid archives of files being backed up, resulting in a loss of saved files.
- Fixed a bug resulting in the stored counter for the number of attempts on a task being incorrect and updated historical data.
- Fixed resetting sandboxes not working.
- Fixed "Next Lesson" button being faded out in dark themes.
- Fixed long filenames being displayed awkwardly in Firefox when hovering on the tab.
- We've made some improvements to the development process for a core piece of our infrastructure, which enabled the new nt.run domains, and is assisting us in the rapid development of some exciting other features!
- We've laid the groundwork for converting to ZIP downloads for projects (vs TAR GZ). Expect this improvement to be released in the next few weeks!
The kraken is a legendary cephalopod-like sea monster of giant size in Scandinavian folklore. According to the Norse sagas, the kraken dwells off the coasts of Norway and Greenland and terrorizes nearby sailors.
Most people who use our product know and love Codey, our friendly coding chatbot. Unfortunately, since our new interface update last summer, Codey hasn't been as outspoken (and therefore, useful).
That all changed last week, as well as a few other exciting things! See below for more.
Re-added: Message Popups
The message popups from Codey when there's new task feedback have been re-added. Here's what a failed message looks like:
And here's a passed one:
These messages also display if Codey isn't enabled.
We'll be making a few more tweaks to this feature to get the coloring and placement just right, but for now, it's great to have Codey so outspoken again!
New: Failed Check Notification Dot
When a check for a (closed) task fails, a notification alarm is now is displayed on the arrow to open that task:
If the checks are "shared" (meaning the results of them are visible to the user), the count of failed checks is displayed instead of the alarm.
New: Updated Feedback Indication
When a task is open, it was previously unclear if the feedback that is displayed is new from the last task run. This feedback now shows a slight "jump" when updated, which serves as an indicator that the feedback has been updated.
Here's the feedback we're talking about:
A few weeks ago we announced we'd be rolling out a whole new domain for our container infrastructure, and now, we're excited to introduce you to
This domain is a tad shorter than its predecessor (sandbox.codevolve.com). It also aligns perfectly with its counterpart domain,
- nt.dev/python will jump you right into a coding environment for Python, for example.
- uk.com, so your website on Next Tech is essentially just running on a funky TLD.
Currently, domains still use a session token for the computing environment you're in, so they look something like this:
(you may also note that there are now 2
-'s before the port number instead of 1)
Perhaps not the prettiest (unless pseudo-randomly generated hex values are your thing), but we have some really exciting changes to this in the works. So stay tuned later this month for that announcement!
This release was started on May 13th and finalized on May 29th. It consisted of some improvements, a bug fix, and a number of development tasks not visible to users.
- Improve performance of code patterns in projects with many files.
- Ensure that processes are stopped in a container when their terminal is closed.
- Fix container-dependent templates not being injected into step instructional materials.
- We've deployed an updated version of our SmartScaler that improves our load prediction rates. This helps us ensure that users never need to wait too long for a sandbox.
- We've made a number of infrastructure logging and monitoring improvements to improve our ability to monitor our systems for issues and respond quickly.
In Norse mythology, Jörmungandr, also known as the Midgard Serpent, is a sea serpent, the middle child of the giantess Angrboða and Loki. According to the Prose Edda, Odin took Loki's three children by Angrboða—the wolf Fenrir, Hel, and Jörmungandr—and tossed Jörmungandr into the great ocean that encircles Midgard.
Hello all! We have a
lotto cover in this changelog, as we've fallen behind with updates recently. So much has happened since the last time we posted one, so we're going to list everything here, and then certain topics we'll cover in more detail in separate posts.
Additionally, we'll be using a new format for changelog releases going forward. We're deprecating the use of semantic versioning because with our multiple products that all overlap, complexity abounds. So in the interest of keeping things simple, we'll be using named versions going forward, corresponding to the week of the year we do the current release.
We've decided to use mythological creatures and will have (around) 26 versions a year, which is 52 weeks / 2 = 26, which conveniently is the number of letters in the alphabet. So the next version we'll be releasing is "Ipotane".
Okay, here's what's happened in the last couple months!
- Deployed our newest product, Next Sandbox! In-browser, real-world, shareable computing environments.
- Drastically improved the project loading and timeout screens.
- Added a basic Dashboard to the website.
- Converted to a minute-based pricing model for our users.
- Added referral functionality for earning free credits.
- Added a number of new reports available for download for our enterprise customers.
- Added support for LaTeX in instructions.
- Allow up to 2GB of memory usage for all containers, when available.
- Added ability to exclude files from save snapshot.
- Support JSX syntax highlighting in JS files.
- Added GraphQL syntax highlighting.
- Added Parity to the Rust stack.
- Added Blockchain, Swift, and R skills.
- Deployed a React stack.
- Added a "blackjack" Codey!
- Added a list of use cases for Sandbox.
- Set up nt.dev/<stack> and nt.dev/last URLs.
- Allow custom parameters to be passed in with account join URL.
- Drastically improved how terminals work to address longstanding bug and improve performance.
- Changed to non-root nt-userin projects vsrootuser, which was incorrect for a number of reasons.
- Drastically improved the performance of the project directory sidebar, especially with a high number of files.
- Removed the need to use #! /bin/bashin startup and build scripts.
- Improved styles of file menus in projects.
- Cleanup of settings sidebar in projects.
- Default to "dark" theme going forward.
- Ensure sandboxes are upgraded upon page reload, if necessary.
- Improved executable code editor snippets.
- Improved use of PubNub to prevent messages being dropped.
- Start auto-saving Jupyter notebooks every 10 seconds by default to prevent lost data.
- Upgraded to dotnet v2.2 on C# stack.
- Changed term "Lesson" to generic "Content".
- Improved display of images and tables in instructions.
- Improved the "checking" state of task check boxes.
- Improved wording for "next lesson" dialog.
- Reset scroll when changing panes in Creator.
- Update editor instructions styling to better match final result.
- Added emails for more actions and improved all emails (much prettier now!).
- Changed to retro user icons vs identicons.
- Improved account and profile styles.
- Improved user drop down.
- Addressed several memory leaks in project interface.
- Disable snippet runs when the sandbox has been shutdown.
- Fix memory alert font color in content editor.
- Fixed bug in GitHub logins for users with no names.
- Fixed chmod/chown not being applied during sandbox launches.
- Fixed help tour skipping Codey introduction.
- Fixed scrolling bug in code editor for Firefox.
- Removed extra spacing atop videos.
- Removed thin white line that sometimes appeared in projects.
- On-boarded Joe, our new Systems Engineer!
- Improved the speed of a core piece of our infrastructure by 20x (isn't tech fun?) ― soon to be 100x.
- Switched to BEM standard for our CSS.
- Switched to CSS grid layouts.
- Switched to CSS variables.
- Updated documentation and added documentation for Sandbox.
We're excited to announce the release of Next Tech's newest product: Next Sandbox!
The Next Sandbox provides access to real-world computing environments in 2 seconds directly from your browser. Rather than installing the programming language or software you want to use on your computer, you can just click a button and access that language or software right away using a browser-based development tool.
We built Sandbox to solve two key problems we experienced ourselves as developers almost every day:
- Installing software is hard. Even experienced developers can struggle with this and it's something that can get in the way of trying out new ideas. It's nice to have something works out of the box so you can focus on innovating.
- When you do install software on your computer yourself - especially if you just want to test it - it can quickly clutter your environment. Maybe you want to try the newest version of Java, but installing it on your computer could cause issues with your current version.
The Next Sandbox addresses these issues by shifting the burden of installing software off of you and onto us. But that's okay, we've been doing this for years! The Next Sandbox is based on the same infrastructure and interface that powers our product for teaching and learning tech skills, which is used by leading educational companies all around the world.
Here's what a sandbox for the Python programming language looks like when you first launch it:
The Next Sandbox provides access to the same development environment that our content has been delivered alongside for years.
But of course, we added some new special features just for Sandbox 😁
We've added a new section of our site that lets you create and view your sandboxes. We're especially a fan of the page used for creating new sandbox, aptly dubbed the "launchpad":
Inside a sandbox, you can configure a few pieces of its environment:
- Startup Script: The Bash script run when the sandbox first loads.
- Build Script: The Bash script run when the Run button is clicked, but before the Run Command.
- Run Command: The command that is used to execute the program in your sandbox.
Note that these can be (and often are) blank! Sandboxes are often used for things well beyond compiling and executing programs.
The ability to share a sandbox combined with the environment configuration makes for an extremely powerful tool. In just a few seconds, you can spin up a new sandbox, add some code, configure the environment (if necessary), and then send that sandbox's share URL to others.
When someone click a share URL, they're given a copy of that sandbox with its current code files. Check out the Use Cases section below for some exciting ways this can be used!
.devdomains launched, we made sure to jump on nt.dev right away. You can use it to launch new sandboxes right from your browser, for example:
We also own nt.run and have some fun features planned for that coming soon!
We've begun compiling a list of ways you can use Sandbox here. It includes a list of ways it can be used for programming, data science, web development, and in a classroom.
You can check out the docs for Sandbox here.
For a long time, Next Tech serviced only enterprise customers in a "B2B2C" fashion, meaning we sell our products to companies who in turn bundle it up and sell it to their users.
However, over the last six months we've begun to work on building our own users base that get direct access to our content library and now our Sandbox product.
We debated between a subscription and usage-based pricing model for some time, and in the end went with usage-based. Specifically, we now charge $0.01 per minute you are actually on the page ― meaning that you have the page focused ― with a sandbox or lesson open.
You can learn more about how this works here.
Upon sign up you'll also receive $10 in free credits. And you can refer others to earn more!
Note that this does not affect our enterprise pricing model. That is still billed based on the amount of time a code environment is live vs actively used and pricing is negotiated on a per-contract basis.