tag:blogger.com,1999:blog-75858152024-02-20T21:38:57.674-08:00Joone's BlogAll about cool thingsUnknownnoreply@blogger.comBlogger82125tag:blogger.com,1999:blog-7585815.post-22310821597784372732024-02-08T19:04:00.000-08:002024-02-08T19:04:20.257-08:00My comics about free/open source projectI have been posting comics about free/open source software for several years, originally written in Korean. Following numerous requests from my colleagues to translate them into English, I've published several episodes on Medium and shared the link here. :-)<br /><div><span face="Söhne, ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Ubuntu, Cantarell, "Noto Sans", sans-serif, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"" style="background-color: white; color: #0d0d0d; font-size: 16px; white-space-collapse: preserve;"><br /></span></div><div><span style="background-color: white; white-space-collapse: preserve;"><span face="Söhne, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, sans-serif, Helvetica Neue, Arial, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji" style="color: #0d0d0d;"><a href="https://medium.com/fosscomics" target="_blank">https://medium.com/fosscomics</a></span></span></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-54958444023571916702018-08-29T13:48:00.002-07:002019-05-29T23:52:48.313-07:00The WindowService2(?) of CrOSRecently, WS was replaced with WS2:<br />
<ul>
<li><a href="https://chromium-review.googlesource.com/c/chromium/src/+/1144255">1144255</a> window-service: removes mus_demo, test_wm, and some unnecessary deps</li>
</ul>
<ul>
<li><a href="https://bugs.chromium.org/p/chromium/issues/detail?id=865689">Issue 865689</a> Remove window-service</li>
</ul>
I ran mus_demo to test ozone-gbm, but now it's gone. :-( So, I need to figure it out what is the difference between WS1 and WS2.<br />
<br />
What is the Window Service of ChromeOS? Window Service is a kind of Window Compositor like Weston. It is a separate process from the browser process in CrOS. Some of CrOS features are part of the browser process, but those features will be a separate process using the WindowService.<br />
<br />
For more details, see <a href="https://cs.chromium.org/chromium/src/services/ws/README.md">https://cs.chromium.org/chromium/src/services/ws/README.md</a><br />
<blockquote class="tr_bq">
"Clients establish a connection to the WindowService by configuring Aura with a
mode of MUS. See aura::Env::Mode for details.
The WindowService provides a way for one client to embed another client in a
specific window (application composition). Embedding establishes a connection
to a new client and provides the embedded client with a window to use. See the
mojom for more details.
For example, on Chrome OS, Ash uses the WindowService to enable separate
processes, such as the tap_visualizer, to connect to the WindowService. The
tap_visualizer is a client of the WindowService. The tap_visualizer uses the
WindowService to create and manage windows, receive events, and ultimately
draw to the screen (using Viz). This is mostly seamless to the tap_visualizer.
The tap_visualizer configures Views to use Mus, which results in Views and Aura,
using the WindowService."</blockquote>
CrOS is now becoming more like a regular desktop. I'm not sure this is a good decision.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-27224626507644921032018-08-29T13:15:00.001-07:002019-05-30T00:48:02.837-07:00Linux container for ChromeOS Recently, ChromeOS started to support Linux applications on ChomeOS. Google hasn't allowed ChromeOS to run native applications due to security reason. Finally, they found a way to support Linux application through the container technology.<br />
<br />
It is worth to read <a href="https://news.ycombinator.com/item?id=15346269" target="_blank">a discussion on CrOSVM on Hacker News</a> because the original author joined the discussion. Here is the article about ChromeOS Linux container.<br />
<a href="https://www.zdnet.com/article/chrome-os-could-be-getting-containers-for-running-linux-vms/">https://www.zdnet.com/article/chrome-os-could-be-getting-containers-for-running-linux-vms/</a><br />
<br />
There is a Youtube video:<br />
<a href="https://www.youtube.com/watch?v=s9mrR2tqVbQ">https://www.youtube.com/watch?v=s9mrR2tqVbQ</a><br />
<br />
Here is the readme about CrOSVM.<br />
<a href="https://chromium.googlesource.com/chromiumos/platform/crosvm/+/837b59f2d97b005ef84ac36efa97530c1bbf2a79/README.md">https://chromium.googlesource.com/chromiumos/platform/crosvm/+/837b59f2d97b005ef84ac36efa97530c1bbf2a79/README.md</a><br />
<br />
The interesting thing is that it is implemented with Rust. Google now seriously uses Rust of their product, which is a good news for the Rust community.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-71777045892449074732018-07-12T11:21:00.001-07:002018-07-12T11:22:49.337-07:00Making Use Of Chrome's Ozone-GBM Intel Graphics Support On The Linux DesktopRecently, I published a blog article about <a href="https://01.org/blogs/joone/2018/using-chrome-os-graphics-stack-intel-based-linux-desktops" target="_blank">making Use Of Chrome's Ozone-GBM Intel Graphics Support On The Linux Desktop</a>. This is about using ChromeOS graphics stack for a regular Linux system. <a href="https://www.phoronix.com/scan.php?page=news_item&px=Using-Ozone-GBM-On-Desktop" target="_blank">This article was also mentioned in Phoronix</a>.<br />
<br />
Originally, <a href="https://software.intel.com/en-us/blogs/2014/10/23/chromium-ozone-gbm-explained" target="_blank">my old colleague started working on this a long time ago</a>, but it has been broken since then. So I have been trying to enable ozone-gbm on a Linux system because this solution would be useful for embedded systems. I'm making a Yocto recipe for this and will open it soon.<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-77740454467430391892018-05-24T16:06:00.003-07:002018-05-26T23:52:28.975-07:00Rust & DRMI was surprised that there are many low-level graphics projects written in Rust and I started looking into one of them: <a href="https://github.com/Smithay/drm-rs" target="_blank">drm-rs</a>. Then, I added <a href="https://github.com/Smithay/drm-rs/commit/9bdf3a23f08602e33fca389602d4e81c5cd05c7a">an example</a> for handling page-flip event.<br />
<br />
drm-rs is a subproject of Smithay that is a wayland compositor written in Rust. It allows Rust applications to access the Direct Rendering Manger(DRM), a subsystem of the Linux Kernel. So, we could directly paint something into a frame buffer and render it on the display using DRM APIs.Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-7585815.post-44091019724164441922018-05-04T22:03:00.002-07:002018-05-10T21:07:09.291-07:00BlinkOn9I attended BlinkOn9 from April 18 to 19, 2019. Here is the official page: <a href="http://bit.ly/blinkon9-info">bit.ly/blinkon9-info</a>, p<a href="https://docs.google.com/spreadsheets/d/1WrbTcTLskQBX1r4QIoEFUnZY1yPWT7cIYn-kvWCbelc/edit?ts=5ad688a5#gid=0">resentations</a>, and <a href="https://docs.google.com/spreadsheets/d/1DovPnWWSXuG8PRyN-HT7R9gZ4PLihly5ZepqZJ3vmAc/edit#gid=0">Lightning Talks</a>.<br />
<br />
At this conference, I talked about <a href="https://docs.google.com/presentation/d/1o-a-DV43SnPPeyQodeMdbIqA05bRTNpZ3uidP2CBYeo/edit#slide=id.g38a9ffee37_0_0">acelerating graphics performance with ozone-gbm on Intel based Linux desktop systems</a>: explained what kind of hardware accelerations have been applied to Intel -based Chromebook and how we can use them on a Linux desktop.<br />
<br />
Here is a demo video on Youtube:<br />
<br />
<iframe allow="autoplay; encrypted-media" allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/CY7X6vWD_wo" width="560"></iframe><br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-67771492155499398762017-09-27T02:43:00.000-07:002019-05-30T00:05:06.401-07:00Setting up NFS in OpenStepIf 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:<br />
<div>
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBuH7iAzYaBdik-39Fux9-FxaMPZLfMbrIMNPLF0_NfVba0RxZm87cEARjoTtZmBHsqb-eTNeenDbZaaZ9SpOoB5Oh4GoCAQ1FeFpqyZThZHSyV1c3QHrbACWX2O0cyHnFMUDzxQ/s1600/Screen+Shot+2017-09-27+at+2.33.46+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" data-original-height="588" data-original-width="1038" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBuH7iAzYaBdik-39Fux9-FxaMPZLfMbrIMNPLF0_NfVba0RxZm87cEARjoTtZmBHsqb-eTNeenDbZaaZ9SpOoB5Oh4GoCAQ1FeFpqyZThZHSyV1c3QHrbACWX2O0cyHnFMUDzxQ/s640/Screen+Shot+2017-09-27+at+2.33.46+AM.png" width="520" /></a></div>
<br />
Run mount command in OpenStep to mount a remote directory as follows:
<pre>$ mount -t 192.168.8.16:/mnt/openstep /coreonion </pre>
Reference<br />
<ul>
<li><a href="https://www.cyberciti.biz/faq/apple-mac-osx-nfs-mount-command-tutorial/">https://www.cyberciti.biz/faq/apple-mac-osx-nfs-mount-command-tutorial/</a></li>
<li><a href="http://nextstep.onionmixer.net/wordpress/?p=139">http://nextstep.onionmixer.net/wordpress/?p=139</a> </li>
</ul>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-38357630667599323592017-09-20T11:38:00.002-07:002017-09-21T10:55:30.759-07:00Installing OpenStep 4.2 on ParallelsNextStep is one of the advanced operating systems in 90s. You may understand why it is by watching this video:<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/gveTy4EmNyk/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/gveTy4EmNyk?feature=player_embedded" width="320"></iframe></div>
<br />
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 <a href="https://en.wikipedia.org/wiki/NeXTcube" target="_blank">NexTCube</a>. By chance, I found instructions how to install OpenStep 4.2 on Parallels. Finally, NexStep(OpenStep4.2) started running on my machine. o/<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK9Jhth_i_ekFNnpXywxzXIYQk0cL4BvMWAurNTvOgpPEg63_chuvZozQh68hphDDj7RbHVtgSiz55SyHafGzRBXOAmcMVW_sJeQTg1Yjg7diKBuFqDM1KAFNhTyLGxd9tvU2pyQ/s1600/Parallels+Picture+3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1440" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhK9Jhth_i_ekFNnpXywxzXIYQk0cL4BvMWAurNTvOgpPEg63_chuvZozQh68hphDDj7RbHVtgSiz55SyHafGzRBXOAmcMVW_sJeQTg1Yjg7diKBuFqDM1KAFNhTyLGxd9tvU2pyQ/s400/Parallels+Picture+3.png" width="400" /></a></div>
<br />
If you want to run OpenStep 4.2, follow <a href="http://openstep.bfx.re/" target="_blank">this instruction</a>. The only problem is that network doesn't work so it needs to install a network driver. I found <a href="https://forum.parallels.com/threads/openstep-4-2-how-to-setup-networking.8837/" target="_blank">the solution</a> by googling, but the link of NE2000 disk image(<a class="externalLink" href="http://www-teaching.physics.ox.ac.uk/NextStep/NE2K_driver.fdd)" rel="nofollow" style="background-color: white; border-radius: 5px; color: #363636; font-family: "open sans", tahoma, helvetica, arial, sans-serif; font-size: 13px; margin: 0px -3px; padding: 0px 3px;" target="_blank">http://www-teaching.physics.ox.ac.uk/NextStep/NE2K_driver.fdd)</a> was broken. Fortunately, I was able to recover the link from <a href="https://archive.org/">https://archive.org/</a> so you can download <a href="https://www.dropbox.com/s/igsaopb8rur3r8t/NE2K_driver.fdd?dl=0" target="_blank">it</a>.<br />
<br />
Network setting:<br />
1) Install the NE2K driver;<br />
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.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtlRbOqWstLjSJwWwAnyi_Pl-a10Vje_CupS1mI1ivB4zQRApEYsQEo_DxFsQdMXVBcL2EjEE7P6RRXJzC8eZzPDO3sfW2asrqyEmVyw8kgl9qsXDMyI0dLse8oUamgUX6zL4ohA/s1600/Screen+Shot+2017-09-21+at+12.28.29+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1222" data-original-width="1362" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtlRbOqWstLjSJwWwAnyi_Pl-a10Vje_CupS1mI1ivB4zQRApEYsQEo_DxFsQdMXVBcL2EjEE7P6RRXJzC8eZzPDO3sfW2asrqyEmVyw8kgl9qsXDMyI0dLse8oUamgUX6zL4ohA/s640/Screen+Shot+2017-09-21+at+12.28.29+AM.png" width="553" /></a></div>
<br />
3) Set the shared network. Reboot.<br />
5) Open HostManager.app. Under Local choose "use local domain only".<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig9X_IwnA4Y_i8V87SE2Gzs35jx_SAazXE6GgjMtJjefuU_ulSPchcq5SSFhvOhnCZ_h7M1DIK8svO4cIsHr2mGxjwWdYo9b5FzhObLrKdUHOzLAh61dsI0IKoWPe7a4sTwCcNcw/s1600/Parallels+Picture.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="313" data-original-width="553" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig9X_IwnA4Y_i8V87SE2Gzs35jx_SAazXE6GgjMtJjefuU_ulSPchcq5SSFhvOhnCZ_h7M1DIK8svO4cIsHr2mGxjwWdYo9b5FzhObLrKdUHOzLAh61dsI0IKoWPe7a4sTwCcNcw/s640/Parallels+Picture.png" width="553" /></a></div>
<br />
6) Assigned one of available IPs in your local network. Let the machine Reboot;<br />
7) Add a name server in /etc/resolv.conf<br />
<br />
Installing developer tools: there is a good video on Youtube:<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/5xQRhskhzvE/0.jpg" frameborder="0" height="266" src="https://www.youtube.com/embed/5xQRhskhzvE?feature=player_embedded" width="320"></iframe></div>
<br />
The next step is to write some Objective-C code with <a href="http://www.nextcomputers.org/NeXTfiles/Docs/Software/OPENSTEP/802-2110.pdf" target="_blank">this book</a> and download some applications from <a href="http://www.nextcomputers.org/NeXTfiles/">http://www.nextcomputers.org/NeXTfiles/</a><br />
<br />
<br />
References:<br />
<ul>
<li><a href="http://openstep.bfx.re/">http://openstep.bfx.re/</a></li>
<li><a href="http://www.nextcomputers.org/docs/FAQ-OpenStepOnEmulators.pdf">http://www.nextcomputers.org/docs/FAQ-OpenStepOnEmulators.pdf</a></li>
<li><a href="https://forum.parallels.com/threads/openstep-4-2-driver-thread.3408/">https://forum.parallels.com/threads/openstep-4-2-driver-thread.3408/</a></li>
<li><a href="http://www.nextcomputers.org/forums/viewtopic.php?t=2992">http://www.nextcomputers.org/forums/viewtopic.php?t=2992</a></li>
<li><a href="https://forum.parallels.com/threads/older-nic-emulation-before-gigabit.110324/">https://forum.parallels.com/threads/older-nic-emulation-before-gigabit.110324/</a></li>
</ul>
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-91853030241830946232017-08-24T13:47:00.000-07:002019-05-30T00:09:52.744-07:00Working on the Servo projectI began to work on the Servo project. Actually, <a href="https://joone4u.blogspot.com/search/label/Mozilla" target="_blank">my first open source project was Mozilla </a> and also I was involved in the Korea Mozilla community. During the time, I contributed to Fennec browser by <a href="https://joone4u.blogspot.com/2009/08/how-to-check-hardware-keyboard-on.html" target="_blank">fixing bugs</a> and localization. Anyway, <a href="https://andreasgal.com/2017/07/19/firefox-marketshare-revisited/" target="_blank">this blog article</a> motivated me work on Mozilla again.<br />
<br />
I landed <a href="https://github.com/servo/servo/commit/ac877659e664897c2c2f303eb983458eab7212c7" target="_blank">a simple patch</a> and am working on adding <a href="https://github.com/servo/rust-azure/pull/272" target="_blank">the ellipse API to Canvas API</a>. I see many missing features so it looks like the blue ocean for me compared to the Chromium project.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-8068048205727622682017-03-01T13:06:00.001-08:002017-07-21T23:24:24.421-07:00Enable to open multiple file-pickers in Chromium for LinuxSometimes, we don't know exact requirements or expect user behaviors while developing or fix something. <a href="https://codereview.chromium.org/1624793002/" target="_blank">I fixed the file-picker modal issue in Chromium for Linux last year</a>. At that time, the reviewer and I thought that there would be no case to pop-up multiple file-pickers, but <a href="https://bugs.chromium.org/p/chromium/issues/detail?id=678982" target="_blank">it happened</a> since M55 when you follow the following steps:<br />
1) Enable "Ask where to save" in settings.<br />
2) Open 2 tabs of e.g.: https://sourceforge.net/projects/azureus/files/latest/download<br />
3) Wait for 2 downloader windows, and close/cancel/etc both<br />
4) Freeze or crash<br />
<br />
Here is a video to reproduce the problem.<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="//sendvid.com/embed/ftfxjo9t" width="560"></iframe>
<br />
<br />
<br />
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 <a href="https://codereview.chromium.org/2709283003/" target="_blank">the fix</a>.<br />
Anyway, you may see the fix in M58(Apr 25th, 2017)<br />
<div>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-553479975934520162017-02-17T14:48:00.002-08:002021-02-18T23:50:24.989-08:00Apple-style-span class was fully removed from BlinkFinally, Apple-style-span class was fully removed from Blink(<a href="https://codereview.chromium.org/2685793002/">commit</a>).<br />
<br />
Apple-style-span has not been produced since 2011: <a href="https://webkit.org/blog/1737/apple-style-span-is-gone">https://webkit.org/blog/1737/apple-style-span-is-gone</a>, but there were still some legacy code to handle Apple-style-span class because old WebKit engines has produced it, but now <a href="https://www.chromestatus.com/metrics/feature/timeline/popularity/461" target="_blank">the usage is quite low(<=0.0001%)</a>. So, we decided to remove it from Blink at BlinkOn7. The code was executed whenever the users copy a text or run Editing APIs(document.execCommand) to keep the styles when pasting it. Other non-standard CSS classes(Apple-interchange-newline, Apple-converted-space, Apple-paste-as-quotation) will be also removed soon if possible.<br />
<br />
Anyway, I feel that editing in Chromium is a bit faster :PUnknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-6707538921235258352016-11-29T13:15:00.000-08:002017-03-01T13:33:21.724-08:00Make file-picker modal in Chromium for LinuxWhen 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.<br />
There was already<a href="https://bugs.chromium.org/p/chromium/issues/detail?id=408481" target="_blank"> a bug</a> and it seemed easy to fix it, but, it took 2 years to fully fix the problem.<br />
<br />
The root cause is as follows:<br />
<br />
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:<br />
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 18pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 18pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Opening a file-picker</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="175" src="https://lh6.googleusercontent.com/deldsoZkd_koKpVHQMkIp6MFYpCIBPHJZlAMTQsPNXOsXwMfVO4_gTNP5R_WHWKmrK2Q2kkLNYZKah3BD1ueHtOnjw7NlDK5R05q3KplTPeYECT-sqPfUm5d0N6k90eWhnmSbMzY" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="559" /></span></div>
<br />
<br />
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.<br />
<div>
<br />
<div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">class ScopedHandle {</span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> public:</span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> explicit ScopedHandle(const base::Closure& destroy_callback);</span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> ~ScopedHandle();</span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> void CancelCallback();</span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> private:</span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> base::Closure destroy_callback_;</span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> DISALLOW_COPY_AND_ASSIGN(ScopedHandle);</span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><br class="kix-line-break" /></span><span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> };</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
In addition, we also set another destroy callback(OnFilePickerDestroy) to the GtkFileChooserDialog that can be called when the file-picker is closed.
<br />
<h2 dir="ltr" style="line-height: 1.38; margin-bottom: 4pt; margin-top: 18pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 18pt; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Close the file-picker</span></h2>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><img height="167" src="https://lh3.googleusercontent.com/1dcXzpAM5KvIEPZ9AQQalrNa7FOmA5swv6INlICgGfaS19mglnoKmBnI9EVYDpGAxkyVw1Ovhzei3tspqqVP8-6vZOXsm47uh-sXWxrsqSM4aKT1j0dCBWSdzZ6AFaSbv5ue5uJQ" style="-webkit-transform: rotate(0.00rad); border: none; transform: rotate(0.00rad);" width="592" /></span></div>
<b style="font-weight: normal;"><br /></b>
As you can see, OnFilePickerDestroy deletes scoped_handle.<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">void OnFilePickerDestroy(views::DesktopWindowTreeHostX11::ScopedHandle*</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> scoped_handle) {</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> delete scoped_handle;</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span></div>
<b style="font-weight: normal;"><br /></b>
<br />
Then, |destroy_callback| of ScopedHandle below is automatically called.<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">void DesktopWindowTreeHostX11::EnableEventListening() {</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> DCHECK(modal_dialog_xid_);</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> modal_dialog_xid_ = 0;</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> targeter_for_modal_.reset();</span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "courier new"; font-size: 10pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span></div>
<br />
You can find more details and discussion at <a href="https://docs.google.com/document/d/12CfKVTpaonxxM3sNksq6vY6qb0J2qR3b7h_bLxzYanE/edit#" target="_blank">here</a>.<br />
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/1594973009" target="_blank">The first change list was reverted</a> due to the UI freezing problem that happens when the users open a file-picker from a child window of the X11 host window. <a href="https://codereview.chromium.org/1624793002/" target="_blank">The second change list</a> finally fixed this issue(BUG 408481, 579408). I also added a test case for the fix: <a href="https://cs.chromium.org/chromium/src/chrome/browser/ui/libgtkui/select_file_dialog_interactive_uitest.cc?l=74&ct=xref_jump_to_def&gsn=MAYBE_ModalTest">BrowserSelectFileDialogTest.ModalTest</a>.</div>
<br /></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-30258330236513893942016-11-14T16:14:00.000-08:002017-03-08T16:26:51.843-08:00My major contributions to Chromium project<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial";"><span style="font-size: 14.6667px; white-space: pre-wrap;">I have been working on Chromium project since 2013 and fixed many bugs and implemented some features. Here are my major contributions:</span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial";"><span style="font-size: 14.6667px; white-space: pre-wrap;"><br /></span></span></div>
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="font-family: "arial";"><span style="font-size: 14.6667px; white-space: pre-wrap;">Blink Editing</span></span></div>
<ol style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><a href="https://bugs.chromium.org/p/chromium/issues/detail?id=226941" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Issue 226941</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">] Contenteditable issues related to backspace handling</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/2064473002" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/2064473002</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/2117663002" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/2117663002</span></a></div>
</li>
</ul>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><a href="https://bugs.chromium.org/p/chromium/issues/detail?id=318925" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Issue 318925</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">] Copy and paste sometimes removes spaces between words</span></div>
</li>
</ol>
<ul style="margin-bottom: 0pt; margin-top: 0pt;"><ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/2193033004" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/2193033004</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/2280513004" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/2280513004</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/2320533002" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/2320533002</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/2325553002" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/2325553002</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/2336043006" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/2336043006</span></a></div>
</li>
</ul>
</ul>
<ol start="3" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><a href="https://bugs.chromium.org/p/chromium/issues/detail?id=310149" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Issue 310149</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">] ContentEditable: is forced on SPACE between text nodes</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/2175163004" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/2175163004</span></a></div>
</li>
</ul>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><a href="https://bugs.chromium.org/p/chromium/issues/detail?id=335955" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Issue 335955</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">] Unwanted spans inserted in contentEditable elements</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/2072093002" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/2072093002</span></a></div>
</li>
</ul>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><a href="https://bugs.chromium.org/p/chromium/issues/detail?id=571420" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">issue 571420</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">] chrome hangs on when creating bullet list in contenteditable</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/2250133004" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/2250133004</span></a></div>
</li>
</ul>
</ol>
<ol start="6" style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><a href="https://bugs.chromium.org/p/chromium/issues/detail?id=634482" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Issue 634482</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">] Formatting tags converted to spans with styles on cut/paste</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/2229703004" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/2229703004</span></a></div>
</li>
</ul>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><a href="https://bugs.chromium.org/p/chromium/issues/detail?id=625802" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Issue 625802</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">] Unnecessary quote appears after clicking on indent more option in compose box.</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/2175433002" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/2175433002</span></a></div>
</li>
</ul>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><a href="https://bugs.chromium.org/p/chromium/issues/detail?id=582225" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Issue 582225</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">] document.queryCommandState isn't working well with <sub> and <sup></sup></sub></span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/1986563002" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/1986563002</span></a></div>
</li>
</ul>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><a href="https://bugs.chromium.org/p/chromium/issues/detail?id=584939" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Issue 584939</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">] document.queryCommandState returns true for bold, italic, underline, and strikethrough after selecting image</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/1960553002" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/1960553002</span></a></div>
</li>
</ul>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><a href="https://bugs.chromium.org/p/chromium/issues/detail?id=385374" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Issue 385374</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">] queryCommandState can return true for both list types</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="https://codereview.chromium.org/2268843002" style="text-decoration: none;">https://codereview.chromium.org/2268843002</a></span></div>
</li>
</ul>
<li><span style="font-family: arial;"><span style="font-size: 14.6667px;">[<a href="https://bugs.chromium.org/p/chromium/issues/detail?id=232188" target="_blank">issue 232188</a>] Caret color issue in content editable element</span></span></li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li><a href="https://codereview.chromium.org/14098003/">https://codereview.chromium.org/14098003/</a> </li>
</ul>
</ol>
<b style="font-weight: normal;"><br /></b>
<br />
<div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Aura and Wayland support:</span></div>
<br />
<ol style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><a href="https://bugs.chromium.org/p/chromium/issues/detail?id=408481" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Issue 408481</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">] System dialogs (e.g. 'Save As...') are not modal on Ubuntu</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/1624793002/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/1624793002/</span></a></div>
</li>
</ul>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><a href="https://bugs.chromium.org/p/chromium/issues/detail?id=473228" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Issue 473228</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">] Make *::ShowWithWindowState(minimized, maximized, fullscreen) consistent across platforms</span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/1125383008" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/1125383008</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/1138383008" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/1138383008</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/1159703006" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/1159703006</span></a></div>
</li>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://codereview.chromium.org/1130033003" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">https://codereview.chromium.org/1130033003</span></a></div>
</li>
</ul>
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: decimal; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<a href="https://bugs.chromium.org/p/chromium/issues/detail?id=578890" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Issue 578890</span></a><span style="background-color: transparent; color: black; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> upstream wayland backend for ozone </span></div>
</li>
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: circle; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: #1155cc; font-family: "arial"; font-size: 11pt; font-style: normal; font-variant-caps: normal; font-variant-ligatures: normal; font-weight: 400; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="https://codereview.chromium.org/2042503002" style="text-decoration: none;">https://codereview.chromium.org/2042503002</a></span></div>
</li>
</ul>
<li><span style="font-family: arial;"><span style="font-size: 14.6667px;"><a href="https://bugs.chromium.org/p/chromium/issues/detail?id=50485" target="_blank">Issue 50485</a> Korean Hangul typing issue </span></span></li>
<ul>
<li><a href="https://codereview.chromium.org/13818036/">https://codereview.chromium.org/13818036/</a></li>
</ul>
</ol>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-73181130990953805232014-07-22T22:21:00.001-07:002018-04-23T10:23:03.408-07:00OSCON 2014<br />
I attended OSCON 2014 held in Portland, Oregon. I think Portland is the Mecca of Open Source because OSCON is held there every year and Intel Open Source Technology center is also in Hillsboro near Portland. In addition, Linus Torvalds is based in Portland.<br />
<br />
I wanted to attend some sessions this year, but I didn't see many topics related to my job. There are more high-level topics above system level. Anyway, it's great to hear voices from web developers as a web engine developer.<br />
<br />
OSCON is a bit different from other F/OSS conferences, which is aimed at the Web development, clouds, database, language, and hardware like Raspberry Pi and Arduino. So, there are no Linux kernel, GNOME/KDE, and other system-level topics. I think that Guadec or FOSDEM is well suited for me.<br />
<br />
Anyway, I really enjoyed the atmosphere of the F/OSS conference. I saw many hackers and geeks who were hacking around session rooms. There were many BoFs until 10PM.<br />
<br />
Many companies that have open source solutions joined the Expo. They showed their solutions and services to visitors. Intel also showed a <a href="https://crosswalk-project.org/">Crosswalk</a> demo video with a web application running on Crosswalk controlling a drone remotely, which shows Crosswalk can talk to the device using JavaScript to communicate with each other over wireless networks. It was cool.<br />
<br />
I had an opportunity to use Firefox OS. The device looks cheap, but the UI responsiveness is really good. I heard that it's just 150$, but it was released in some developing countries. I hope to see a Firefox OS phone in the major markets. I got lots of information from the Firefox OS session. The speakers introduced ways on how to develop Firefox OS applications and to use the development tools. It's quite interesting to know that Firefox OS applications can run in Firefox for Android.<br />
<br />
I need to learn other areas to enjoy talks more in OSCON next year. :-)<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-7186610949067222492014-04-02T13:24:00.001-07:002014-07-07T22:21:09.083-07:00Ozone-WaylandOzone-Wayland is an Ozone implementation of Chromium, which allows to run <a href="http://crosswalk-project.org/">Crosswalk</a> and Chromium browser natively on Wayland without any X11 dependence[1].<br />
<br />
I have been working on Ozone-Wayland recently. There were two releases since I was involved in the development.<a href="https://github.com/01org/ozone-wayland/tree/Milestone-Easter"> In the latest release</a>, I contributed the virtual keyboard support to Ozone-Wayland. You can find how it works in the following video:<br />
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="https://i1.ytimg.com/vi/M_whbw363ik/0.jpg" height="266" width="320"><param name="movie" value="https://www.youtube.com/v/M_whbw363ik?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="320" height="266" src="https://www.youtube.com/v/M_whbw363ik?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/dW2a9mTAYj0?feature=player_embedded' frameborder='0'></iframe></div>
<br />
The ozone-wayland team has been focusing on graphics accelerations such as WebGL, Canvas 2D, Accelerated Compositing on Wayland. WebGL and Canvas 2D accelerations can be accelerated by <a href="https://github.com/01org/ozone-wayland/issues/29">off-screen Rendering</a> in GPU process. In the latest release, we started supporting multi-touch and virtual keyboard, which work fine on Tizen IVI as you can the above video.<br />
<br />
What is Ozone?<br />
<a href="http://www.chromium.org/developers/design-documents/ozone">Ozone</a> is an abstraction layer used by Chromium browsers to separate out the different windowing systems and also abstract surface acceleration for Aura UI framework, input handling, event handling, and other UI-related matters[4]. Ozone-Wayland provides Wayland support for Ozone[2].<br />
<br />
Reference<br />
<br />
<ol>
<li>Project Homepage: <a href="https://github.com/01org/ozone-wayland">https://github.com/01org/ozone-wayland</a></li>
<li><a href="https://01.org/ozone-wayland/blogs/kalyankondapally/2014/beta-channel-updated-m35">https://01.org/ozone-wayland/blogs/kalyankondapally/2014/beta-channel-updated-m35</a></li>
<li><a href="http://www.phoronix.com/scan.php?page=news_item&px=MTY0Mzc">Ozone-Wayland Release Adds Virtual Keyboard, Touch Support</a>, Mar. 26, 2014 </li>
<li><a href="http://www.phoronix.com/scan.php?page=news_item&px=MTQ3OTE">Chromium On Wayland "Ozone" Continues</a>, Oct. 07, 2013</li>
<li><a href="http://www.phoronix.com/scan.php?page=news_item&px=MTUxMTA">Wayland-Based Chromium Browser Released</a>, Nov. 11, 2013</li>
<li><a href="http://www.phoronix.com/scan.php?page=news_item&px=MTQ2NDY">Chromium Ported To Wayland, Now Working</a>, Sep. 18, 2013</li>
</ol>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-90110551750118283802013-12-30T07:13:00.000-08:002014-01-11T07:24:26.720-08:00What I learned about American holidaysThis year, I experienced Halloween, Thanksgiving day, and Christmas with my family for the first time since I moved to the US. There were many new things I learned about these holidays, so I’d like to share them with you.<br />
<br />
Many Koreans know about Halloween because the young Korean people who had studied in the US started bringing Halloween customs back to South Korea and enjoying Halloween there since the 2000s and the majority of kindergartens have a Halloween costume party these days, but Halloween is still not commonly celebrated in Korea, so it’s very hard to find a person wearing a Halloween costume on the streets on Halloween.<br />
<br />
I didn’t know that Halloween started in the US at first. From reading Wikipedia, I learned that Irish immigrants brought their Halloween into the new land and then it has been developed into what we see today. Actually, I didn’t know Halloween is such a big holiday like Christmas, until I saw every big market start to sell big pumpkins at the end of September. Moreover, a Korean also suggested to me that I visit <a href="http://plumperpumpkins.com/">a pumpkin farm</a> near Portland together. I didn’t think I would buy a pumpkin at that time. Anyway, I took my family there in early October.<br />
<br />
<img height="300" src="https://lh3.googleusercontent.com/ciq0dYERYNlC67DQCN73o90tEFoL5OS22VUKVlWAPj6A4sbR9fHaBN4g08AjENrzFp_h4DAXtbtfNpfVc9svzdumJ5Cq94Dh4DnILbYb2GPLsQXMyNvraQsrdw" width="400" /><br />
<br />
I was surprised to see many pumpkins in the field. The pumpkin farm was very fun to walk around. I got on a small train with my daughter lead by a tractor. There were many kinds of farm animals such as ponies, pigs, cows, sheep, and chickens, so my daughter saw them very closely, which made her excited. Every family, including the Korean family, bought pumpkins. Finally, I bought a pumpkin for my daughter and it still rolls around on the living room floor.<br />
<br />
On Halloween, my daughter wore a vampire dress and went out with me to get candies and chocolates. I saw many children and their parents wore various costumes walking around. They really enjoyed the day, even some who were adults, so I considered wearing a costume for the next Halloween day. My daughter is also prepared for next Halloween: I already bought her another costume for 50% off!<br />
<br />
<img src="https://lh6.googleusercontent.com/HPSETp8V4-EeMY8dmQDnSygA8kltjGSSlWQMnGrOOb_Lf65lYs54Xb7uka_py3SFSnOz5tJ2Kf-o4E28LiD4VHnRGEgP3N8e2CI4leiMfpYMgjZEJboSPtfZ_w" /><br />
<br />
<br />
After Halloween, I noticed that many people started getting ready for Thanksgiving. I I became aware that, like Halloween, Thanksgiving Day also started in the U.S. I thought every Western person enjoyed Thanksgiving day, similar to how Korean people sometimes think all western people are American. <br />
<br />
Fortunately, an older Korean couple who have been living in the U.S. for many years invited me to their Thanksgiving dinner. If it wasn't for my friendly daughter, I might not have had the chance to participate in a Thanksgiving feast. While my wife was grocery shopping with my daughter near our apartment one day, she smiled at an elderly Korean couple. They started chatting, and my wife found out that they had lived in the U.S. for many years. They ended up inviting me to their house for Thanksgiving dinner. They prepared a turkey, sweet potatoes, cranberry jam and kimchi and soybean stew. The turkey was really good. I heard that it takes a lot of time to cook a turkey, from marinating to roasting. I would like to thank the couple and hope everything is great with them.<br />
<div>
<img height="400" src="https://lh5.googleusercontent.com/hKE-2oh7G0ThV5q-1fG59vOr0Y-ZvRLpz7VZ5-azBn7iO4yE4sm66JggkyouZzdtDOD9S6E-Yt2F9eyJYER_jO4bfXq2fXtVZ3sTbvH-TB9khcw3_NTSE8xuBA" width="300" /><br />
Christmas Day in the U.S. is a bit different although it is also a holiday in Korea. It seemed that every family really enjoyed Christmas day: I saw many houses decked out with lights for Christmas and my colleagues brought Christmas cookies to the office. I also decorated a Christmas tree with ornaments and lights for my daughter, which was my first time to have a Christmas tree at home. My tree is a fake one, but many families seem to buy a real tree. As you may know, it’s very hard to find a real Christmas tree and houses decked with lights in Korea. Usually, churches and department stores are decked with lights, but not private homes. Decorating a Christmas tree is also not common, even for Christians. I also attended the <a href="http://www.koin.com/news/portland/pioneer-square-filled-for-tree-lighting">Portland Christmas tree lighting ceremony in Pioneer Square</a>, which is one of my best memories of Portland. An interesting thing was that nobody around me had attended this ceremony, which for me was like many Seoul citizens never having gone up to the observation deck of the <a href="http://en.wikipedia.org/wiki/63_Building">63 building </a>in Yeouido.<br />
<br />
Through experiencing these holidays in Oregon for the first time, I realized that we just know superficial things about how other people live in their countries, and I have resolved to try to learn as much as possible about America and Americans while I live in the U.S. </div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-83383157260044542522012-11-29T22:43:00.000-08:002013-06-07T16:09:06.414-07:00Why Gangnam style became more popular than other typical Kpop idol songs<span id="internal-source-marker_0.7715885839425027"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Can you believe that a Kpop </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">song</span><a href="http://www.allkpop.com/2012/09/psys-gangnam-style-ranks-1-on-itunes-in-31-countries"><span style="color: black; font-family: Arial; font-size: 15px; text-decoration: initial; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">reached no.1 on iTunes in 31 countries</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">?</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, e</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">ven though this Kpop song is not </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">an </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">English song, but a Korean song that is </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">called </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">“Gangnam style” by PSY. Actually, nobody expected </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">that </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">this song could be</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">come </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">a great hit wordwide, but this song </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">has</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> been spread all over the world very quickly due to Youtube. In this article, I am going to talk about why “Gangnam style” became more popular th</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">a</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">n other </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">typical</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> Kpop </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">idol</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> songs.</span><br /><span style="font-weight: normal;"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Recently, Kpop has been popular in Asia and </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">has had </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">some fan groups in the w</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">estern countries, but Kpop itself refers</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> to </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">songs for </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">the </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">young</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">er </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">generation, which </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">have been </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">performed by </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">girl and boy groups </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">so far. However, Psy’s “Gangnam style” showed </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">a</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> different side of Kpop songs </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">because he didn’t imitate the pop idols and created his own style that nobody </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">had performed before.</span><br /><span style="font-weight: normal;"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Psy is so unique, even in Korea. He has kept his own character since he debuted </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">in 2001</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, which is </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">a</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> cheap and comic image. </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">This means that</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> he enjoy</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">s performing in</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> his own style.</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">During the time </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">from his debut until now</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, he has released 5 albums and has 6 </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">number 1</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> hit songs in Korea. His music is always cheerful and make</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">s</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> us excited because he has produced his songs by himself </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">in order to pursue his own style</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">. The interesting thing is that his style ha</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">s</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> gained </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">in</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> popularity because his song</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">s</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> give comfort to people who are suffering from a long recession.</span><br /><span style="font-weight: normal;"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Why</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> did</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> “Gangnam style” became popular? </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">The contract with Justin Bieber’s manager, Scooter Braun played an important role</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">, but without Youtube, all things might have never happened. Currently, Psy’s Gangnam style has racked up over 400 million views on YouTube and becoming the most-liked video in the site’s history. Actually, </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">h</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">e didn’t make any effort to make people know </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">about </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">his song except </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">by </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">making the comic music video. I think Youtube changed the way of promoting music, which means that there are no barriers to find music. A few years ago, </span><a href="http://www.youtube.com/watch?v=yobkYjbcM7c&feature=fvst"><span style="color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">one Indian song</span></a><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> was popular in Korea because </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">of</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> its comic style. Psy’s song is the same case.</span><br /><span style="font-weight: normal;"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Psy’s success is not by chance, because he has </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">been </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">develop</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">ing</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> his own music style for 10 years. “Gangnam style” is just</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> the first of his songs </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">to show his character and music to the world. I’m sure again that creating </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">one’s </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">own style is always better than imitat</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">ing </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">others in many areas. </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">Furthermore,</span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">anyone can be a star through Youtube if they have any special talents which other stars haven’t shown.</span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">References:</span></span><br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"><a href="http://www.nytimes.com/2012/10/14/arts/music/interview-psy-the-artist-behind-gangnam-style.html?_r=0"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://www.nytimes.com/2012/10/14/arts/music/interview-psy-the-artist-behind-gangnam-style.html?_r=0</span></a></li>
<li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"><a href="http://edition.cnn.com/2012/10/01/world/asia/psy-gangnam-style-charts/index.html"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://edition.cnn.com/2012/10/01/world/asia/psy-gangnam-style-charts/index.html</span></a></li>
<li dir="ltr" style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"><a href="http://askakorean.blogspot.com/2012/10/aak-music-gangnam-style-by-psy.html"><span style="color: #1155cc; vertical-align: baseline; white-space: pre-wrap;">http://askakorean.blogspot.com/2012/10/aak-music-gangnam-style-by-psy.html</span></a></li>
</ul>
<b style="font-weight: normal;"><span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span></b>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-77560389739109562172012-03-26T00:22:00.000-07:002012-03-26T01:04:07.192-07:00Using Nokia N9 in Korea<br />
<div style="background-color: transparent;">
<span id="internal-source-marker_0.13894733507186174"><a href="http://robswain.tumblr.com/post/15234704977/nokia-n9" style="font-weight: bold;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">It’s been almost 3 months since I started using a Nokia N9</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> as my secondary phone, which is </span><a href="http://www.engadget.com/2011/10/22/nokia-n9-review/" style="font-weight: bold;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">a Linux based smart phone released by Nokia on October 2011</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. In this post, I will introduce what Nokia N9 is and how to use it in Korea, because it adopts an open source mobile platform which means that anyone can be involved with the project.</span><br /><span class="Apple-style-span" style="background-color: transparent;"><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Nokia N9</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Unfortunately, N9 is the first and last MeeGo phone, but it seems to be close to the Maemo platform, because it uses Qt as the UI framework and the Debian package system. In addition, </span><a href="http://ariya.ofilabs.com/2011/08/first-look-at-nokia-n950-web-browser.html"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">N9 is the first mobile phone</span><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">to<b> </b></span><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">embrace WebKit2 which supports the multi-process model</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, so </span><a href="http://trac.webkit.org/wiki/SettingUpDevelopmentEnvironmentForN9" style="font-weight: bold;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">you can build WebKit for Nokia N9</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><br /><span class="Apple-style-span" style="background-color: transparent;"><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Korean Support</span></span></div>
<div style="background-color: transparent;">
<b><img height="500px;" src="https://lh4.googleusercontent.com/HPj23pI87uzGfFaK9rG8Ky_JER75f1qZX6xQpIcL5Whr5IpTykSpiWSWOMO8YMP_Hf7BUkBKzdkprG--GZu1w9JxyPkz_QsfPRP7l3nlwVHSKBrqVA8" width="281px;" /><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Actually, I had been having trouble with using N9 because it doesn’t support Korean language officially, so there is no Korean keyboard and Korean fonts by default. Fortunately, </span><a href="http://talk.maemo.org/showthread.php?t=78578"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">a Nokia Korean engineer</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> developed </span><a href="http://shootspeak.com/2011/10/13/korean-input-support-for-nokia-n9-alpha-release/"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">a Hangul keyboard and its debian package with Korean fonts</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. I think he might have worked on this in his free time. I am very grateful for his efforts. You can find </span><a href="https://gitorious.org/nokia-n9-hangul/meegohangul"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">the source code of the Korean keyboard from Gitorious</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">N9 User Group in Korea</span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">In addition, there is </span><a href="http://cafe.naver.com/ArticleList.nhn?search.clubid=18321033&search.menuid=256&search.boardtype=L"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">a small N9 user group in Korea</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, so I got some information on</span><span style="background-color: transparent; font-family: Arial; font-size: 15px; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">how to register N9 with Korean wireless telecommunication operators such as SK Telecom and KT. Interestingly, the saleswoman in the phone shop was able to set it up without asking any questions while registering it, which shows that N9 UI is very intuitive to use.</span><span style="background-color: transparent; font-family: Arial; font-size: 15px; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br /><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Developer Support</span></b></div>
<div style="background-color: transparent;">
<b><img height="500px;" src="https://lh6.googleusercontent.com/jHmDwm_bXSDDiq2YzwOlCAXrN7KRxCH19YOe4j02w1i58ca_2xeWbODBIi8X9xlpNVE7LhXHK2YlDavX8BgNmjlmb45hUDVFjepSX2nOB-ixFaXgfy4" width="281px;" /></b><br />
<a href="http://harmattan-dev.nokia.com/docs/library/html/guide/html/Developer_Library_Developing_for_Harmattan_Activating_developer_mode.html" style="font-weight: bold;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">It’s quite easy to install developer packages in N9</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. You can run an X-terminal and browse the directories to check which system libraries are installed. Furthermore, if you want to develop a QT application, </span><a href="http://www.developer.nokia.com/Devices/MeeGo/"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">you can</span><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;">even</span><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"> </span><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">install the QT SDK and developer tools in your Linux, Windows, and Mac</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><br />
<span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br />
<span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Installing Gtk+</span><br />
<span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Gtk+ had been used as the default UI widget until Maemo Fremantle, but N9 started using Qt by default. Fortunately, a hacker did the porting of </span><a href="http://repository.maemo.org/pool/maemo5.0/free/g/gtk+2.0/" style="font-weight: bold;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">Gtk+ for Maemo Fremantle</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> to N9, so, </span><a href="http://talk.maemo.org/showthread.php?t=79229" style="font-weight: bold;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-weight: normal; vertical-align: baseline; white-space: pre-wrap;">you can install the same Gtk2.14.7+</span></a><span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> on N9. </span><br />
<span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br />
<span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">What about the next model of N9?</span><br />
<span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I think that Nokia didn’t give up their generic Linux platform although they chose the Window phone platform instead of MeeGo. I expect that Nokia will continue on releasing Qt based smart phones in the future because a true Linux platform will be their hidden key someday.</span><br />
<span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br />
<span style="background-color: transparent; font-family: Arial; font-size: 15px; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Anyway, if you want to make your own mobile platform or test its component software, N9 would be a good test bed for you.</span></div>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-7585815.post-82212015756370316342012-02-21T18:13:00.000-08:002012-02-21T20:19:51.117-08:00Glad to become a new GNOME foundation member<br />
<div style="background-color: white;">
After I read <a href="http://blogs.gnome.org/gnomg/2012/01/27/apply-for-your-gnome-membership/">this blog post</a>, I applied for membership in the GNOME Foundation. Finally, my application was accepted last week. I think that my WebKitGtk+ contribution and GNOME Korea activities could count towards membership.</div>
<div style="background-color: white;">
<br /></div>
<div style="background-color: white;">
The main reason why I decided to become a GNOME foundation member is to let GNOME folks know about the GNOME Korea community(<a href="http://gnome.or.kr/" rel="nofollow">http://gnome.or.kr</a>). The GNOME Korea community started to translate for GNOME in 1998, and is mainly working on Korean translation(<a href="http://l10n.gnome.org/teams/ko/" rel="nofollow">http://l10n.gnome.org/teams/ko/</a>). Changwoo Ryu has led the Korean translation team since the early stages of GNOME. As a member of the GNOME Korea community, I organize GNOME Tech Talks every month to introduce various GNOME technologies to Korean developers and am also in charge of maintaining the GNOME Korea blog (<a href="http://gnome-kr.blogspot.com/" rel="nofollow">http://gnome-kr.blogspot.com/</a>).</div>
<div style="background-color: white;">
<br /></div>
<div style="background-color: white;">
I'm really grateful to become a new GNOME foundation member. In particular, I’d like to thank Xan Lopez and Gustavo Noronha(kov) for helping me to become involved in WebKitGtk+ development. In the future, I will try to report on activities of the GNOME Korea community and my GNOME experiences through <a href="http://planet.gnome.org/">Planet GNOME</a> and here.</div>
<div style="background-color: white;">
<br /></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-1198787461993202202011-12-05T03:25:00.001-08:002017-02-12T22:28:15.058-08:00Accelerated Composting in WebKitGtk+During <a href="http://live.gnome.org/Hackfests/WebKitGTK2011">the WebKitGkt+ hackfest 2011</a>, I applied Accelerated Compositing to WebKitGtk+ using<a href="http://www.clutter-project.org/"> Clutter</a> so it started working like <a href="http://trac.webkit.org/wiki/clutter">the webkit-clutter port</a>. Finally, I was able to run <a href="http://blog.kov.eti.br/?p=214">the same demo</a> in GtkLauncher as follows:<br />
<video controls="" src="http://people.collabora.com/~joone/videos/webkitgtk_ac_demo1.ogv" width="480"></video><br />
<video controls="" src="http://people.collabora.com/~joone/videos/webkitgtk_ac_demo2.ogv" width="480"></video><br />
<br />
This is not upstreamed yet, but <a href="https://bugs.webkit.org/show_bug.cgi?id=73319">Imy patches are getting reviewed.</a> Gustavo and Martin are helping me write more good patches. Thanks!<br />
<br />
I think that this hackfest was done well. You can check more news about the WebKitGtk+ hackfest from other blog posts:<br />
<a href="http://blogs.igalia.com/juanjo/2011/12/04/webkitgtk-hackfest-wrap-up/">http://blogs.igalia.com/juanjo/2011/12/04/webkitgtk-hackfest-wrap-up/</a><br />
<a href="http://blogs.igalia.com/juanjo/2011/11/17/announcing-the-webkitgtk-hackfest-2011/">http://blogs.igalia.com/juanjo/2011/11/17/announcing-the-webkitgtk-hackfest-2011/</a><br />
<a href="http://www.hadess.net/search/label/hackfest">http://www.hadess.net/search/label/hackfest</a><br />
<br />
I would like to thank my employer Collabora, Igalia and the GNOME Foundation for helping us attend the hackfest. See you at the next hackfest!<br />
<div>
<br />
<a href="http://foundation.gnome.org/"><img src="https://www.gnome.org/wp-content/themes/gnome-grass/images/gnome-logo.png" /></a> <br />
<br />
<a href="http://igalia.com/"><img height="71" src="https://blogs.gnome.org/xan/files/2011/12/igalia.png" width="200" /></a> <br />
<br />
<a href="http://collabora.com/"><img src="https://foundation.gnome.org/img/logos/collabora.png" /></a> </div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-23232565162354897482011-11-30T04:29:00.001-08:002011-12-02T10:22:14.404-08:00WebKitGtk+ Hackfest 2011<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="http://farm8.staticflickr.com/7032/6430000691_8da7528408.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="http://farm8.staticflickr.com/7032/6430000691_8da7528408.jpg" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">(C) Mario </td></tr>
</tbody></table>
<br />
Gustavo and I are attending<a href="http://live.gnome.org/Hackfests/WebKitGTK2011"> the WebKitGtk+ hackfest 2011</a> which is held at the Igalia office in A Coruña, Spain like <a href="http://joone4u.blogspot.com/2010/12/webkitgtk-hackfest-2010.html">the last time</a>. This is an annual event for WebKitGtk+ maintainers to work together at the same place.<br />
<br />
We made a list of work items on the blackboard as usual on the first day. You can find <a href="https://live.gnome.org/Hackfests/WebKitGTK2011/Agenda">these topics in the wiki</a>. My major work item is to apply <a href="http://blog.kov.eti.br/?p=214">Accelerated Compositing implementation of the clutter port</a> to WebKitGtk+. If I finish it a bit earlier, I will try to hack my unresolved patches such as <a href="https://bugs.webkit.org/show_bug.cgi?id=65093">IME support in WebKit2Gtk+</a> and applying <a href="https://bugs.webkit.org/show_bug.cgi?id=45423">Tiled Backing Store to WebKitGtk+</a>.<br />
<br />
Happy Hacking!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-27175257445413321532011-11-23T22:55:00.001-08:002013-06-07T08:43:13.813-07:00Talking about GNOME3I gave a talk about GNOME3 at <a href="http://devon.daum.net/2011/">Daum DevOn conference</a> in Korea. <a href="http://en.wikipedia.org/wiki/Daum_Communications">Daum</a> is a popular web portal site in Korea like Yahoo. They invited many developers & user communities to the conference, so<a href="http://gnome.or.kr/"> the GNOME Korea community</a> had a chance to introduce GNOME3 and the community to the attendees.<br />
<br />
I was so glad to introduce GNOME3.2 and the infra technology like GTK+, Clutter, GStreamer, WebKitGtk+, Telepathy and GObject-Introspection. Here are the slides and some photos.<br />
<br />
<div id="__ss_10371438" style="width: 425px;">
<b style="display: block; margin: 12px 0 4px;"><a href="http://www.slideshare.net/joone/gnome3-10371438" target="_blank" title="GNOME3 & 그놈 한국 공동체">GNOME3 & 그놈 한국 공동체</a></b> <iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/10371438" width="425"></iframe> <br />
<div style="padding: 5px 0 12px;">
View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/joone" target="_blank">Joone Hur</a> <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://farm8.staticflickr.com/7011/6399008623_38bff6870a_z.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://farm8.staticflickr.com/7011/6399008623_38bff6870a_z.jpg" width="240" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://a8.sphotos.ak.fbcdn.net/hphotos-ak-ash4/393262_328490470501585_320150584668907_1606902_1852397409_n.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="179" src="http://a8.sphotos.ak.fbcdn.net/hphotos-ak-ash4/393262_328490470501585_320150584668907_1606902_1852397409_n.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br /></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-51014326391834832782011-08-27T10:35:00.029-07:002011-08-29T19:58:08.998-07:00Desktop Summit 2011<div style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-variant: normal; text-decoration: none; text-indent: 0px; vertical-align: baseline;"><div style="font-style: normal;"><img height="281px;" id="internal-source-marker_0.3584163594059646" src="https://lh3.googleusercontent.com/y5ZuB2RbsMWdipn5Tdto8vRuLRz6OOjPv7p8cMLTKKwDY4UtceMUealfBTvuCBxL6qDSnccLveghEpcLgzHn9b5Cu9Mv8_c42H2BZ_cosrbV32B_9fo" width="500px;" /></div><div style="font-style: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">It has been a week since I got back home from Cambridge. </span>I had a day trip in London b<span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">efore leaving for Korea, which was very nice because I got the chance to look around the royal places, museums, and parks. In particular, </span><a href="http://instagr.am/p/KxTAH"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">I was so excited to find a TINTIN shop by chance</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. :-)</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div><div style="font-style: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Anyway, </span><a href="http://desktopsummit.org/" style="font-style: normal;"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Desktop Summit 2011</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> was great: there were many great talks, workshops, BoFs, and parties as usual. It was good to meet <a href="http://planet.collabora.com/">my Collabora colleagues</a>, WebKitGtk+ maintainers(Kov, Xan, Martin, Alex, Philippe, Diego), <a href="http://blog.peremen.name/">a Korean KDE contributor(peremen)</a>, and some new people</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(Adrián</span>, <span class="Apple-style-span" style="white-space: pre-wrap;">Debarshi,...</span><span class="Apple-style-span" style="font-style: normal;">)</span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. I even gave a talk of webkit-clutter. </span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">If I was asked to compare this summit to </span><a href="http://www.grancanariadesktopsummit.org/" style="font-style: normal;"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">the last one</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, I can say two things: first, GNOME and KDE talks were not duplicated so I could attend </span><a href="https://desktopsummit.org/program/sessions/rekonq-webkit-browser-kde" style="font-style: normal;"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">a KDE talk about a WebKit Browser</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> and there were more common sessions GNOME and KDE folks could share together. Therefore, this conference seemed more like a true Desktop Summit. The next difference was that it’s very hard to find mobile related topics in this conference. I think that It was a big loss for the community that Nokia left MeeGo. Although Intel is trying to maintain the MeeGo Project, it seems like it's not easy to delivery MeeGo to the mobile market alone.</span><br />
<div style="font-style: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div><div style="font-style: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">webkit-clutter talk</span></div><div style="font-style: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><img height="240px;" src="https://lh4.googleusercontent.com/NB0uYBCtahn5nO1-Hu2UL6iYxb5lQp4IYPguFIVMATnMjzDcKOQHzD5LU96XfZZjnd9pjKXS-ju4M8UUzyZBVC73meFWmC6EASh4-bKW_oxDY7yXg4k" width="167px;" /><img height="238px;" src="https://lh5.googleusercontent.com/Einc1etxHtaSP6blBnq1upvFMMbT1BiG8Q9xJtZrUHHJNlDivg6dd9rr8R_58zI2XNqaOEPWXNPthO5qUahQ6GQmVzkwleSRGgr7N3wa6UZIPWQx678" width="234px;" /><img height="240px;" src="https://lh3.googleusercontent.com/E1dmciYZzWukaJvWNVi2jY8bbThDt-12SiVGGZfWeNxuzMPrVWLuS-PiktKGALrHU2hK939joZP7faES3zjXifRvoh0yabZ0KbHkN4F9tB_NbtAVcGo" width="180px;" /></div><div dir="ltr" style="font-style: normal; margin-bottom: 0pt; margin-top: 0pt; text-align: justify;"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="http://www.flickr.com/photos/aperezdc/">Photo by Adrián</a></span><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br />
<br />
</div><div style="font-style: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div><div style="font-style: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I gave a talk about <a href="http://blog.kov.eti.br/?p=139">webkit-clutter</a> in place of Kov because he had personal business to attend to. This talk was a part of </span><a href="https://desktopsummit.org/program/sessions/webkit-clutter-port-present-and-future-webkitgtk-status-and-roadmap-webkit2"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">the WebKit talk</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: first, Martin explained the new features of <a href="http://webkitgtk.org/">WebKitGtk+</a> 1.4.0 and upcoming feature of the next version. Second, Alex introduced the current status of <a href="http://blog.kov.eti.br/?p=110">WebKit2Gtk+</a> and gave a demo of it, which showed us how to restart a flash plug-in without affecting browsing capability. That explains why we need the multiple process model in web browsing. Finally. I introduced the webkit-clutter port: why the webkit-clutter port is needed, what we have done, and what features are coming. I will introduce more details about the WebKit talk in the next blog post.</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div><div style="font-style: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div><div style="font-style: normal;"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="https://desktopsummit.org/program/sessions/blending-web-and-desktop">Blending the web and the desktop</a></span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><img height="333px;" src="https://lh5.googleusercontent.com/G0dBILP5LdUp62mwshGO5l_-6L46ZAD99tNvl23YZ19gDUj2YmxY03tsuflO1JVScXAPGT9_wVr3UOZC4mpSoS-hisfHcCPzdrhmORwcXljVBHJ9qW4" width="500px;" /></div><div style="font-style: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Xan showed a demo of installing and running a web application in GNOME3. He said “80% of the time people use the web so 80% of GNOME effort should go to the web”, I agree with him, we need to focus on web integration with GNOME more. Anyway, Xan seemed like a web evangelist during his talk.</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div><div style="font-style: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></div><div style="font-style: normal;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Other interesting talks</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span></div></div><div style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; text-indent: 0px; vertical-align: baseline;"><div style="text-align: center;"><img height="281px;" src="https://lh3.googleusercontent.com/wExeVwVFPvNyfX5qn-V0bOEnDUOkjZfpLdIICNHIov64w6eLskzWTrOhAxLwOn7RgofgAddL2DdvsLGd2dOzhukv7rrIGZAaOjLW_G1yzb5F7dXrDLE" width="500px;" /></div><ul><li style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-align: left; text-decoration: none; vertical-align: baseline;"><a href="https://desktopsummit.org/program/sessions/gstreamer-10"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">GStreamer 1.0</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: </span><a href="http://en.wikipedia.org/wiki/Wim_Taymans"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Wim</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> introduced the main changes of <a href="http://gstreamer.freedesktop.org/">GStreamer</a> 1.0 such as managing memory, buffer metadata, and dynamic pipeline. You will be able to get more information from </span><a href="http://gstreamer.freedesktop.org/conference/"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">the GStreamer conference </span></a><span style="background-color: white; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"><a href="http://gstreamer.freedesktop.org/conference/">l in Prague, Czech Republi</a></span><span style="background-color: white; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">c</span></li>
</ul><div style="text-align: center;"><img height="333px;" src="https://lh5.googleusercontent.com/t-2kH3sx2vvwLWZjjCz2OkxIQI0y4y48pJHXbpsM6aczfOVQsJpMD99GyGRsgbKB2LUV5_RTUfgEe6Kj2s_scIeAKJwxmBs9z420pYoriOpBUO4v2vo" width="500px;" /></div><ul><li style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><a href="https://desktopsummit.org/program/sessions/gtk-4-future-your-favorite-toolkit"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">GTK 4 - the future of your favorite toolkit</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: Actually, nobody has started working on GTK4+, but the speakers showed a big picture of GTK+4 which will improve in areas of animations, effects, and transformations. For realizing this plan, Clutter will be used as a graphic backend, which allows GTK+ applications to use animation effects easily.</span></li>
<li style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><a href="https://desktopsummit.org/program/sessions/gnome-shell-version-%CF%80"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">GNOME Shell version π</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: </span><a href="http://blog.fishsoup.net/"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Owen Talyor</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> Introduced GNOME Shell 3.2 with some demos such as Google Account Integration, soft keyboard, and more extensions.</span></li>
<li style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><a href="https://desktopsummit.org/program/sessions/gnome-continent-starting-asia"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">GNOME a continent, starting from Asia</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: There was a introduction of how the GNOME Asia summit started, what it has done and what it will do. I wish to attend the next GNOME Asia Summit held in Hong Kong.</span></li>
<li style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><a href="https://desktopsummit.org/program/sessions/towards-multitouch-gnome-shell"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Towards a multitouch gnome-shell</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">: Although it will take more time to see if X.org supports multi-touch officially, Carlos showed a demo of the multi-touch gnome shell. This seemed like the first step to touch based devices.</span></li>
</ul><span class="Apple-style-span" style="white-space: pre-wrap;">NateOn connection manager for Telepathy</span></div><div style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; text-indent: 0px; vertical-align: baseline;"><div style="text-align: center;"><img height="240px;" src="https://lh6.googleusercontent.com/0kwPZvIhVDbmBXjcZz4N3YRz8iMWtfLnGk6Jv7k6V-pRoKtP6tCIB25MXgUuGbz69ILF6iaidbDFijQt08znj-WH28SRtwkg52WjjCs52eR3iE67CFs" width="165px;" /></div><a href="http://nateonweb.nate.com/download/messenger/linux/"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">NateOn is an instant messenger which is very popular in Korea</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. As you can see the above picture, it supports the Linux version, but </span><a href="http://kldp.net/projects/nateon/"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">the project</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> has not been maintained well. The problem is that </span><a href="http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=617951"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">NateOn was removed from the Debian archive because it built with KDE3</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.(</span><a href="http://changwoo-hacks.blogspot.com/2011/03/nateon.html"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">ChangWoo’s blog article</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">) As a result, Korean users can’t download NateOn from Debian repositories. Although there was a proposal to develop a NateOn connection manager for <a href="http://telepathy.freedesktop.org/wiki/">Telepathy</a> from <a href="http://gnome.or.kr/">the GNOME Korean community</a>, it was just an idea. Fortunately, I met a Telepathy contributor, Debarshi who is interested in this project. I shared all the information about NateOn with him so that he was able to start developing the connection manager. When it starts to work a bit, I will be able to join the project.</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Currywurst</span></div><div style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; text-indent: 0px; vertical-align: baseline;"><div style="text-align: center;"><img height="224" src="https://lh6.googleusercontent.com/zKT1DWo3Ht0r3fyfswRqzCz8AiLXF-gZyHBjOobWFOP2_pX0rIuQ9g_2Kzs08AGz45NN-7pwMgqgwoJ3oiJcl2YuLfoaY9GRAQ47owk92_ETqJdqjRY" width="400" /></div><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">I didn’t have a chance to go to any tourist attractions in Berlin this time, but I had Currywurst which is well-known Berlin food. It was good to have it with a beer.</span><br />
<br />
Visiting the Cambridge office</div><div style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; text-indent: 0px; vertical-align: baseline;"><div style="text-align: center;"><img height="240px;" src="https://lh3.googleusercontent.com/RAlWk3geM_jEcKi2SJ778fjGE11PRt88iK7iOafL30Lkmh7cTKI5OAnTIhQuotW192qQ8CNJoPJs7Ohokof0DNP57Xd-2toC_B00UDaAQSQA62ZtVLE" width="180px;" /></div><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">After the Desktop Summit, I moved to Cambridge for visiting the company HQ office. It was very nice to meet people and work at the office. I had brought along some postcards of UNESCO World Heritage of Korea for a small gift as follows:</span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><br />
<div style="text-align: center;"><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span><img height="300" src="https://lh5.googleusercontent.com/-CziKUQLRAs11ZwCX_cBeaBd_b2P2thO6-B-BXN6nIQrXAidoJghgcQnjgidKGfvkeVeBiX-hVYh402Fiw_JyWxUuSsXKusDcUlT1ummPeRCkJ34rOA" width="400" /></div><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">You can see them from the bulletin board when you visit the office.</span><br />
<span class="Apple-style-span" style="white-space: pre-wrap;"> </span><br />
<span class="Apple-style-span" style="white-space: pre-wrap;">There are many tourist attractions near the office, so I went to the Cambridge University Botanic Garden and the Fitzwilliam Museum during my stay. It was very nice, so I have shared some photos here.</span></div><div style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; text-indent: 0px; vertical-align: baseline;"><img height="200" src="https://lh3.googleusercontent.com/yVQBBoYpGn6oWta3D3cPzRl2RpPb_Nk6-UMJjGMpE_nVsUuzu6nGxyDnlVoFb_bhOs6shsCm3fqtaJ1YbcETlWGfAcb4AWC1y-gMojAm36jM4eu-nI4" width="200" /><img height="224" src="https://lh6.googleusercontent.com/iXDPlS-DiqqyR1t6yrC1iu4IjvX-is5yJ6B_5P7Lt-CvgcFRFFnVPgLIDE2CTPWI02c2bG3m03dXJF82zdrp95C2eqpMadOzBk3nzZK_OUMqe6oCb74" width="400" /><br />
<span class="Apple-style-span" style="white-space: pre-wrap;">On the last evening, we had a team dinner in an Indian restaurant. Although British accent was a bit unfamiliar to me, I enjoyed the talks and the Tandoori chicken. Anyway, I’d like to thank everyone in the office for helping me stay and work well. Thanks! </span><br />
<div class="separator" style="clear: both; text-align: center;"><img border="0" height="65" src="http://www.collabora.com/logos/collabora-logo-small.png" width="200" /></div><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> </span><br />
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Finally, I'd also like to thank my employer, </span><a href="http://collabora.com/"><span style="background-color: transparent; color: #000099; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">Collabora</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 11pt; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> for sponsoring my trip to Berlin for Desktop Summit 2011. I hope to see everyone at the next Guadec in A Coruña, Spain.</span></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-7585815.post-11583836096989355852011-05-21T01:04:00.000-07:002011-07-09T01:05:06.243-07:00WebKit Mobile FeaturesRecently, I spent some time implementing the viewport meta tags and tiled backing store for WebKitGtk+, which are the mobile features of the WebKit engine. In this post, I’m going to tell you more about the mobile features of the WebKit engine and how to enable each feature when you build WebKitGtk+.<br />
<br />
First of all, the WebKit engine is particularly strong in the mobile area, because it is lighter and faster than other browser engines and has been verified by the success of Safari on the iPhone. Due to this reason, most mobile devices have adopted the WebKit engine to offer their own web browser: Nokia Symbian, Google Android, HP WebOS, and Samsung Bada are all using WebKit based browsers.<br />
<br />
Additionally, WebKit is an open source project. Naturally, <a href="http://trac.webkit.org/browser">all source code is open to the public</a>, but there is no obligation for manufacturers to open their browser code, because the WebKit engine uses the LGPL, so it allows a browser executable file to just link with the WebKit engine dynamically. It means that the browser can be a different file independent from the WebKit library. Because of this reason, the mobile features of Safari on the iPhone need not be open to the public and subsequently it has been hard to access the mobile features. Fortunately, other phone manufacturers have participated in the WebKit project and are developing mobile features within the community. Currently, Nokia, RIM, Samsung, Motorola and Erricson have participated in the WebKit project. In addition, the open source companies <a href="http://collabora.co.uk/">Collabora</a> and Igalia have worked on WebKit for a long time. <br />
<br />
Recently, some mobile features already have been applied to the WebKit engine such as the tiled backing store, touch events, and viewport meta tags. Since these features are a little complicated to understand in terms of the name, I will explain them including the other mobile features supported by WebKit in more details.<br />
<ul><li>Fast Mobile Scrolling</li>
<li>Tiled Backing Store</li>
<li>Viewport Meta Tags</li>
<li>Frameset Flattening</li>
<li>Touch Events</li>
</ul><br />
<span class="Apple-style-span" style="font-size: large;">Fast Mobile Scrolling</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://farm6.static.flickr.com/5182/5597019959_50c470de37.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="301" src="http://farm6.static.flickr.com/5182/5597019959_50c470de37.jpg" width="400" /></a> </div><br />
You can see a fixed background image(Smile Icon) when you even scroll the web page as you can see in the above picture. This can be possible if a web page has elements which have the CSS background-attachment property. In this case, WebKit carries out a slow repaint in order to avoid rendering artifacts. However, scrolling a web page with a fixed background image causes noticeable delays on mobile devices. It means that WebKit tries not to update fixed elements every time to scroll fast because it is hard to display a fixed element while scrolling fast.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://farm6.static.flickr.com/5305/5597587400_3768649994.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="306" src="http://farm6.static.flickr.com/5305/5597587400_3768649994.jpg" width="400" /></a></div><br />
In order to avoid this problem, we can make scrolling faster if we ignore the CSS property "background-attachment: fixed" by enabling the fast mobile scrolling option as you can see in the left picture (i.e. the fixed background can be scrollable on WebKitGtk+ with the fast mobile scrolling build option).<br />
<br />
To enable the fast mobile scrolling:<br />
<br />
1) Build WebKitGtk+ with the fast mobile scrolling option:<br />
<pre>$WebKit/Tools/Scripts/build-webkit --gtk --fast-mobile-scrolling</pre><br />
<br />
<span class="Apple-style-span" style="font-size: large;">Tiled Backing Store</span><br />
<br />
When I tried to use Safari on the iPhone, I was impressed by the fact that the scrolling web pages were very fast. This is possible because Safari caches the content of the web page as bitmaps in memory, and the cached bitmaps we've seen are just painted on the screen without sending paint calls to WebCore when we scroll a web page. These bitmaps are created and deleted on-demand as the viewport moves over the web page. We call them the “tiled backing store.”<br />
<br />
<a href="https://bugs.webkit.org/show_bug.cgi?id=35146">The tiled backing store was applied to QtWebKit by Nokia engineers</a>. They applied this feature to WebCore, so it can be shared by other ports. In the case of WebKitGtk, <a href="https://bugs.webkit.org/show_bug.cgi?id=45423">Code Aurora engineers submitted an initial patch, I have updated the patch to use only Cairo API by removing GTK+ dependency.</a> This would allow the WinCairo and Efl port to use the updated patch for enabling the tiled backing store. <br />
<br />
To enable the tiled backing store:<br />
1 ) Build WebKitGtk+ with the tiled backing store option as follows:<br />
<pre>$ WebKit/Tools/Scripts/build-webkit --gtk --tiled-backing-store</pre><br />
2) Set the tiled backing store setting to TRUE through WebKitWebSettings as follows:<br />
<pre>WebKitWebSettings *settings = webkit_web_view_get_settings(webView);
g_object_set(G_OBJECT(settings), "enable-tiled-backing-store", TRUE, NULL);
</pre><br />
<span class="Apple-style-span" style="font-size: large;">Viewport Meta Tags</span><br />
<div class="separator" style="clear: both; text-align: center;"><br />
</div><div class="separator" style="clear: both; text-align: center;"><a href="http://farm6.static.flickr.com/5292/5460755418_d6d667e6e1_o.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://farm6.static.flickr.com/5292/5460755418_d6d667e6e1_o.png" width="213" /></a> <a href="http://farm6.static.flickr.com/5252/5481285644_9a0d39c365_o.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://farm6.static.flickr.com/5252/5481285644_9a0d39c365_o.png" width="213" /></a> </div><br />
Apple introduced the full browsing feature for the first time when they released the iPhone. Until then, the mobile phone was not usable to browse web pages made for desktop due to the small screen size. To overcome this limitation, Safari on the iPhone zooms web pages out automatically to fit to the screen like in the above picture(left).<br />
<br />
For this, Safari on the iPhone assumes that web pages have 980px width by default. When Safari loads a web page, it scales down the web page by a factor of 0.32 (320/980) to fit to the width of the screen in the case of iPhone 3G. But, the problem is that all pages are not displayed to fit to 980px width. For example, mobile web pages can be displayed well with 320px or 480px. the Google Search page is displayed on the iPhone like the right picture because the Google search page is required to have the less width compared to 980px.<br />
<br />
To solve this problem, Apple defined the viewport meta tags to allow web browsers to support desktop web page and mobile web page effectively. Actually, this is not a web standard, but most mobile web browsers have adopted this feature and WebKit also supports it.<br />
<br />
Let’s take a look at the viewport meta tag in more detail. The viewport meta tags can be used to set the width, height and initial scale factor of the viewport. Although most web pages don’t have viewport meta tags, mobile browsers which have 320 px screen width can apply initial values to web pages as follows:<br />
<br />
<pre><meta name = "viewport" content = "width = 980" initial-scale = "0.32"></pre><br />
In the case of mobile pages, you need to set the viewport meta tags as follows:<br />
<pre><meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, width=device-width" /></pre><br />
As you can see each property, web pages can not be scaled up/down; even user scaling is turned off. This is because the mobile web pages are actually written for the small screen.<br />
<br />
For more information on the viewport meta tags, refer to <a href="http://developer.apple.com/safari/library/documentation/appleapplications/reference/safarihtmlref/articles/metatags.html">the Safari reference library</a>.<br />
<br />
<span class="Apple-style-span" style="font-size: large;">Frameset Flattening</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://farm6.static.flickr.com/5263/5597820692_2085d92442.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="301" src="http://farm6.static.flickr.com/5263/5597820692_2085d92442.jpg" width="400" /></a></div><br />
There are some web pages that have their own scrollable area with the scroll bars like the above page. We call this "sub frame." On touch devices, the problem is that it is desirable not to have any scrollable sub frame of the web page because the user could confuse with sometimes scrolling sub frames and scrolling the web page itself at other times because it is very hard for the user to understand what “sub frame” is. For this reason, iframes and framesets are hardly usable on touch devices.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://farm6.static.flickr.com/5262/5597236979_36bdab6dc0.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="http://farm6.static.flickr.com/5262/5597236979_36bdab6dc0.jpg" width="362" /></a></div><br />
However, if you enable the frameset flattening features when building Webkit, all the frames can be one scrollable page as you can see the above figure.<br />
<br />
To enable the Fameset flattening:<br />
<pre>WebKitWebSettings *settings = webkit_web_view_get_settings(webView);
g_object_set(G_OBJECT(settings), "enable-frame-flattening", TRUE, NULL);
</pre><br />
<span class="Apple-style-span" style="font-size: large;">Touch events</span><br />
<br />
Supporting multi-touch has become popular since iPhone introduced it. Now, all smart phones support multi-touch. Using multi-touch allows the users to use more than two fingers to interact with applications on their smart phone. For example, you can use a piano or guitar applications using your 5 fingers.<br />
<br />
However, using multi-touch is not only possible for native applications, but also for web pages. Since WebKit supports touch events as DOM events, web developers can deal with touch events using JavaScript. There are 4 kinds of touch events: touchstart, touchmove, touchend, and touchcancel. Unfortunately, WebKitGtk+ doesn't support the touch events yet. So if you want to <a href="https://bug-32434-attachments.webkit.org/attachment.cgi?id=44955">test the touch events</a> , running QtWebKit or mobile Safari would be good. For more information on how to use the touch events, refer to <a href="http://developer.apple.com/library/safari/#documentation/UserExperience/Reference/TouchEventClassReference/TouchEvent/TouchEvent.html#//apple_ref/doc/uid/TP40009358">the Safari reference library</a>.<br />
<br />
Finally, I’d like to let you know there are more mobile features I didn’t introduce here, such as intelligent zoom, kinetic scrolling, zooming animation, and etc. WebKit doesn’t support them by itself, but the hosting applications can implement these kind of features, because these features are likely to depend on the platform. However, when these features are added to WebKitGtk+, I will talk about them in more detail.<br />
<br />
<span class="Apple-style-span" style="font-size: large;">References</span><br />
<ul><li><a href="http://codeposts.blogspot.com/2010/06/qtwebkit-goes-mobile.html">QtWebKit goes Mobile</a></li>
<li><a href="https://trac.webkit.org/wiki/Mobile%20Features%20Talk">https://trac.webkit.org/wiki/Mobile%20Features%20Talk</a></li>
</ul>Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-7585815.post-86283197272963040792011-04-30T21:04:00.002-07:002011-06-04T01:54:10.468-07:00WebKit Contributors Meeting 2011I attended <a href="http://www.webkit.org/blog/1566/its-time-for-the-2011-webkit-contributors-meeting/">the WebKit Contributors meeting</a> which was held by Apple, April 24~25 2011 near Apple Campus in Cupertino, California. This is the annual meeting for WebKit reviewers and committers. They come together to discuss the current issues of WebKit and hack the code in the meeting. In this post, I am going to introduce you to what we talk about in the WebKit meeting. <br />
<br />
As you know, WebKit is the hottest open source project these days, because most mobile phones use the WebKit engine and additionally Chrome and Safari also are based on WebKit. In addition, the WebKit engine is used for mobile platforms such as HP WebOS and RIM Playbook. Therefore, Apple and Google as well as other big electronics companies like Nokia, RIM, Samung, Motorola have joined the WebKit project. As you might already know, <a href="http://collabora.com/">Collabora</a>, the company I work for, has contributed to <a href="http://webkitgtk.org/">WebKitGtk+</a> with Igalia.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://farm6.static.flickr.com/5266/5685808656_31d294c4bb.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="http://farm6.static.flickr.com/5266/5685808656_31d294c4bb.jpg" width="400" /></a></div><br />
On the first day, we made <a href="https://spreadsheets.google.com/ccc?key=0AoCAfo_LQ5_kdGs3NEJMeUNVS3JUNUx5N3NSUU1aRWc&hl=en&authkey=CI7EsvgK#gid=0">the tracks and sessions</a> instantly in the morning. Actually, there were <a href="http://trac.webkit.org/wiki/April%202011%20Meeting">many talks and hackathons proposed</a>, but we chose our favorite items by voting. Although I was not able to attend all sessions, I will introduce some of them briefly.<br />
<br />
First, I'd like to talk about WebKit2. Actually, <a href="https://lists.webkit.org/pipermail/webkit-dev/2010-April/012235.html">Apple announced the WebKit2 project</a> to support a multiple process model in WebKit like Chrome browser in the previous year. Other ports like Qt and Gtk+ are also trying to support the WebKit2 model. In the WebKit2 session, we discussed many issues, but I listed up some of the most important ones which readers might be interested in as follows:<br />
<br />
- Using C API, is this a great choice?<br />
- Support for Out-of-process plugin<br />
- Code sharing between WebKit1 and WebKit2<br />
- DRT rewritten<br />
- Support for threaded model<br />
- Low-level communication code is very specific to the platform. It needs an abstract model for communication between the web process and ui process.<br />
- It is difficult to follow accessibility implementation on a Mac.<br />
<br />
The next interesting session was about hardware acceleration. We discussed<a href="http://trac.webkit.org/wiki/April%202011%20Meeting%20Hardware%20Acceleration%20Track"> the current issues of hardware acceleration</a> in each port. In particular, Google’s effort on 2D acceleration is quite interesting to me. Actually, 2D acceleration is a very challenging task because I have seen many trials of improving 2D graphics rendering through OpenGL or OpenVG. However, the performance was not faster than CPU. Interestingly, Google seemed to try to accelerate 2D graphics by 3D graphics in the WebKit itself. But, all 2D drawings are not dependent on GPU, only the specific 2D drawing primitives are rendered by GPU. So they are currently profiling 2D drawing primitives rendered by GPU to see which 2D graphics primitives are really accelerated by GPU. If this hybrid model is successful, we will be able to apply it to other ports.<br />
<br />
In other sessions, we talked about reducing the build systems in WebKit. Currently, we have 8 build systems for each WebKit port. So, when we add new source files, sometimes we forget to add the files to all of the build systems, which causes build breaks. Accordingly, <a href="http://www.cmake.org/">CMake</a> and <a href="http://code.google.com/p/gyp/">GYP</a> were proposed for unifying the build systems. However, each port just follows its development environment, so it seems like it would be hard to unify each current build system into one. I think that WebKitGtk+ can move to CMake, but I’m not sure if the GNOME guys like it. In addition, one of our core contributors, Eric introduced how his team designed and implemented <a href="http://www.webkit.org/blog/1273/the-html5-parsing-algorithm/">HTML5 parser</a>. Actually, the existing parser was so complex as written in one source file which was the longest file in WebKit, so he told us that it took several months to understand the parser code. So he divided the parsing functionality into several classes such as HTMLToken, HTMLTokenizer, HTMLTreeBuilder, HTMLDocumentParser, and others.<br />
<div class="separator" style="clear: both; text-align: center;"><a href="http://farm6.static.flickr.com/5227/5655590159_d44b646aff_m.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://farm6.static.flickr.com/5227/5655590159_d44b646aff_m.jpg" /></a></div><br />
Additionally, there was a party on the first day held by the Google Chrome Team. I met the reviewers who have reviewed my patches. I was pleased to meet them directly; it was like meeting old friends. It made me feel more connected to the community.<br />
<br />
These days, the companies in which the WebKit contributors are involved are competing with each other, but as I saw at the meeting, the contributors are working together to develop a better web engine. For instance, I learned that Google is trying to overtake Apple with Android and Chrome, but they still work closely to develop the features of the HTML5/CSS3 standard. In addition, Nokia and RIM’s reviewers, like Kenneth and tonikitoo always review Samsung’s patches. I think this is an example of the power of open source.<br />
<br />
Anyway, I hope to talk more details about the next meeting. Thanks!Unknownnoreply@blogger.com0