Mac OS emulator on the Web
Hi,
I want to introduce my project, which I call Mac OS emulator on the Web. We have programs like Notes, Calculator, Terminal, VScode, and other apps and features on this website.
You can try it now!
I wrote this project by HTML, CSS, and JS.
I think if something does not start well, it may end well when you do your best. This project was something like that, it didn't start well, and it was simple, but when I continued on my way and didn't break the chain, I saw the fantastic progress.
This website has PWA (Progressive Web Apps), which with this feature we can install it on any operating system such as Windows, Mac OS, GNU/ Linux, and we can also use it offline :)
about me:
I'm a 14 years old boy 👦
I'm interested in things related to computers and science.
I started my journey as a web developer in October 2020 and started learning web development from Documents, Udemy and Youtube.
I have been working on this project for about six months, and during this project, I learned many essential topics in programming.
This emulator is an open-source project on Github.
I would like to introduce this project and connect with the developers' communities.
I will be very happy if you comment on this post or help me improve this project on Github.
My Github Page: https://github.com/mhmdmhd6/Mac-OS-Desktop
This Website's link: https://mhmdmhd6.github.io/Mac-OS-Desktop/
Your Support in improving this project is a source of motivation for me.
Thank You.
Top comments (87)
One quick question. As there are only two apps available at the moment, I tested the Calculator app with
0.1+0.2
and I got0.300...004
, a common result we get in some programming languages. Just want to know how (and the best way) can we solve this issue when implementing a calculator app ourselves.Hi,
This is a good point that I did not pay attention to it before.
When I saw your opinion, I first went to find out how this happens, which was interesting to me.
Then I thought to your question, how can we solve this issue?
At first, I thought we could round the number, but when I used the round method in JS, the result was zero! Then I searched it and realized that we can use the toFixed() method in JavaScript, when we put the digit on 1, the result is 0.3!
I want to know what is your answer to this question and is my answer correct?
Thank you very much for your excellent comment :)
Yes,
toFixed()
is the JS way to round aNumber
and obtain a string. It will work if we know the number of fraction digits. If we divide numbers like1/3
,toFixed(1)
will result in an answer0.3
with a huge deviation compared to something like0.333333
.Actually I am also looking for a good answer to this question. But I do have a workaround: to use
toLocaleString
with anen_US
locale andmaximumFractionDigits
specified as16
or less.That's right,
it's a great idea to use
toLocaleString
with anen_US
locale andmaximumFractionDigits
specified as16
or less. 👍Btw, awesome work. It really feels like macOS and is also running fast!
I've seen a Windows 10 web app here in dev.to before but it was a bit laggy.
When you are 24, you will probably be working at Apple.
Btw, I just checked your GitHub repo, and immediately I have two things in my mind.
Thanks :)
For your first question, I had the mistake of adding my github's account private key to the repository source.
now I remove them all.
I'm glad about that :)
I had no idea what vanilla meant 😅(of course, now I know).
you are 14? really?
btw, be careful on how you remove those private keys. one commit removing the files is not enough
Just change the keys if you've exposed a private key. As a general rule, never commit a private key on a public repository and really it's best to not ever and use something more secure like Hashicorp Vault or AWS's tools for secrets.
To OP: See this for GitHub's official guide about removing sensitive data: docs.github.com/en/authentication/...
I don't know why I can't press "reply" on your answer, but here:
Well you deleted them, but they are still in the git commit history se we can still see them, so either:
I don't know git enough on the security parts, but if you don't want people to do bad things with your keys, invalidate them and generate them again (Idk how, sorry). :)
Hi, Try this.
This works too!
You should use bigNumber to fix it. (Mathjs, Bignumberjs). This is my example: github.com/nguyenvannghi/calc-reac...
Changing the top-menu font will make it more realistic!
this is amazing, however i will recommend you to show the menu list when it is clicked instead of on focus.
Thank you
but I don't understand what do you mean
can you please explain more?
i am saying that when i hover on "file" top the top left, it shows the dropdown menu, it should be visible on click action not hover action
Ok I got it
Thank you for the explanation💚
anytime brother, you are doing a amazing work! i have followed you and will be looking for the future blogs!
Thank you so much bro :))
very good work....I was experienced for using the MacOS...Thank you
Good job. Impressive and appreciated.
It is not a difficult project but not easy for your such age. I was only learning AppleSoft Basic (maybe you don't know it) at your age. jQuery is good for beginner. It was also my first library to start web programming. Next step, you can try one of popular frameworks, Angular, React, Vue.js, etc. They are so interesting and funny to play. You will love it.
Coool ❤️
Thank you
Nice one
Hi!
Very good work for fun...
If you really want to realize your project maybe you should base it on GreyOS. It is an open source Meta-OS (nothing related to metaverse, facebook, etc.). I have been developing this since 2013.
I am a professional enterprise architect and I'd love to help you Muhammad.
Please check the github.com/g0d/GreyOS for details and let's make something beautiful :-)
Congrats.
What I suggest to you is to check this repo: github.com/PuruVJ/macos-web
This guy already did the exact same thing but in Svelte with some improvements. So i think you can learn from it and also if you want, learn svelt!
The website that is hosted is: macos-preact.vercel.app/
Thank you.
yes, i knew about that :)
This was awesome, keep going.
Thank you so much
have a nice day :)
Some comments have been hidden by the post's author - find out more