JavaScript Bootcamp

Last Saturday, we contributed to another step towards gender inclusivity in the world of technology, organizing a JavaScript bootcamp in partnership with SheTech, a non-profit organization dedicated to bridging the gender gap in STEM. The primary goal of this event was to provide young girls and women with a tangible opportunity to delve into the realm of programming, addressing the prevailing skill mismatch within the STEM sector.

Through word of mouth and thanks to Bitrock’s and SheTech's active communities, the event drew the enthusiasm of almost 50 participants, both girls and boys, all eager to enhance their programming skills. 

The bootcamp kicked off with an insightful briefing on the Front-End scenario, followed by a presentation outlining Bitrock's value proposition.

Participants explored the world of JavaScript guided and supported by experienced Mentors. They challenged themselves in practical exercises divided into different levels, suitable for both beginner and more experienced programmers. 

After five hours of intense programming, the bootcamp ended with a dynamic Q&A and feedback session during which participants openly discussed various aspects of the event, sharing insights and experiences,  giving us useful hints fundamental to the continuous improvement of our events.

This bootcamp represents the commitment of Bitrock and SheTech in fostering a diverse and inclusive tech community. By providing practical opportunities for skill development and creating an engaging learning environment, the event served as a small yet impactful step towards addressing the gender gap in STEM.

As we celebrate the success of the JavaScript bootcamp, we recognize the importance of continued efforts in supporting women in technology, entrepreneurship, and the digital space. The journey towards gender equality in STEM is ongoing, and with opportunities like these, we give our contribution for a more balanced and innovative future.

Stay tuned for more exciting events, bootcamps and workshops in partnership with SheTech… coming soon!

Read More
Bitrock JavaScript Bootcamp

Last week we organized a thrilling coding Bootcamp dedicated to JavaScript in partnership with SheTech, with whom we share, as part of the Fortitude Group, the goal of bridging the gender gap in STEM and supporting women in the world of technology, entrepreneurship and digital.

As we did in our previous bootcamp dedicated to ReactJs (if you miss it, see what we organized in our dedicated Blog post!), also in this event we wanted to give young girls and women a concrete opportunity to get closer to the world of programming, and fill the skills mismatch that is - unfortunately - still high in the sector. 

This time, the event was open to anyone: no technical prerequisites were asked to join the bootcamp, just a true passion for technology and the desire to learn something new.

After an initial briefing on the Front-end scenario and a quick presentation of Bitrock’s value proposition, the bootcamp entered the battle zone. The participants split up in different groups, all supervised by our experienced Mentors, to start working on different exercises based on JavaScript, with the final goal of developing a to-do-list App.

The questions from the participants were numerous, all answered by Bitrock and SheTech’s Mentors through concrete examples, use-cases and in-depth explanations.
After almost five hours of programming (including many coffee breaks, a super-tasty lunch and many games of foosball), the bootcamp ended with an interesting Q&A and feedback session, characterized by an open discussion on all touched points and topics.
The general feedback that came from the participants was enthusiastic, and many proposals arose for other future events in order to continue exploring the world of Front-End and User Experience Engineering.

Keep reading our Blog and follow us on our social media channels to discover what other initiatives we have in store in partnership with SheTech!


To find out more about Bitrock's mission to promote a workplace culture based on inclusion and gender equality, please visit https://bitrock.it/blog/equality-in-stem.html

Read More
An introduction to "Deno"

An Introduction to "Deno"


What is Deno?

“A secure runtime for JavaScript and TypeScript.” This is the definition contained in the official Deno website.

Before going into details, let’s start by clarifying the two main concepts included in this definition.


What is a runtime system?

As for Deno, we can say that’s what makes Javascript run outside the browser, adding a series of features that it is not possible to find in the Javascript engine itself.


What is Typescript?

Typescript is a superset of Javascript, which adds a series of features that make the language more interesting. Its main features are:

  • Optional static typing
  • Type inference
  • Improved Classes
  • Interfaces

At this point, you may find a similarity between Node and our Deno definition, since they seem to do almost the same thing and they are both built upon the Javascript V8 engine.


So Why Deno?

“Deno” - as Ryan Dahl, Creator of both Deno and Node, said - “is not by any means a rival of Node”. Simply, he was no longer happy with Node and decided to create a new runtime to make up for its “mistakes” and shortages (and adding also a bunch of new features).



Getting closer to Deno

Let’s now discover what makes Deno so promising and interesting, along with some key differences with Node.js:


Deno supports out-of-the-box Typescript

Deno can run Typescript code without installing additional libraries, such as ‘ts-node’.

It is possible to create an app.ts file and make it run with the simple command “Deno run app.ts”, without any other additional step.


ES Modules

Deno drops Commonjs Modules, which are still used in Node.js, and embraces the modern ES modules that are defined as standard in the Javascript world and mostly used in the front-end development scenario.

Deno borrows from Golang the possibility to import the modules directly from an Url.


Security First

Deno implements a philosophy of “least privileges” when it comes to security.To run a script, indeed, you need to add appropriate flags in order to enable certain permissions.

Here’s the list of flags that can be used:

  • --allow-env: allow environment access
  • --allow-hrtime: allow high-resolution time measurement
  • --allow-net=<allow-net>: allow network access
  • --allow-plugin: allow loading plugins
  • --allow-read=<allow-read>: allow file system read access
  • --allow-run: allow running subprocesses
  • --allow-write=<allow-write>: allow file system write access
  • --allow-all: allow all permissions (same as -A)


Standard Libraries

These libraries (click here to find out more) are developed and maintained by the core team of Deno.

Many other languages - Python included - share this concept of having a library of reference that is stable and tested by developers who maintain it.

Since Deno is at an initial stage, the list is still short - but certainly there will be further implementations in the future.


Built-in Tools

When it comes to Node.Js, if you want to have specific tools, you have to install them manually; furthermore, they are essentially third-parties tools, which are not maintained by the Node Team.

Deno, instead, embraces another philosophy: it offers, indeed, a built-in tool to improve the development. This creates a standard, which makes Deno not so dispersive as the Node ecosystem.

Here’s a partial list of them, along with the link to the relevant documentation for a deeper understanding of the topic:

  • fmt a built-in code formatter (similar to gofmt in Go)* test: runs test
  • debugger
  • Bundler
  • Documentation Generator
  • Dependency inspector
  • Linter


Compatibility with Browser API

Deno API was created to be as compatible as possible with the Browser API, in order to be able to implement any upcoming feature easily. This is one of the main “issues” that Node has, since it uses an incompatible global namespace (“Global” instead of “window”). This is the reason why an API like Fetch has never been implemented in Node.


Style Guide to building a Module (Opinionated Modules)

Unlike Node, Deno has a set of rules that a Developer should follow in order to publish a module. This can avoid the creation of a different way to reach the same output, thus creating a standard - which is a main principle within the Deno ecosystem. To find out more about the topic, click here.


Where is package.json?

As seen before, there is no package.json in Deno where it is possible to put all the dependencies. The answer, then, is deps.ts.

Deps is used for 2 main reasons:

  • to group all the dependencies needed for the project;
  • to manage versions.

This is a sort of replication of package.json present in Node.js, but many Developers are no longer considering it as best practice because of the decentralized nature of Deno. Indeed, they are now experimenting a better way to organize the code, which might lead to a different management of the modules. Let’s see how it will evolve in the future...

Here’s an example of a deps.ts file:


What about locking the dependencies?

A file called lock.json is needed in order to lock them. By using the following command, it is possible to cache and assign a hash to every dependency, in a way that no one can temper it:

deno cache --lock=lock.json --lock-write src/deps.ts

For further explanation about integrity check and lock files, please have a look at the official documentation.


Server Setup

Last but not least, here’s a quick but interesting comparison between a server setup in Node and in Deno.

Node server:

An example of Node server

Deno Server:

An example of Deno server

As you can notice, the snippets are pretty similar, but with fundamental differences that can sum up what we discussed above. More specifically:

  • ES modules;
  • decentralized import from an URL;
  • nextgen javascript feature out of the box;
  • the permission needed to run the script.



Future Improvements on the Roadmap and Conclusions

One of the key features in roadmap is the possibility to create a single executable file, as it happens now in many other languages (like Golang, for instance) - something that could revolutionize the Javascript ecosystem itself.

Also the compatibility layer with the Node.js stdlib is still in progress; this could lead to a faster development of the runtime system.

To sum up, we can say that Deno is in continuous evolution and probably will be the next game-changer of the Javascript ecosystem. The foundations for this runtime are in place and it is already a hot topic, so... keep an eye out!



Author: Yi Zhang, UX/UI Engineer @Bitrock

Read More