If your server or host PC supports NFS, you can set up shared directories for OpenStep. For example, if the shared folder is nfs://192.168.1.19/nfs/ftp, you can add the imported directory in NFSManager.app as follows:
Joone's Blog
All about cool things
Wednesday, September 27, 2017
Wednesday, September 20, 2017
Installing OpenStep 4.2 on Parallels
NextStep is one of the advanced operating systems in 90s. You may understand why it is by watching this video:
Every features Steve Jobs introduced in this video was possible in 1992, which is amazing. So I've dreamed of using NextStep since I was aware of it, but I've never seen a running demo and just saw a NexTCube. By chance, I found instructions how to install OpenStep 4.2 on Parallels. Finally, NexStep(OpenStep4.2) started running on my machine. o/
If you want to run OpenStep 4.2, follow this instruction. The only problem is that network doesn't work so it needs to install a network driver. I found the solution by googling, but the link of NE2000 disk image(http://www-teaching.physics.ox.ac.uk/NextStep/NE2K_driver.fdd) was broken. Fortunately, I was able to recover the link from https://archive.org/ so you can download it.
Network setting:
1) Install the NE2K driver;
2) Shut down. Under Boot Order, make sure the hard drive is the first device, and add "devices.net.force_adapter_type=rtl"; in the boot flags.
3) Set the shared network. Reboot.
5) Open HostManager.app. Under Local choose "use local domain only".
6) Assigned one of available IPs in your local network. Let the machine Reboot;
7) Add a name server in /etc/resolv.conf
Installing developer tools: there is a good video on Youtube:
The next step is to write some Objective-C code with this book and download some applications from http://www.nextcomputers.org/NeXTfiles/
References:
Every features Steve Jobs introduced in this video was possible in 1992, which is amazing. So I've dreamed of using NextStep since I was aware of it, but I've never seen a running demo and just saw a NexTCube. By chance, I found instructions how to install OpenStep 4.2 on Parallels. Finally, NexStep(OpenStep4.2) started running on my machine. o/
If you want to run OpenStep 4.2, follow this instruction. The only problem is that network doesn't work so it needs to install a network driver. I found the solution by googling, but the link of NE2000 disk image(http://www-teaching.physics.ox.ac.uk/NextStep/NE2K_driver.fdd) was broken. Fortunately, I was able to recover the link from https://archive.org/ so you can download it.
Network setting:
1) Install the NE2K driver;
2) Shut down. Under Boot Order, make sure the hard drive is the first device, and add "devices.net.force_adapter_type=rtl"; in the boot flags.
3) Set the shared network. Reboot.
5) Open HostManager.app. Under Local choose "use local domain only".
6) Assigned one of available IPs in your local network. Let the machine Reboot;
7) Add a name server in /etc/resolv.conf
Installing developer tools: there is a good video on Youtube:
The next step is to write some Objective-C code with this book and download some applications from http://www.nextcomputers.org/NeXTfiles/
References:
- http://openstep.bfx.re/
- http://www.nextcomputers.org/docs/FAQ-OpenStepOnEmulators.pdf
- https://forum.parallels.com/threads/openstep-4-2-driver-thread.3408/
- http://www.nextcomputers.org/forums/viewtopic.php?t=2992
- https://forum.parallels.com/threads/older-nic-emulation-before-gigabit.110324/
Thursday, August 24, 2017
Working on Servo project
I started working on Servo project. Actually, my first open source project was Mozilla so I was involved in the Korea Mozilla community. During the time, I contributed to Fennec browser by fixing bugs and localization. Anyway, this blog article made me work on Mozilla again.
I landed a simple patch and am working on adding the ellipse API to Canvas API. I see many missing features so it looks like the blue ocean for me compared to Chromium project.
I landed a simple patch and am working on adding the ellipse API to Canvas API. I see many missing features so it looks like the blue ocean for me compared to Chromium project.
Wednesday, March 01, 2017
Enable to open multiple file-pickers in Chromium for Linux
Sometimes, we don't know exact requirements or expect user behaviors while developing or fix something. I fixed the file-picker modal issue in Chromium for Linux last year. At that time, the reviewer and I thought that there would be no case to pop-up multiple file-pickers, but it happened since M55 when you follow the following steps:
1) Enable "Ask where to save" in settings.
2) Open 2 tabs of e.g.: https://sourceforge.net/projects/azureus/files/latest/download
3) Wait for 2 downloader windows, and close/cancel/etc both
4) Freeze or crash
Here is a video to reproduce the problem.
When file-picker is opened, it disables event listening of the main host window. Then, the user closes the file-picker, it enables the event listening. Now, the host widow has a counter to check the number of the open file-pickers and it doesn't disable the event listening if there are any open file-picker. The event listening can be enabled when the last file-picker is closed. Here is the fix.
Anyway, you may see the fix in M58(Apr 25th, 2017)
1) Enable "Ask where to save" in settings.
2) Open 2 tabs of e.g.: https://sourceforge.net/projects/azureus/files/latest/download
3) Wait for 2 downloader windows, and close/cancel/etc both
4) Freeze or crash
Here is a video to reproduce the problem.
When file-picker is opened, it disables event listening of the main host window. Then, the user closes the file-picker, it enables the event listening. Now, the host widow has a counter to check the number of the open file-pickers and it doesn't disable the event listening if there are any open file-picker. The event listening can be enabled when the last file-picker is closed. Here is the fix.
Anyway, you may see the fix in M58(Apr 25th, 2017)
Friday, February 17, 2017
Apple-style-span class was fully removed from Blink
Finally, Apple-style-span class was fully removed from Blink(commit).
Apple-style-span has not been produced since 2011: https://webkit.org/blog/1737/apple-style-span-is-gone, but there were still some legacy code to handle Apple-style-span class because old WebKit engines has produced it, but now the usage is quite low(<=0.0001%). So, we decided to remove it from Blink at the last BlinkOn7. The code were executed whenever the users copy text or run Editing APIs(document.execCommand) to change the styles. Other non-standard CSS classes(Apple-interchange-newline, Apple-converted-space, Apple-paste-as-quotation) will be also removed soon if possible.
Anyway, I feel that editing in Chromium is a bit faster :P
Apple-style-span has not been produced since 2011: https://webkit.org/blog/1737/apple-style-span-is-gone, but there were still some legacy code to handle Apple-style-span class because old WebKit engines has produced it, but now the usage is quite low(<=0.0001%). So, we decided to remove it from Blink at the last BlinkOn7. The code were executed whenever the users copy text or run Editing APIs(document.execCommand) to change the styles. Other non-standard CSS classes(Apple-interchange-newline, Apple-converted-space, Apple-paste-as-quotation) will be also removed soon if possible.
Anyway, I feel that editing in Chromium is a bit faster :P
Tuesday, November 29, 2016
Make file-picker modal in Chromium for Linux
When I stared working on Chromium, I found a bug in Chromium for Linux: the file-picker was not modal. So, while opening a file-picker, the users could control the main window. Sometimes, it caused mis-behaviors such as we were able to send an email while attaching a file.
There was already a bug and it seemed easy to fix it, but, it took 2 years to fully fix the problem.
The root cause is as follows:
Chromium for Linux uses GtkFileChooserDialog to open a file-picker, but it is not modal to the X11 host window because GtkFileChooserDialog can be modal only to the parent GtkWindow. So I tried to allow the X11 host window to disable input event handling to make a file-picker modal: Here is the details:
DisableEventListening() disables event listening for the host window using aura::ScopedWindowTargeter, which allows to temporarily replace the event-targeter with ui::NullEventTargeter. It returns a scope handle that is used to call |destroy_callback| when closing the file-picker.
In addition, we also set another destroy callback(OnFilePickerDestroy) to the GtkFileChooserDialog that can be called when the file-picker is closed.
As you can see, OnFilePickerDestroy deletes scoped_handle.
Then, |destroy_callback| of ScopedHandle below is automatically called.
You can find more details and discussion at here.
There was already a bug and it seemed easy to fix it, but, it took 2 years to fully fix the problem.
The root cause is as follows:
Chromium for Linux uses GtkFileChooserDialog to open a file-picker, but it is not modal to the X11 host window because GtkFileChooserDialog can be modal only to the parent GtkWindow. So I tried to allow the X11 host window to disable input event handling to make a file-picker modal: Here is the details:
Opening a file-picker
DisableEventListening() disables event listening for the host window using aura::ScopedWindowTargeter, which allows to temporarily replace the event-targeter with ui::NullEventTargeter. It returns a scope handle that is used to call |destroy_callback| when closing the file-picker.
class ScopedHandle {
public:
explicit ScopedHandle(const base::Closure& destroy_callback);
~ScopedHandle();
void CancelCallback();
private:
base::Closure destroy_callback_;
DISALLOW_COPY_AND_ASSIGN(ScopedHandle);
};
public:
explicit ScopedHandle(const base::Closure& destroy_callback);
~ScopedHandle();
void CancelCallback();
private:
base::Closure destroy_callback_;
DISALLOW_COPY_AND_ASSIGN(ScopedHandle);
};
In addition, we also set another destroy callback(OnFilePickerDestroy) to the GtkFileChooserDialog that can be called when the file-picker is closed.
Close the file-picker
As you can see, OnFilePickerDestroy deletes scoped_handle.
void OnFilePickerDestroy(views::DesktopWindowTreeHostX11::ScopedHandle*
scoped_handle) {
delete scoped_handle;
}
Then, |destroy_callback| of ScopedHandle below is automatically called.
void DesktopWindowTreeHostX11::EnableEventListening() {
DCHECK(modal_dialog_xid_);
modal_dialog_xid_ = 0;
targeter_for_modal_.reset();
}
You can find more details and discussion at here.
The first change list was reverted due to the UI freezing problem that happens when the users open a file-picker from a child window of the X11 host window. The second change list finally fixed this issue(BUG 408481, 579408). I also added a test case for the fix: BrowserSelectFileDialogTest.ModalTest.
Monday, November 14, 2016
My major contributions to Chromium project
I have been working on Chromium project since 2013 and fixed many bugs and implemented some features. Here are my major contributions:
Blink Editing
- [Issue 584939] document.queryCommandState returns true for bold, italic, underline, and strikethrough after selecting image
- [issue 232188] Caret color issue in content editable element
Aura and Wayland support:
- [Issue 473228] Make *::ShowWithWindowState(minimized, maximized, fullscreen) consistent across platforms
- Issue 578890 upstream wayland backend for ozone
- Issue 50485 Korean Hangul typing issue
Subscribe to:
Posts (Atom)