From 4859927856b899e16758bb538a1c7e273b2ad3cb Mon Sep 17 00:00:00 2001 From: CoderSherlock Date: Mon, 25 Oct 2021 14:53:15 -0400 Subject: [PATCH] Optimized UX and fixed bugs - Added temp logo - Added favicon - Enabled Disqus (jekyll.env) - Changed Home layout --- ...40b622142f1c98125abcfe89a76a661b0e8e343910 | 2 +- ...ecd8fb8dc10d13410219f1ae29f58518297be1ab1e | 111 -------- ...d2c4af43dd2de786c84a9d3ffee67045ed57864d4a | 30 -- 404.md | 3 +- _config.yml | 4 +- _includes/article-header.html | 2 +- _includes/article-list.html | 2 +- _includes/comments-providers/disqus.html | 4 +- _includes/head/favicon.html | 33 +-- _includes/svg/logo.svg | 146 +++++++++- _includes/svg/logo.svg.old | 8 + _layouts/home.html | 2 +- .../2016-10-27-charles-is-not-a-good-tool.md | 4 +- ...16-10-28-some-of-my-previews-exper-work.md | 2 + _posts/2017-07-08-intro-xv6.md | 3 +- ...-generate-word-cloud-with-chinese-fenci.md | 3 + ...how-do-we-train-on-limited-edge-devices.md | 3 + _site/404.html | 182 ++++++++++++- _site/about.html | 257 ++++++++++++++++-- _site/archive.html | 189 +++++++++++-- _site/assets/android-chrome-192x192.png | Bin 6672 -> 71833 bytes _site/assets/android-chrome-512x512.png | Bin 19472 -> 0 bytes _site/assets/apple-touch-icon.png | Bin 2082 -> 57148 bytes _site/assets/browserconfig.xml | 4 +- _site/assets/favicon-16x16.png | Bin 655 -> 1161 bytes _site/assets/favicon-32x32.png | Bin 931 -> 3114 bytes _site/assets/favicon.ico | Bin 15086 -> 15086 bytes _site/assets/mstile-144x144.png | Bin 2908 -> 0 bytes _site/assets/mstile-150x150.png | Bin 2896 -> 36376 bytes _site/assets/mstile-310x150.png | Bin 3150 -> 0 bytes _site/assets/mstile-310x310.png | Bin 6221 -> 0 bytes _site/assets/mstile-70x70.png | Bin 1939 -> 0 bytes _site/assets/safari-pinned-tab.svg | 33 +-- _site/assets/site.webmanifest | 11 +- _site/feed.xml | 27 +- _site/index.html | 222 ++++++++++++--- _site/posts/charles-is-not-a-good-tool.html | 213 +++++++++++++-- ...w-do-we-train-on-limited-edge-devices.html | 209 ++++++++++++-- ...enerate-word-cloud-with-chinese-fenci.html | 209 ++++++++++++-- _site/posts/intro-xv6.html | 209 ++++++++++++-- .../posts/some-of-my-previews-exper-work.html | 211 ++++++++++++-- _site/posts/welcome-to-my-blog.html | 204 ++++++++++++-- _site/robots.txt | 2 +- _site/sitemap.xml | 28 +- about.md | 11 +- archive.html | 1 + assets/android-chrome-192x192.png | Bin 6672 -> 71833 bytes assets/android-chrome-512x512.png | Bin 19472 -> 0 bytes assets/apple-touch-icon.png | Bin 2082 -> 57148 bytes assets/browserconfig.xml | 4 +- assets/favicon-16x16.png | Bin 655 -> 1161 bytes assets/favicon-32x32.png | Bin 931 -> 3114 bytes assets/favicon.ico | Bin 15086 -> 15086 bytes assets/mstile-144x144.png | Bin 2908 -> 0 bytes assets/mstile-150x150.png | Bin 2896 -> 36376 bytes assets/mstile-310x150.png | Bin 3150 -> 0 bytes assets/mstile-310x310.png | Bin 6221 -> 0 bytes assets/mstile-70x70.png | Bin 1939 -> 0 bytes assets/safari-pinned-tab.svg | 33 +-- assets/site.webmanifest | 11 +- index.html | 5 +- 61 files changed, 2117 insertions(+), 520 deletions(-) delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/64/f9a63d852fdf2d32e832ecd8fb8dc10d13410219f1ae29f58518297be1ab1e delete mode 100644 .jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/bf/a148982f21224baba8fcd2c4af43dd2de786c84a9d3ffee67045ed57864d4a create mode 100644 _includes/svg/logo.svg.old delete mode 100644 _site/assets/android-chrome-512x512.png delete mode 100644 _site/assets/mstile-144x144.png delete mode 100644 _site/assets/mstile-310x150.png delete mode 100644 _site/assets/mstile-310x310.png delete mode 100644 _site/assets/mstile-70x70.png delete mode 100644 assets/android-chrome-512x512.png delete mode 100644 assets/mstile-144x144.png delete mode 100644 assets/mstile-310x150.png delete mode 100644 assets/mstile-310x310.png delete mode 100644 assets/mstile-70x70.png diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 b/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 index 2c4fcaf..41a247c 100644 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 +++ b/.jekyll-cache/Jekyll/Cache/Jekyll--Cache/b7/9606fb3afea5bd1609ed40b622142f1c98125abcfe89a76a661b0e8e343910 @@ -1 +1 @@ -I"ˆ{"source"=>"/home/pengzhan/Github/CoderSherlock.github.io", "destination"=>"/home/pengzhan/Github/CoderSherlock.github.io/_site", "collections_dir"=>"", "cache_dir"=>".jekyll-cache", "plugins_dir"=>"_plugins", "layouts_dir"=>"_layouts", "data_dir"=>"_data", "includes_dir"=>"_includes", "collections"=>{"posts"=>{"output"=>true, "permalink"=>"/posts/:title"}}, "safe"=>false, "include"=>[".htaccess"], "exclude"=>["CHANGELOG.md", "HOW_TO_RELEASE.md", "Gemfile", "Gemfile.lock", "LICENSE", "README-*.md", "README.md", "gulpfile.js", "jekyll-text-theme.gemspec", "package-lock.json", "package.json", "/docs", "/node_modules", "/screenshots", "/test", "/vendor", ".sass-cache", ".jekyll-cache", "gemfiles", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"], "keep_files"=>[".git", ".svn"], "encoding"=>"utf-8", "markdown_ext"=>"markdown,mkdown,mkdn,mkd,md", "strict_front_matter"=>false, "show_drafts"=>nil, "limit_posts"=>0, "future"=>false, "unpublished"=>false, "whitelist"=>[], "plugins"=>["jekyll-feed", "jekyll-paginate", "jekyll-sitemap", "jemoji"], "markdown"=>"kramdown", "highlighter"=>"rouge", "lsi"=>false, "excerpt_separator"=>"", "incremental"=>false, "detach"=>false, "port"=>"4000", "host"=>"127.0.0.1", "baseurl"=>"", "show_dir_listing"=>false, "permalink"=>"/posts/:title", "paginate_path"=>"/page:num", "timezone"=>"America/New_York", "quiet"=>false, "verbose"=>false, "defaults"=>[{"scope"=>{"path"=>"", "type"=>"posts"}, "values"=>{"layout"=>"article", "sharing"=>true, "license"=>true, "aside"=>{"toc"=>true}, "show_edit_on_github"=>true, "show_subscribe"=>true, "pageview"=>true}}], "liquid"=>{"error_mode"=>"warn", "strict_filters"=>false, "strict_variables"=>false}, "kramdown"=>{"auto_ids"=>true, "toc_levels"=>[1, 2, 3, 4, 5, 6], "entity_output"=>"as_char", "smart_quotes"=>"lsquo,rsquo,ldquo,rdquo", "input"=>"GFM", "hard_wrap"=>false, "guess_lang"=>true, "footnote_nr"=>1, "show_warnings"=>false, "syntax_highlighter"=>"rouge", "syntax_highlighter_opts"=>{:default_lang=>"plaintext", :guess_lang=>true}, "coderay"=>{}}, "text_skin"=>"default", "highlight_theme"=>"default", "url"=>"http://localhost:4000", "title"=>"Stop Talking, Start Doing", "description"=>"My personal blog, with some boring research staff and some tricks I was fancy to. I'll try my best to make this blog fun and useful. Not just a place I complain about all happens in my Lab.\n", "lang"=>"en", "author"=>{"type"=>nil, "name"=>"Pengzhan Hao", "url"=>nil, "avatar"=>"/static/avatar.jpg", "bio"=>nil, "email"=>"haopengzhan@gmail.com", "facebook"=>nil, "twitter"=>nil, "weibo"=>nil, "googleplus"=>nil, "telegram"=>nil, "medium"=>nil, "zhihu"=>nil, "douban"=>nil, "linkedin"=>nil, "github"=>"codersherlock", "npm"=>nil}, "repository"=>"CoderSherlock/CoderSherlock.github.io", "repository_tree"=>"master", "paths"=>{"root"=>nil, "home"=>nil, "archive"=>nil, "rss"=>nil}, "license"=>nil, "toc"=>{"selectors"=>nil}, "mathjax"=>nil, "mathjax_autoNumber"=>nil, "mermaid"=>nil, "chart"=>nil, "paginate"=>8, "sources"=>nil, "sharing"=>{"provider"=>false, "addthis"=>{"id"=>nil}}, "comments"=>{"provider"=>"disqus", "disqus"=>{"shortname"=>"codersherlockblog"}, "gitalk"=>{"clientID"=>nil, "clientSecret"=>nil, "repository"=>nil, "owner"=>nil, "admin"=>nil}, "valine"=>{"app_id"=>nil, "app_key"=>nil, "placeholder"=>nil, "visitor"=>nil, "meta"=>nil}}, "pageview"=>{"provider"=>false, "leancloud"=>{"app_id"=>nil, "app_key"=>nil, "app_class"=>nil}}, "search"=>{"provider"=>"default", "google"=>{"custom_search_engine_id"=>nil}}, "analytics"=>{"provider"=>"google", "google"=>{"tracking_id"=>"UA-82637164-1", "anonymize_ip"=>false}}, "livereload_port"=>35729, "serving"=>true, "watch"=>true}:ET \ No newline at end of file +I"ý {"source"=>"/home/pengzhan/Github/CoderSherlock.github.io", "destination"=>"/home/pengzhan/Github/CoderSherlock.github.io/_site", "collections_dir"=>"", "cache_dir"=>".jekyll-cache", "plugins_dir"=>"_plugins", "layouts_dir"=>"_layouts", "data_dir"=>"_data", "includes_dir"=>"_includes", "collections"=>{"posts"=>{"output"=>true, "permalink"=>"/posts/:title"}}, "safe"=>false, "include"=>[".htaccess"], "exclude"=>["CHANGELOG.md", "HOW_TO_RELEASE.md", "Gemfile", "Gemfile.lock", "LICENSE", "README-*.md", "README.md", "gulpfile.js", "jekyll-text-theme.gemspec", "package-lock.json", "package.json", "/docs", "/node_modules", "/screenshots", "/test", "/vendor", ".sass-cache", ".jekyll-cache", "gemfiles", "node_modules", "vendor/bundle/", "vendor/cache/", "vendor/gems/", "vendor/ruby/"], "keep_files"=>[".git", ".svn"], "encoding"=>"utf-8", "markdown_ext"=>"markdown,mkdown,mkdn,mkd,md", "strict_front_matter"=>false, "show_drafts"=>nil, "limit_posts"=>0, "future"=>false, "unpublished"=>false, "whitelist"=>[], "plugins"=>["jekyll-feed", "jekyll-paginate", "jekyll-sitemap", "jemoji"], "markdown"=>"kramdown", "highlighter"=>"rouge", "lsi"=>false, "excerpt_separator"=>"", "incremental"=>false, "detach"=>false, "port"=>"4000", "host"=>"127.0.0.1", "baseurl"=>"", "show_dir_listing"=>false, "permalink"=>"/posts/:title", "paginate_path"=>"/page:num", "timezone"=>"America/New_York", "quiet"=>false, "verbose"=>false, "defaults"=>[{"scope"=>{"path"=>"", "type"=>"posts"}, "values"=>{"layout"=>"article", "sharing"=>true, "license"=>true, "aside"=>{"toc"=>true}, "show_edit_on_github"=>false, "show_subscribe"=>true, "pageview"=>true}}], "liquid"=>{"error_mode"=>"warn", "strict_filters"=>false, "strict_variables"=>false}, "kramdown"=>{"auto_ids"=>true, "toc_levels"=>[1, 2, 3, 4, 5, 6], "entity_output"=>"as_char", "smart_quotes"=>"lsquo,rsquo,ldquo,rdquo", "input"=>"GFM", "hard_wrap"=>false, "guess_lang"=>true, "footnote_nr"=>1, "show_warnings"=>false}, "text_skin"=>"default", "highlight_theme"=>"default", "url"=>"https://codersherlock.github.com/", "title"=>"Stop Talking, Start Doing", "description"=>"My personal blog, with some boring research staff and some tricks I was fancy to. I'll try my best to make this blog fun and useful. Not just a place I complain about all happens in my Lab.\n", "lang"=>"en", "author"=>{"type"=>nil, "name"=>"Pengzhan Hao", "url"=>nil, "avatar"=>"/static/avatar.jpg", "bio"=>nil, "email"=>"haopengzhan@gmail.com", "facebook"=>nil, "twitter"=>nil, "weibo"=>nil, "googleplus"=>nil, "telegram"=>nil, "medium"=>nil, "zhihu"=>nil, "douban"=>nil, "linkedin"=>"pengzhanhao", "github"=>"codersherlock", "npm"=>nil}, "repository"=>"CoderSherlock/CoderSherlock.github.io", "repository_tree"=>"master", "paths"=>{"root"=>nil, "home"=>nil, "archive"=>nil, "rss"=>nil}, "license"=>nil, "toc"=>{"selectors"=>nil}, "mathjax"=>nil, "mathjax_autoNumber"=>nil, "mermaid"=>nil, "chart"=>nil, "paginate"=>8, "sources"=>nil, "sharing"=>{"provider"=>false, "addthis"=>{"id"=>nil}}, "comments"=>{"provider"=>"disqus", "disqus"=>{"shortname"=>"codersherlockblog"}, "gitalk"=>{"clientID"=>nil, "clientSecret"=>nil, "repository"=>nil, "owner"=>nil, "admin"=>nil}, "valine"=>{"app_id"=>nil, "app_key"=>nil, "placeholder"=>nil, "visitor"=>nil, "meta"=>nil}}, "pageview"=>{"provider"=>false, "leancloud"=>{"app_id"=>nil, "app_key"=>nil, "app_class"=>nil}}, "search"=>{"provider"=>"default", "google"=>{"custom_search_engine_id"=>nil}}, "analytics"=>{"provider"=>"google", "google"=>{"tracking_id"=>"UA-82637164-1", "anonymize_ip"=>false}}, "serving"=>false}:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/64/f9a63d852fdf2d32e832ecd8fb8dc10d13410219f1ae29f58518297be1ab1e b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/64/f9a63d852fdf2d32e832ecd8fb8dc10d13410219f1ae29f58518297be1ab1e deleted file mode 100644 index 7c663e4..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/64/f9a63d852fdf2d32e832ecd8fb8dc10d13410219f1ae29f58518297be1ab1e +++ /dev/null @@ -1,111 +0,0 @@ -I"æ

This blog contains only some basic record of my works. For some details, I will write a unique blog just for some specific topics.

- -

2016-10

- -

Time Experiment of rsync

- -

Patch is based on rsync with version 3.1.2. [Rsync|Patch]

- -

How to collect data

- -

Basically, everything of transmission time and computation time will be output with overall time will be printed on the console. -But we also need some bash script to collect data through different size of random size and with different modification through them.

- - - -

Time Experiment of seafile

- -

Patch is based on seafile 5.1.4. You can find the release from seafile official repo. You may follow official compile instructions from here. [Patch no longer avaiable, new version at following sections]

- -

How to collect data

- -

We also need everything be done using scripting. But this time I only design added some distance between two increasing files’ sizes.

- - - -
# CDC: content defined chucks
-# HUT: Http upload traffic
-# ALL: overall time of one commit & upload
-awk '/CDC|HUT|ALL/ {print $4,$5}' ~/.ccnet/log/seafile.log > results.stat
-
- -

Install Seafile on odroid xu

- -

Due to failure of my cross-compile to seafile on android. I used develop board as a replacement experiment platform for ARM-seafile testing. I used a odroid xu as hardware standard. Because all I need is an ARM platform, only an ARM-Ubuntu is enough for me. But develop prototype on a board is much fun than coding, I won’t address much this time. But I’ll start a blog telling some really cool stuff I made for a strange aim.

- -

To install a ubuntu with GUI is my all preparation work. I found to way to do this.

- - - -
# If .img end with xz, use this command to uncompress first
-unxz ubuntu-14.04lts-xubuntu-odroid-xu-20140714.img.xz    
-# Burn image into SD-card
-sudo dd if=ubuntu-14.04lts-xubuntu-odroid-xu-20140714.img of=/dev/sdb bs=1M conv=fsync
-sync
-
- -

2016-11

- -

Android Kernel

- -

How to build an Android Kernel?

- -

Generally, I won’t tell anything in this parts, just mark some related links, and point out some mistakes or error solutions.

- - - -

2016-12

- -

Android Kernel

- -

How to compile with ftrace?

- -

If we want to debug under android, ftrace is a great tool for working. But, ftrace is not available in android if we used default configure file. Android kernel configuration is in arch/arm64/kernel/configs. We need to add few lines under that.

- -
CONFIG_STRICT_MEMORY_RWX=y
-CONFIG_FUNCTION_TRACER=y
-CONFIG_FUNCTION_GRAPH_TRACER=y
-CONFIG_DYNAMIC_FTRACE=y
-CONFIG_PERSISTENT_TRACER=y
-CONFIG_IRQSOFF_TRACER=y
-CONFIG_PREEMPT_TRACER=y
-CONFIG_SCHED_TRACER=y
-CONFIG_STACK_TRACER=y
-
- -

How to extract android images: Dump an image

- -

If we want to hold a rooted status after flashing boot, we need to extract an image from android devices. We can first use following command to find which blocks belongs to. According to some references, this article provide three ways to dump an image, I picked one for easy using.

- -
adb shell
-ls -al /dev/block/platform/$SOME\_DEVICE../../by-name # {Partitions} -> {Device Block}
-
-# dump file
-su
-dd if=/dev/block/mmcblk0p37 of=/sdcard/boot.img
-
-:ET \ No newline at end of file diff --git a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/bf/a148982f21224baba8fcd2c4af43dd2de786c84a9d3ffee67045ed57864d4a b/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/bf/a148982f21224baba8fcd2c4af43dd2de786c84a9d3ffee67045ed57864d4a deleted file mode 100644 index 3516bdf..0000000 --- a/.jekyll-cache/Jekyll/Cache/Jekyll--Converters--Markdown/bf/a148982f21224baba8fcd2c4af43dd2de786c84a9d3ffee67045ed57864d4a +++ /dev/null @@ -1,30 +0,0 @@ -I"ò

In this blog, I will generally talk about how to use proper tools to monitor SSL traffics of a mobile devices. Currently, I only can dealing with those SSL traffics which use an obviously certification. Some applications may not using system root cert or they doesn’t provide us a method to modify their own certs. For these situation, I still didn’t find a good solutions for it. But I’ll keep updating this if I get one.
-My current solution is using AP to forward all SSL traffic to a proxy, charles proxy is my first choice (Prof asked). It’s a non-free software which still update new versions now. So mainly, I’ll talk about how to charles SSL proxy.

- -

Preparations

- - -

Install Charles and Configuration

- - - -
# open charles first
-./bin/charles  
-
- - -

In Help -> SSL Proxying -> Export Charles Root Certificate and Private Key, enter a password and save the public and private key in *.p12 format.
-You also need to save charles Root Certificate, it also contains in the same menu. For convience, save it as *.pem format.

- - -:ET \ No newline at end of file diff --git a/404.md b/404.md index d0038a2..ec71b17 100644 --- a/404.md +++ b/404.md @@ -2,8 +2,7 @@ layout: page title: Page Not Found permalink: /404.html -nocomments: true -public: false +comment: false --- Where am I and where should I go? diff --git a/_config.yml b/_config.yml index 1f26924..2eade7c 100644 --- a/_config.yml +++ b/_config.yml @@ -50,7 +50,7 @@ author: medium : # "user_name" the last part of your profile url, e.g. https://medium.com/user_name zhihu : # "user_name" the last part of your profile url, e.g. https://www.zhihu.com/people/user_name douban : # "user_name" the last part of your profile url, e.g. https://www.douban.com/people/user_name - linkedin : # "user_name" the last part of your profile url, e.g. https://www.linkedin.com/in/user_name + linkedin : pengzhanhao github : codersherlock npm : # "user_name" the last part of your profile url, e.g. https://www.npmjs.com/~user_name @@ -213,7 +213,7 @@ defaults: license: true aside: toc: true - show_edit_on_github: true + show_edit_on_github: false show_subscribe: true pageview: true diff --git a/_includes/article-header.html b/_includes/article-header.html index 748b24c..f46fa02 100644 --- a/_includes/article-header.html +++ b/_includes/article-header.html @@ -22,7 +22,7 @@ {%- if site.repository and site.repository_tree -%} {%- include snippets/is_collection.html page=include.article -%} {%- assign _is_article_collection = __return -%} - {%- include snippets/get-locale-string.html key='POST_ON_GITHUB' -%} + {%- include snippets/get-locale-string.html key='POST_ON_GITHUB' -%} {%- assign _locale_post_on_github = __return -%} {%- if _is_article_collection -%} {%- include snippets/prepend-path.html path=include.article.path prepend_path=site.collections_dir -%} diff --git a/_includes/article-list.html b/_includes/article-list.html index dfe0c85..ddc0643 100644 --- a/_includes/article-list.html +++ b/_includes/article-list.html @@ -44,7 +44,7 @@ {%- if _article.cover and include.show_cover-%} {%- include snippets/get-nav-url.html path=_article.cover -%} {%- assign _article_cover = __return -%} -
+
{%- if include.cover_size == 'lg' -%} {%- elsif include.cover_size == 'sm' -%} diff --git a/_includes/comments-providers/disqus.html b/_includes/comments-providers/disqus.html index 4022306..03a4187 100644 --- a/_includes/comments-providers/disqus.html +++ b/_includes/comments-providers/disqus.html @@ -1,4 +1,4 @@ -{%- if page.key and +{%- if page.url and site.comments.disqus.shortname -%}
@@ -8,7 +8,7 @@ * LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/ var disqus_config = function () { this.page.url = '{%- include snippets/page-url.html -%}'; - this.page.identifier = '{{ page.key }}'; + this.page.identifier = '{{ page.url }}'; }; (function() { // DON'T EDIT BELOW THIS LINE var d = document, s = d.createElement('script'); diff --git a/_includes/head/favicon.html b/_includes/head/favicon.html index d383bfc..4ff2545 100644 --- a/_includes/head/favicon.html +++ b/_includes/head/favicon.html @@ -1,26 +1,9 @@ - -{%- include snippets/prepend-baseurl.html path='/assets/apple-touch-icon.png' -%} - - -{%- include snippets/prepend-baseurl.html path='/assets/favicon-32x32.png' -%} - - -{%- include snippets/prepend-baseurl.html path='/assets/favicon-16x16.png' -%} - - -{%- include snippets/prepend-baseurl.html path='/assets/site.webmanifest' -%} - - -{%- include snippets/prepend-baseurl.html path='/assets/safari-pinned-tab.svg' -%} - - -{%- include snippets/prepend-baseurl.html path='/assets/favicon.ico' -%} - - - - -{%- include snippets/prepend-baseurl.html path='/assets/browserconfig.xml' -%} - - + + + + + + + + - \ No newline at end of file diff --git a/_includes/svg/logo.svg b/_includes/svg/logo.svg index 740dd3e..7b8c262 100644 --- a/_includes/svg/logo.svg +++ b/_includes/svg/logo.svg @@ -1,8 +1,140 @@ - - - + + + + +Created by potrace 1.16, written by Peter Selinger 2001-2019 + + + + + + + + diff --git a/_includes/svg/logo.svg.old b/_includes/svg/logo.svg.old new file mode 100644 index 0000000..740dd3e --- /dev/null +++ b/_includes/svg/logo.svg.old @@ -0,0 +1,8 @@ + + + + diff --git a/_layouts/home.html b/_layouts/home.html index e587d6f..c299f1c 100644 --- a/_layouts/home.html +++ b/_layouts/home.html @@ -27,7 +27,7 @@ show_title: false articles: data_source: paginator.posts article_type: BlogPosting - show_cover: false + show_cover: true show_excerpt: true show_readmore: true show_info: true diff --git a/_posts/2016-10-27-charles-is-not-a-good-tool.md b/_posts/2016-10-27-charles-is-not-a-good-tool.md index 04b0c06..71ae262 100644 --- a/_posts/2016-10-27-charles-is-not-a-good-tool.md +++ b/_posts/2016-10-27-charles-is-not-a-good-tool.md @@ -1,11 +1,13 @@ --- title: "Using charles proxy to monitor mobile SSL traffics" date: 2016-10-27 22:50:33 -0400 -categories: Network +tags: Network +author: Pengzhan Hao --- In this blog, I will generally talk about how to use proper tools to monitor SSL traffics of a mobile devices. Currently, I only can dealing with those SSL traffics which use an obviously certification. Some applications may not using system root cert or they doesn't provide us a method to modify their own certs. For these situation, I still didn't find a good solutions for it. But I'll keep updating this if I get one. My current solution is using AP to forward all SSL traffic to a proxy, [charles proxy](https://www.charlesproxy.com/) is my first choice (Prof asked). It's a non-free software which still update new versions now. So mainly, I'll talk about how to charles SSL proxy. + ### Preparations - Monitor device situation: Linux Machine with wireless adapter diff --git a/_posts/2016-10-28-some-of-my-previews-exper-work.md b/_posts/2016-10-28-some-of-my-previews-exper-work.md index daeb364..ccc1a99 100644 --- a/_posts/2016-10-28-some-of-my-previews-exper-work.md +++ b/_posts/2016-10-28-some-of-my-previews-exper-work.md @@ -2,8 +2,10 @@ title: "Some of my previews experiment works: 2016" date: 2016-10-28 12:27:33 -0400 tags: Research +author: Pengzhan Hao --- This blog contains only some basic record of my works. For some details, I will write a unique blog just for some specific topics. + # 2016-10 diff --git a/_posts/2017-07-08-intro-xv6.md b/_posts/2017-07-08-intro-xv6.md index ca0d9d5..29fb430 100644 --- a/_posts/2017-07-08-intro-xv6.md +++ b/_posts/2017-07-08-intro-xv6.md @@ -2,12 +2,13 @@ title: "Xv6 introduction" date: 2017-07-28 14:56:55 -0400 tags: xv6 - +author: Pengzhan Hao --- In this post, you will learn a few basic concepts of xv6. Learning path will be closed coupled to first project assignment I gave when I assisted in teaching OS classes. Understand system call and know how to implement a simple one will be coved as the first half. In the second half of this post, I will discuss a little bit more on how to debug xv6 using gdb. + ## Xv6 Systemcall diff --git a/_posts/2020-09-15-generate-word-cloud-with-chinese-fenci.md b/_posts/2020-09-15-generate-word-cloud-with-chinese-fenci.md index 60b3e39..0b9dddd 100644 --- a/_posts/2020-09-15-generate-word-cloud-with-chinese-fenci.md +++ b/_posts/2020-09-15-generate-word-cloud-with-chinese-fenci.md @@ -2,6 +2,8 @@ title: "Generate Word Cloud Figures with Chinese-Tokenization and WordCloud python libraries" date: 2020-09-15 22:00:14 -0400 tags: visualization +author: Pengzhan Hao +cover: '/static/2020-09/2020-06-28.png' --- Let's generate a word cloud like this. @@ -9,6 +11,7 @@ Don't understand the language is not a big deal. If your written language is based on latin alphabet(or other language has space between words), skip tokenization. + ## Background diff --git a/_posts/2021-10-13-eddl-how-do-we-train-on-limited-edge-devices.md b/_posts/2021-10-13-eddl-how-do-we-train-on-limited-edge-devices.md index f7bcf89..4dbcbbc 100644 --- a/_posts/2021-10-13-eddl-how-do-we-train-on-limited-edge-devices.md +++ b/_posts/2021-10-13-eddl-how-do-we-train-on-limited-edge-devices.md @@ -2,12 +2,15 @@ title: "EDDL: How do we train neural networks on limited edge devices - PART 1" date: 2021-10-13 16:53:20 -0400 tags: Research +author: Pengzhan Hao +cover: '/static/2021-10/edgelearn-1.png' --- This post introduces our previous milestone in project "Edge trainer", as the paper "EDDL: A Distributed Deep Learning System for Resource-limited Edge Computing Environment." was published. As the first part of the introductions, I focus only on the motivation and summary of our works. More details in design and implementation can be found in late posts. + ## Why do we need training on edge? diff --git a/_site/404.html b/_site/404.html index c701b84..2b7d64f 100644 --- a/_site/404.html +++ b/_site/404.html @@ -1,16 +1,29 @@ - + + + Page Not Found - Stop Talking, Start Doing - - - - + + + + + + + + - + + -About - Stop Talking, Start Doing +Stop Talking, Start Doing - - - - + + + + + + + + - +
+ Archive - Stop Talking, Start Doing - - - - + + + + + + + + - + -
+ @@ -464,7 +612,14 @@