DEV Community

Cover image for Mac OS for the Web!
Muhammad Mahdi
Muhammad Mahdi

Posted on

Mac OS for the Web!

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.

Oldest comments (84)

Collapse
 
dilutewater profile image
Rachit Khurana

This is incredible.

Collapse
 
mohammad_mahdi profile image
Muhammad Mahdi

thank you so much :)

Collapse
 
pratham_161 profile image
Prathamesh tanksale

Dammm you are aewsome

Collapse
 
mohammad_mahdi profile image
Muhammad Mahdi

Thank you

Collapse
 
sakko profile image
SaKKo

Awesome!!!!

Collapse
 
mohammad_mahdi profile image
Muhammad Mahdi

Thank you

Collapse
 
sachindas246 profile image
SachinDas246

Coool ❤️

Collapse
 
mohammad_mahdi profile image
Muhammad Mahdi

Thank you

Collapse
 
mohammadraufzahed profile image
Mohammad Raufzahed

This was awesome, keep going.

Collapse
 
mohammad_mahdi profile image
Muhammad Mahdi

Thank you so much
have a nice day :)

Collapse
 
ansub profile image
Ansub Khan

this is amazing, however i will recommend you to show the menu list when it is clicked instead of on focus.

Collapse
 
mohammad_mahdi profile image
Muhammad Mahdi

Thank you
but I don't understand what do you mean
can you please explain more?

Collapse
 
ansub profile image
Ansub Khan

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

Thread Thread
 
mohammad_mahdi profile image
Muhammad Mahdi

Ok I got it
Thank you for the explanation💚

Thread Thread
 
ansub profile image
Ansub Khan

anytime brother, you are doing a amazing work! i have followed you and will be looking for the future blogs!

Thread Thread
 
mohammad_mahdi profile image
Muhammad Mahdi

Thank you so much bro :))

Collapse
 
rehman0 profile image
Rehman

Wow such a nice website you have created

Collapse
 
mohammad_mahdi profile image
Muhammad Mahdi

Thank you my friend :)

Collapse
 
jagerbom profile image
Zachary Truong

This is AMAZING...

Collapse
 
mohammad_mahdi profile image
Muhammad Mahdi

Thank you

Collapse
 
blackr1234 profile image
blackr1234

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 got 0.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.

Collapse
 
mohammad_mahdi profile image
Muhammad Mahdi

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 :)

Collapse
 
blackr1234 profile image
blackr1234 • Edited

Yes, toFixed() is the JS way to round a Number and obtain a string. It will work if we know the number of fraction digits. If we divide numbers like 1/3, toFixed(1) will result in an answer 0.3 with a huge deviation compared to something like 0.333333.
Actually I am also looking for a good answer to this question. But I do have a workaround: to use toLocaleString with an en_US locale and maximumFractionDigits specified as 16 or less.

Thread Thread
 
mohammad_mahdi profile image
Muhammad Mahdi

That's right,
it's a great idea to use toLocaleStringwith an en_US locale and maximumFractionDigits specified as 16 or less. 👍

Collapse
 
blackr1234 profile image
Info Comment hidden by post author - thread only accessible via permalink
blackr1234

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.

  1. Why are there private and public keys in the repo source?
  2. I thought you did this by using React or some other modern development framework/library but you did this all by vanilla HTML, JS and some jQuery for dragging support. You must have a deep understanding on how website works.
 
mohammad_mahdi profile image
Info Comment hidden by post author - thread only accessible via permalink
Muhammad Mahdi • Edited

Thanks :)

  1. 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.

  2. I'm glad about that :)
    I had no idea what vanilla meant 😅(of course, now I know).

 
nicolasdanelon profile image
Info Comment hidden by post author - thread only accessible via permalink
Nicolás Danelón

you are 14? really?
btw, be careful on how you remove those private keys. one commit removing the files is not enough

 
Sloan, the sloth mascot
Comment deleted
 
enter801 profile image
Info Comment hidden by post author - thread only accessible via permalink
Schlick Jones

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.

 
blackr1234 profile image
Info Comment hidden by post author - thread only accessible via permalink
blackr1234

To OP: See this for GitHub's official guide about removing sensitive data: docs.github.com/en/authentication/...

Collapse
 
altan4444 profile image
Info Comment hidden by post author - thread only accessible via permalink
asoran

"I had the mistake of adding my github's account private key to the repository source. now I remove them all."

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:

  • Remove your repo and make a new one with commits from scratch (new initial commit)
  • Revert all the commits up to here github.com/mhmdmhd6/Mac-OS-Desktop... (where you added the public/private keys and push -force back the repo)

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). :)

Collapse
 
lod61 profile image
louis

Hi, Try this.

parseFloat((0.1 + 0.2).toFixed(10))
Enter fullscreen mode Exit fullscreen mode
Collapse
 
blackr1234 profile image
blackr1234

This works too!

Collapse
 
23n6 profile image
23n6

You should use bigNumber to fix it. (Mathjs, Bignumberjs). This is my example: github.com/nguyenvannghi/calc-reac...

Collapse
 
demiahmed profile image
demiahmed

This is really impressive!

Collapse
 
mohammad_mahdi profile image
Muhammad Mahdi

Thanks :)

Collapse
 
tanishqsinghanand profile image
Tanishq Singh Anand

Coool
really liked it 🔥🔥🔥

Collapse
 
mohammad_mahdi profile image
Muhammad Mahdi

Thanks :)

Collapse
 
taosif7 profile image
Taosif Jamal

Awesome! you can call it moc emulator, since its a mock of mac 😜

Collapse
 
mohammad_mahdi profile image
Muhammad Mahdi

Thank you!!

Collapse
 
dgtofficial profile image
DarkBat Gaming™

Amazing man, good job 👍

Collapse
 
mohammad_mahdi profile image
Muhammad Mahdi

Thanks :)

Collapse
 
ultimategemini profile image
NF

Very good!

Collapse
 
mohammad_mahdi profile image
Muhammad Mahdi

Thanks!

Collapse
 
phuonganhniie profile image
Anh Do • Edited

This is amazing not only you're just 14 but also you're using only Js not modern framework for building this website.

Btw, there's a little bug in here, but keep going, you're really awesome.
dev-to-uploads.s3.amazonaws.com/up...

Collapse
 
mohammad_mahdi profile image
Muhammad Mahdi

Thanks so much.
Yeah, I'll fix that bug in the next update.

Some comments have been hidden by the post's author - find out more