-
Notifications
You must be signed in to change notification settings - Fork 4
/
index.json
1 lines (1 loc) · 92.9 KB
/
index.json
1
[{"authors":["fangxiaojun"],"categories":null,"content":"A handsome boy in X-Lab. ","date":1591519393,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":1591519393,"objectID":"f24f63eb60151ecd55b4c3e494d6a513","permalink":"http://www.x-lab.info/author/%E6%96%B9%E5%AD%9D%E5%90%9B/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E6%96%B9%E5%AD%9D%E5%90%9B/","section":"authors","summary":"A handsome boy in X-Lab. ","tags":null,"title":"方孝君","type":"authors"},{"authors":["liuchang"],"categories":null,"content":"","date":1591425700,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":1591425700,"objectID":"21d6d1f897fbec0bdaeb1555cda19012","permalink":"http://www.x-lab.info/author/%E5%88%98%E7%95%85/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%88%98%E7%95%85/","section":"authors","summary":"","tags":null,"title":"刘畅","type":"authors"},{"authors":["zhaoshengyu"],"categories":null,"content":"","date":1591336955,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":1591336955,"objectID":"831b4495c5b08d3559fca502a53a0e88","permalink":"http://www.x-lab.info/author/%E8%B5%B5%E7%94%9F%E5%AE%87/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E8%B5%B5%E7%94%9F%E5%AE%87/","section":"authors","summary":"","tags":null,"title":"赵生宇","type":"authors"},{"authors":["x-lab"],"categories":null,"content":"X-Lab is a combination of two leading and pioneering laboratories from computer science and data science and engineering respectively in Tongji University (同济大学) and East China Normal University (华东师范大学).The lab is supported by a number of core members, including doctorial supervisors, Ph.D students, master students and undergraduate students.\nX-Lab is an intercross multi-discipline, cutting-edge research lab which focuses on the following research domains: Cloud Computing, Big Data, Data Intelligence, and Education Science \u0026amp; Technology.\nWith regard to the lab culture, we keep all along holding the several opinions below:\n Advocating lofty academic feelings and technical feelings! Encourage highly respected, open and innovative geek culture! Rejecting the “sophisticated egoism”! Adhering to the “open”, “equal”, ”positive”, ”mutual respect”, “mutual support” culture! Stay hungry, stay foolish Your attention to our lab would be highly appreciated. It’s not only our pursuit but also our faith endeavoring to build a harmonious team with a strong sense of belonging: mentors and students like one family!\n* We are always looking for highly-motivated students to work with us on the exciting area of computer science. If you are interested, please contact us by email.\n","date":1590624000,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":1590624000,"objectID":"3e8ac7f1a634a255eb5b5e3e148a05d5","permalink":"http://www.x-lab.info/author/x-lab/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/x-lab/","section":"authors","summary":"X-Lab is a combination of two leading and pioneering laboratories from computer science and data science and engineering respectively in Tongji University (同济大学) and East China Normal University (华东师范大学).The lab is supported by a number of core members, including doctorial supervisors, Ph.","tags":null,"title":"X-Lab","type":"authors"},{"authors":["wanxing"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"1335d04dfec540558d6cdba12116bffa","permalink":"http://www.x-lab.info/author/%E4%B8%87%E5%85%B4/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E4%B8%87%E5%85%B4/","section":"authors","summary":"","tags":null,"title":"万兴","type":"authors"},{"authors":["liuhan"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"d913175d150241d4988ac4b93b2e73af","permalink":"http://www.x-lab.info/author/%E5%88%98%E6%B6%B5/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%88%98%E6%B6%B5/","section":"authors","summary":"","tags":null,"title":"刘涵","type":"authors"},{"authors":["shijingben"],"categories":null,"content":"Enjoy the life. ","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"33c26a0504ed30d2171cfc9593f746e8","permalink":"http://www.x-lab.info/author/%E5%8F%B2%E7%BB%8F%E7%8A%87/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%8F%B2%E7%BB%8F%E7%8A%87/","section":"authors","summary":"Enjoy the life. ","tags":null,"title":"史经犇","type":"authors"},{"authors":["lvyangcai"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"68a0e1486a28d3a0f0d8bb338a6f9c29","permalink":"http://www.x-lab.info/author/%E5%90%95%E6%89%AC%E6%89%8D/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%90%95%E6%89%AC%E6%89%8D/","section":"authors","summary":"","tags":null,"title":"吕扬才","type":"authors"},{"authors":["wujiajie"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"a40dea202c57a55e5bca10af5c58eeb2","permalink":"http://www.x-lab.info/author/%E5%90%B4%E4%BD%B3%E6%B4%81/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%90%B4%E4%BD%B3%E6%B4%81/","section":"authors","summary":"","tags":null,"title":"吴佳洁","type":"authors"},{"authors":["wushaoling"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"0b44513cb16d0ef675ed9f5d0d4c7bb9","permalink":"http://www.x-lab.info/author/%E5%90%B4%E7%BB%8D%E5%B2%AD/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%90%B4%E7%BB%8D%E5%B2%AD/","section":"authors","summary":"","tags":null,"title":"吴绍岭","type":"authors"},{"authors":["zhoutianyi"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"d067f10d984e9215e2ad0cd36a5a4e39","permalink":"http://www.x-lab.info/author/%E5%91%A8%E6%B7%BB%E4%B8%80/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%91%A8%E6%B7%BB%E4%B8%80/","section":"authors","summary":"","tags":null,"title":"周添一","type":"authors"},{"authors":["tangjun"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"199754d882b2dd68d9a2c25069b7e917","permalink":"http://www.x-lab.info/author/%E5%94%90%E9%AA%8F/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%94%90%E9%AA%8F/","section":"authors","summary":"","tags":null,"title":"唐骏","type":"authors"},{"authors":["xiaxiaoya"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"5b06103545d1d683e04857fe2fd2b783","permalink":"http://www.x-lab.info/author/%E5%A4%8F%E5%B0%8F%E9%9B%85/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%A4%8F%E5%B0%8F%E9%9B%85/","section":"authors","summary":"","tags":null,"title":"夏小雅","type":"authors"},{"authors":["louzehua"],"categories":null,"content":"A newcomer of X-Lab. HOME\n","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"afd345da745f5fd452095babc1ed3fdd","permalink":"http://www.x-lab.info/author/%E5%A8%84%E6%B3%BD%E5%8D%8E/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%A8%84%E6%B3%BD%E5%8D%8E/","section":"authors","summary":"A newcomer of X-Lab. HOME","tags":null,"title":"娄泽华","type":"authors"},{"authors":["changjinda"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"af8da6296d03da1031db95d67560fc51","permalink":"http://www.x-lab.info/author/%E5%B8%B8%E8%BF%9B%E8%BE%BE/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%B8%B8%E8%BF%9B%E8%BE%BE/","section":"authors","summary":"","tags":null,"title":"常进达","type":"authors"},{"authors":["liaozhengyu"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"aeb99a44340360880dfa98695560b48b","permalink":"http://www.x-lab.info/author/%E5%BB%96%E6%AD%A3%E5%AE%87/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%BB%96%E6%AD%A3%E5%AE%87/","section":"authors","summary":"","tags":null,"title":"廖正宇","type":"authors"},{"authors":["zhangjingxuan"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"a5b48cbfcaa052daca7a7e91b136c2d5","permalink":"http://www.x-lab.info/author/%E5%BC%A0%E6%95%AC%E8%BD%A9/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%BC%A0%E6%95%AC%E8%BD%A9/","section":"authors","summary":"","tags":null,"title":"张敬轩","type":"authors"},{"authors":["zhangliqing"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"84ad05ec2f9b11ced5e3919b26781952","permalink":"http://www.x-lab.info/author/%E5%BC%A0%E7%A4%BC%E5%BA%86/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%BC%A0%E7%A4%BC%E5%BA%86/","section":"authors","summary":"","tags":null,"title":"张礼庆","type":"authors"},{"authors":["zhangxinrui"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"33e947ac0dae07eb60f6e233bfb1ccfb","permalink":"http://www.x-lab.info/author/%E5%BC%A0%E9%A6%A8%E8%95%8A/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%BC%A0%E9%A6%A8%E8%95%8A/","section":"authors","summary":"","tags":null,"title":"张馨蕊","type":"authors"},{"authors":["xvyanjun"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"395b1a5042c04bd09034dbdf395463f6","permalink":"http://www.x-lab.info/author/%E5%BE%90%E5%BD%A6%E5%86%9B/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E5%BE%90%E5%BD%A6%E5%86%9B/","section":"authors","summary":"","tags":null,"title":"徐彦军","type":"authors"},{"authors":["wenjie"],"categories":null,"content":"A handsome boy in X-Lab. ","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"4e147b7032fa2c4f622e816db6fdeaa7","permalink":"http://www.x-lab.info/author/%E6%96%87%E6%9D%B0/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E6%96%87%E6%9D%B0/","section":"authors","summary":"A handsome boy in X-Lab. ","tags":null,"title":"文杰","type":"authors"},{"authors":["zhudandan"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"a97df8bfd12d1c65bea2cdef8e1c520f","permalink":"http://www.x-lab.info/author/%E6%9C%B1%E4%B8%B9%E4%B8%B9/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E6%9C%B1%E4%B8%B9%E4%B8%B9/","section":"authors","summary":"","tags":null,"title":"朱丹丹","type":"authors"},{"authors":["zhuxiangning"],"categories":null,"content":"Make it. ","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"bba5d529ac6f81000a2f68349cc51c74","permalink":"http://www.x-lab.info/author/%E6%9C%B1%E9%A6%99%E5%AE%81/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E6%9C%B1%E9%A6%99%E5%AE%81/","section":"authors","summary":"Make it. ","tags":null,"title":"朱香宁","type":"authors"},{"authors":["lijiansheng"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"bf39119b22c3deb8a6c9985158805eba","permalink":"http://www.x-lab.info/author/%E6%9D%8E%E5%BB%BA%E7%9B%9B%E9%80%82%E5%85%95/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E6%9D%8E%E5%BB%BA%E7%9B%9B%E9%80%82%E5%85%95/","section":"authors","summary":"","tags":null,"title":"李建盛(适兕)","type":"authors"},{"authors":["liwen"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"05577f29617fba329ed7a50ab0e6fb41","permalink":"http://www.x-lab.info/author/%E6%9D%8E%E6%96%87/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E6%9D%8E%E6%96%87/","section":"authors","summary":"","tags":null,"title":"李文","type":"authors"},{"authors":["lizhiwei"],"categories":null,"content":"Keep it deep within your soul ","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"e2e21cbda54f43ba7f1a09cfd316c2b7","permalink":"http://www.x-lab.info/author/%E6%9D%8E%E6%99%BA%E4%BC%9F/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E6%9D%8E%E6%99%BA%E4%BC%9F/","section":"authors","summary":"Keep it deep within your soul ","tags":null,"title":"李智伟","type":"authors"},{"authors":["limiaojin"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"d969813931dea924f571d8d7386d21a7","permalink":"http://www.x-lab.info/author/%E6%9D%8E%E8%8B%97%E8%BF%9B/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E6%9D%8E%E8%8B%97%E8%BF%9B/","section":"authors","summary":"","tags":null,"title":"李苗进","type":"authors"},{"authors":["lijing"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"94a4b0251aeef64433f8777a71008a43","permalink":"http://www.x-lab.info/author/%E6%9D%8E%E9%9D%99/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E6%9D%8E%E9%9D%99/","section":"authors","summary":"","tags":null,"title":"李静","type":"authors"},{"authors":["yangshanghui"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"ff321187649c6c233a51c239f33ccd61","permalink":"http://www.x-lab.info/author/%E6%9D%A8%E5%B0%9A%E8%BE%89/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E6%9D%A8%E5%B0%9A%E8%BE%89/","section":"authors","summary":"","tags":null,"title":"杨尚辉","type":"authors"},{"authors":["yangming"],"categories":null,"content":"All is well. 生日:1998年2月26日\n星座:双鱼座\n more\n","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"e388e4bf4fa9f4bda9b653fed2a663dc","permalink":"http://www.x-lab.info/author/%E6%9D%A8%E9%B8%A3/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E6%9D%A8%E9%B8%A3/","section":"authors","summary":"All is well. 生日:1998年2月26日\n星座:双鱼座\n more","tags":null,"title":"杨鸣","type":"authors"},{"authors":["linhaiming"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"cf3c18bb4bf7708e16941eece2d5433d","permalink":"http://www.x-lab.info/author/%E6%9E%97%E6%B5%B7%E9%93%AD/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E6%9E%97%E6%B5%B7%E9%93%AD/","section":"authors","summary":"","tags":null,"title":"林海铭","type":"authors"},{"authors":["bifenglin"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"b9b3ad6d09b178a807272936d99adf3c","permalink":"http://www.x-lab.info/author/%E6%AF%95%E6%9E%AB%E6%9E%97/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E6%AF%95%E6%9E%AB%E6%9E%97/","section":"authors","summary":"","tags":null,"title":"毕枫林","type":"authors"},{"authors":["shenxvdong"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"dcd50a08e2dbf9829e8ba123059ed1e0","permalink":"http://www.x-lab.info/author/%E6%B2%88%E6%97%AD%E4%B8%9C/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E6%B2%88%E6%97%AD%E4%B8%9C/","section":"authors","summary":"","tags":null,"title":"沈旭东","type":"authors"},{"authors":["pantang"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"51bbdc71c80aefccd2729ae888ea14ac","permalink":"http://www.x-lab.info/author/%E6%BD%98%E5%A1%98/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E6%BD%98%E5%A1%98/","section":"authors","summary":"","tags":null,"title":"潘塘","type":"authors"},{"authors":["wangwei"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"fca2cc514581a6647130d9e7eaa3635e","permalink":"http://www.x-lab.info/author/%E7%8E%8B%E4%BC%9F/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E7%8E%8B%E4%BC%9F/","section":"authors","summary":"","tags":null,"title":"王伟","type":"authors"},{"authors":["wangchuhan"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"6538af129ead83733e2c294f1d3c942a","permalink":"http://www.x-lab.info/author/%E7%8E%8B%E6%A5%9A%E6%B6%B5/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E7%8E%8B%E6%A5%9A%E6%B6%B5/","section":"authors","summary":"","tags":null,"title":"王楚涵","type":"authors"},{"authors":["wanghaoyue"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"cb20c22b4ad08d11f6194839720b6a41","permalink":"http://www.x-lab.info/author/%E7%8E%8B%E7%9A%93%E6%9C%88/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E7%8E%8B%E7%9A%93%E6%9C%88/","section":"authors","summary":"","tags":null,"title":"王皓月","type":"authors"},{"authors":["tianchunqi"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"d1893b9d32ae985d58212bc5b916790a","permalink":"http://www.x-lab.info/author/%E7%94%B0%E6%98%A5%E5%B2%90/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E7%94%B0%E6%98%A5%E5%B2%90/","section":"authors","summary":"","tags":null,"title":"田春岐","type":"authors"},{"authors":["zhenjieweng"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"a95c39a1fa8db6b8f4bf31f4cfd08955","permalink":"http://www.x-lab.info/author/%E7%BF%81%E6%8C%AF%E6%9D%B0/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E7%BF%81%E6%8C%AF%E6%9D%B0/","section":"authors","summary":"","tags":null,"title":"翁振杰","type":"authors"},{"authors":["miaoxiaobian"],"categories":null,"content":"A new member in X-Lab. ","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"a5753a419798a21e74ae1ca4d6d1a157","permalink":"http://www.x-lab.info/author/%E8%8B%97%E6%99%93%E5%8F%98/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E8%8B%97%E6%99%93%E5%8F%98/","section":"authors","summary":"A new member in X-Lab. ","tags":null,"title":"苗晓变","type":"authors"},{"authors":["fanjiakuan"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"d39aecd0affdcd4970d604e02aa6e0e4","permalink":"http://www.x-lab.info/author/%E8%8C%83%E5%AE%B6%E5%AE%BD/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E8%8C%83%E5%AE%B6%E5%AE%BD/","section":"authors","summary":"","tags":null,"title":"范家宽","type":"authors"},{"authors":["fanyu"],"categories":null,"content":"A happy child in X-Lab. ","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"94958e4e854eff3b6f65b9cf2e6fd7f3","permalink":"http://www.x-lab.info/author/%E8%8C%83%E8%AF%AD/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E8%8C%83%E8%AF%AD/","section":"authors","summary":"A happy child in X-Lab. ","tags":null,"title":"范语","type":"authors"},{"authors":["tailiyuan"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"a4e60938ee169ce9638c68b6c0886b1d","permalink":"http://www.x-lab.info/author/%E9%82%B0%E4%B8%BD%E5%AA%9B/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E9%82%B0%E4%B8%BD%E5%AA%9B/","section":"authors","summary":"","tags":null,"title":"邰丽媛","type":"authors"},{"authors":["zoutao"],"categories":null,"content":"K. ","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"d18d2d31c959355490fa4c858c1a990c","permalink":"http://www.x-lab.info/author/%E9%82%B9%E9%9F%AC/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E9%82%B9%E9%9F%AC/","section":"authors","summary":"K. ","tags":null,"title":"邹韬","type":"authors"},{"authors":["yuyiming"],"categories":null,"content":"Forza! ","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"4dca37a5c2ff046b9e6926b77884260f","permalink":"http://www.x-lab.info/author/%E9%83%81%E6%AF%85%E6%98%8E/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E9%83%81%E6%AF%85%E6%98%8E/","section":"authors","summary":"Forza! ","tags":null,"title":"郁毅明","type":"authors"},{"authors":["luxuesong"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"d0df690bd286df5f0ac7e30750234250","permalink":"http://www.x-lab.info/author/%E9%99%86%E9%9B%AA%E6%9D%BE/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E9%99%86%E9%9B%AA%E6%9D%BE/","section":"authors","summary":"","tags":null,"title":"陆雪松","type":"authors"},{"authors":["chenliang"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"4abf638569b5bc9ba17a053bb7270ac9","permalink":"http://www.x-lab.info/author/%E9%99%88%E4%BA%AE/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E9%99%88%E4%BA%AE/","section":"authors","summary":"","tags":null,"title":"陈亮","type":"authors"},{"authors":["chenyue"],"categories":null,"content":"A lovely girl in X-Lab. ","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"230084e3fc8fe1244a8495279262c3a9","permalink":"http://www.x-lab.info/author/%E9%99%88%E6%82%A6/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E9%99%88%E6%82%A6/","section":"authors","summary":"A lovely girl in X-Lab. ","tags":null,"title":"陈悦","type":"authors"},{"authors":["chenxvgang"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"9e05c7cdb9fbdce9f14f61db7110145e","permalink":"http://www.x-lab.info/author/%E9%99%88%E6%97%AD%E5%88%9A/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E9%99%88%E6%97%AD%E5%88%9A/","section":"authors","summary":"","tags":null,"title":"陈旭刚","type":"authors"},{"authors":["chenmengfan"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"36b6a607df5c18b2f17323740497409a","permalink":"http://www.x-lab.info/author/%E9%99%88%E6%A2%A6%E5%87%A1/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E9%99%88%E6%A2%A6%E5%87%A1/","section":"authors","summary":"","tags":null,"title":"陈梦凡","type":"authors"},{"authors":["huowenjun"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"22eb2989e20b789950f50294616d8357","permalink":"http://www.x-lab.info/author/%E9%9C%8D%E6%96%87%E5%90%9B/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E9%9C%8D%E6%96%87%E5%90%9B/","section":"authors","summary":"","tags":null,"title":"霍文君","type":"authors"},{"authors":["guyeming"],"categories":null,"content":"Block-chain \u0026amp; Open Source ","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"e4d916ad7888f0fb0c4d8118d76a201c","permalink":"http://www.x-lab.info/author/%E9%A1%BE%E4%B8%9A%E9%B8%A3/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E9%A1%BE%E4%B8%9A%E9%B8%A3/","section":"authors","summary":"Block-chain \u0026amp; Open Source ","tags":null,"title":"顾业鸣","type":"authors"},{"authors":["guyisheng"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"7a5404b150fcebe4f38689445df67c42","permalink":"http://www.x-lab.info/author/%E9%A1%BE%E9%80%B8%E5%9C%A3/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E9%A1%BE%E9%80%B8%E5%9C%A3/","section":"authors","summary":"","tags":null,"title":"顾逸圣","type":"authors"},{"authors":["huanglibo"],"categories":null,"content":"","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"67258d8f71e74daa8ef843f8524cf6f6","permalink":"http://www.x-lab.info/author/%E9%BB%84%E7%AB%8B%E6%B3%A2/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E9%BB%84%E7%AB%8B%E6%B3%A2/","section":"authors","summary":"","tags":null,"title":"黄立波","type":"authors"},{"authors":["huangchaoran"],"categories":null,"content":"A handsome boy in X-Lab. ","date":-62135596800,"expirydate":-62135596800,"kind":"taxonomy","lang":"en","lastmod":-62135596800,"objectID":"d355e8e6ea125e4420aca21dc79cb9ab","permalink":"http://www.x-lab.info/author/%E9%BB%84%E8%B6%85%E7%84%B6/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/author/%E9%BB%84%E8%B6%85%E7%84%B6/","section":"authors","summary":"A handsome boy in X-Lab. ","tags":null,"title":"黄超然","type":"authors"},{"authors":null,"categories":null,"content":"Flexibility This feature can be used for publishing content such as:\n Online courses Project or software documentation Tutorials The courses folder may be renamed. For example, we can rename it to docs for software/project documentation or tutorials for creating an online course.\nDelete tutorials To remove these pages, delete the courses folder and see below to delete the associated menu link.\nUpdate site menu After renaming or deleting the courses folder, you may wish to update any [[main]] menu links to it by editing your menu configuration at config/_default/menus.toml.\nFor example, if you delete this folder, you can remove the following from your menu configuration:\n[[main]] name = \u0026quot;Courses\u0026quot; url = \u0026quot;courses/\u0026quot; weight = 50 Or, if you are creating a software documentation site, you can rename the courses folder to docs and update the associated Courses menu configuration to:\n[[main]] name = \u0026quot;Docs\u0026quot; url = \u0026quot;docs/\u0026quot; weight = 50 Update the docs menu If you use the docs layout, note that the name of the menu in the front matter should be in the form [menu.X] where X is the folder name. Hence, if you rename the courses/example/ folder, you should also rename the menu definitions in the front matter of files within courses/example/ from [menu.example] to [menu.\u0026lt;NewFolderName\u0026gt;].\n","date":1536451200,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1536451200,"objectID":"59c3ce8e202293146a8a934d37a4070b","permalink":"http://www.x-lab.info/courses/example/","publishdate":"2018-09-09T00:00:00Z","relpermalink":"/courses/example/","section":"courses","summary":"Learn how to use Academic's docs layout for publishing online courses, software documentation, and tutorials.","tags":null,"title":"Overview","type":"docs"},{"authors":null,"categories":null,"content":"Reports and documentation for class and personal projects\n","date":1536451200,"expirydate":-62135596800,"kind":"section","lang":"en","lastmod":1536451200,"objectID":"4cdd37113783e47641dd300543c94e1b","permalink":"http://www.x-lab.info/docs/","publishdate":"2018-09-09T00:00:00Z","relpermalink":"/docs/","section":"docs","summary":"Reports and documentation for class and personal projects","tags":null,"title":"Overview","type":"docs"},{"authors":null,"categories":null,"content":"In this tutorial, I\u0026rsquo;ll share my top 10 tips for getting started with Academic:\nTip 1 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere tellus ac convallis placerat. Proin tincidunt magna sed ex sollicitudin condimentum. Sed ac faucibus dolor, scelerisque sollicitudin nisi. Cras purus urna, suscipit quis sapien eu, pulvinar tempor diam. Quisque risus orci, mollis id ante sit amet, gravida egestas nisl. Sed ac tempus magna. Proin in dui enim. Donec condimentum, sem id dapibus fringilla, tellus enim condimentum arcu, nec volutpat est felis vel metus. Vestibulum sit amet erat at nulla eleifend gravida.\nNullam vel molestie justo. Curabitur vitae efficitur leo. In hac habitasse platea dictumst. Sed pulvinar mauris dui, eget varius purus congue ac. Nulla euismod, lorem vel elementum dapibus, nunc justo porta mi, sed tempus est est vel tellus. Nam et enim eleifend, laoreet sem sit amet, elementum sem. Morbi ut leo congue, maximus velit ut, finibus arcu. In et libero cursus, rutrum risus non, molestie leo. Nullam congue quam et volutpat malesuada. Sed risus tortor, pulvinar et dictum nec, sodales non mi. Phasellus lacinia commodo laoreet. Nam mollis, erat in feugiat consectetur, purus eros egestas tellus, in auctor urna odio at nibh. Mauris imperdiet nisi ac magna convallis, at rhoncus ligula cursus.\nCras aliquam rhoncus ipsum, in hendrerit nunc mattis vitae. Duis vitae efficitur metus, ac tempus leo. Cras nec fringilla lacus. Quisque sit amet risus at ipsum pharetra commodo. Sed aliquam mauris at consequat eleifend. Praesent porta, augue sed viverra bibendum, neque ante euismod ante, in vehicula justo lorem ac eros. Suspendisse augue libero, venenatis eget tincidunt ut, malesuada at lorem. Donec vitae bibendum arcu. Aenean maximus nulla non pretium iaculis. Quisque imperdiet, nulla in pulvinar aliquet, velit quam ultrices quam, sit amet fringilla leo sem vel nunc. Mauris in lacinia lacus.\nSuspendisse a tincidunt lacus. Curabitur at urna sagittis, dictum ante sit amet, euismod magna. Sed rutrum massa id tortor commodo, vitae elementum turpis tempus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean purus turpis, venenatis a ullamcorper nec, tincidunt et massa. Integer posuere quam rutrum arcu vehicula imperdiet. Mauris ullamcorper quam vitae purus congue, quis euismod magna eleifend. Vestibulum semper vel augue eget tincidunt. Fusce eget justo sodales, dapibus odio eu, ultrices lorem. Duis condimentum lorem id eros commodo, in facilisis mauris scelerisque. Morbi sed auctor leo. Nullam volutpat a lacus quis pharetra. Nulla congue rutrum magna a ornare.\nAliquam in turpis accumsan, malesuada nibh ut, hendrerit justo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque sed erat nec justo posuere suscipit. Donec ut efficitur arcu, in malesuada neque. Nunc dignissim nisl massa, id vulputate nunc pretium nec. Quisque eget urna in risus suscipit ultricies. Pellentesque odio odio, tincidunt in eleifend sed, posuere a diam. Nam gravida nisl convallis semper elementum. Morbi vitae felis faucibus, vulputate orci placerat, aliquet nisi. Aliquam erat volutpat. Maecenas sagittis pulvinar purus, sed porta quam laoreet at.\nTip 2 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere tellus ac convallis placerat. Proin tincidunt magna sed ex sollicitudin condimentum. Sed ac faucibus dolor, scelerisque sollicitudin nisi. Cras purus urna, suscipit quis sapien eu, pulvinar tempor diam. Quisque risus orci, mollis id ante sit amet, gravida egestas nisl. Sed ac tempus magna. Proin in dui enim. Donec condimentum, sem id dapibus fringilla, tellus enim condimentum arcu, nec volutpat est felis vel metus. Vestibulum sit amet erat at nulla eleifend gravida.\nNullam vel molestie justo. Curabitur vitae efficitur leo. In hac habitasse platea dictumst. Sed pulvinar mauris dui, eget varius purus congue ac. Nulla euismod, lorem vel elementum dapibus, nunc justo porta mi, sed tempus est est vel tellus. Nam et enim eleifend, laoreet sem sit amet, elementum sem. Morbi ut leo congue, maximus velit ut, finibus arcu. In et libero cursus, rutrum risus non, molestie leo. Nullam congue quam et volutpat malesuada. Sed risus tortor, pulvinar et dictum nec, sodales non mi. Phasellus lacinia commodo laoreet. Nam mollis, erat in feugiat consectetur, purus eros egestas tellus, in auctor urna odio at nibh. Mauris imperdiet nisi ac magna convallis, at rhoncus ligula cursus.\nCras aliquam rhoncus ipsum, in hendrerit nunc mattis vitae. Duis vitae efficitur metus, ac tempus leo. Cras nec fringilla lacus. Quisque sit amet risus at ipsum pharetra commodo. Sed aliquam mauris at consequat eleifend. Praesent porta, augue sed viverra bibendum, neque ante euismod ante, in vehicula justo lorem ac eros. Suspendisse augue libero, venenatis eget tincidunt ut, malesuada at lorem. Donec vitae bibendum arcu. Aenean maximus nulla non pretium iaculis. Quisque imperdiet, nulla in pulvinar aliquet, velit quam ultrices quam, sit amet fringilla leo sem vel nunc. Mauris in lacinia lacus.\nSuspendisse a tincidunt lacus. Curabitur at urna sagittis, dictum ante sit amet, euismod magna. Sed rutrum massa id tortor commodo, vitae elementum turpis tempus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean purus turpis, venenatis a ullamcorper nec, tincidunt et massa. Integer posuere quam rutrum arcu vehicula imperdiet. Mauris ullamcorper quam vitae purus congue, quis euismod magna eleifend. Vestibulum semper vel augue eget tincidunt. Fusce eget justo sodales, dapibus odio eu, ultrices lorem. Duis condimentum lorem id eros commodo, in facilisis mauris scelerisque. Morbi sed auctor leo. Nullam volutpat a lacus quis pharetra. Nulla congue rutrum magna a ornare.\nAliquam in turpis accumsan, malesuada nibh ut, hendrerit justo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque sed erat nec justo posuere suscipit. Donec ut efficitur arcu, in malesuada neque. Nunc dignissim nisl massa, id vulputate nunc pretium nec. Quisque eget urna in risus suscipit ultricies. Pellentesque odio odio, tincidunt in eleifend sed, posuere a diam. Nam gravida nisl convallis semper elementum. Morbi vitae felis faucibus, vulputate orci placerat, aliquet nisi. Aliquam erat volutpat. Maecenas sagittis pulvinar purus, sed porta quam laoreet at.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"74533bae41439377bd30f645c4677a27","permalink":"http://www.x-lab.info/courses/example/example1/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/courses/example/example1/","section":"courses","summary":"In this tutorial, I\u0026rsquo;ll share my top 10 tips for getting started with Academic:\nTip 1 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere tellus ac convallis placerat. Proin tincidunt magna sed ex sollicitudin condimentum.","tags":null,"title":"Example Page 1","type":"docs"},{"authors":null,"categories":null,"content":"Here are some more tips for getting started with Academic:\nTip 3 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere tellus ac convallis placerat. Proin tincidunt magna sed ex sollicitudin condimentum. Sed ac faucibus dolor, scelerisque sollicitudin nisi. Cras purus urna, suscipit quis sapien eu, pulvinar tempor diam. Quisque risus orci, mollis id ante sit amet, gravida egestas nisl. Sed ac tempus magna. Proin in dui enim. Donec condimentum, sem id dapibus fringilla, tellus enim condimentum arcu, nec volutpat est felis vel metus. Vestibulum sit amet erat at nulla eleifend gravida.\nNullam vel molestie justo. Curabitur vitae efficitur leo. In hac habitasse platea dictumst. Sed pulvinar mauris dui, eget varius purus congue ac. Nulla euismod, lorem vel elementum dapibus, nunc justo porta mi, sed tempus est est vel tellus. Nam et enim eleifend, laoreet sem sit amet, elementum sem. Morbi ut leo congue, maximus velit ut, finibus arcu. In et libero cursus, rutrum risus non, molestie leo. Nullam congue quam et volutpat malesuada. Sed risus tortor, pulvinar et dictum nec, sodales non mi. Phasellus lacinia commodo laoreet. Nam mollis, erat in feugiat consectetur, purus eros egestas tellus, in auctor urna odio at nibh. Mauris imperdiet nisi ac magna convallis, at rhoncus ligula cursus.\nCras aliquam rhoncus ipsum, in hendrerit nunc mattis vitae. Duis vitae efficitur metus, ac tempus leo. Cras nec fringilla lacus. Quisque sit amet risus at ipsum pharetra commodo. Sed aliquam mauris at consequat eleifend. Praesent porta, augue sed viverra bibendum, neque ante euismod ante, in vehicula justo lorem ac eros. Suspendisse augue libero, venenatis eget tincidunt ut, malesuada at lorem. Donec vitae bibendum arcu. Aenean maximus nulla non pretium iaculis. Quisque imperdiet, nulla in pulvinar aliquet, velit quam ultrices quam, sit amet fringilla leo sem vel nunc. Mauris in lacinia lacus.\nSuspendisse a tincidunt lacus. Curabitur at urna sagittis, dictum ante sit amet, euismod magna. Sed rutrum massa id tortor commodo, vitae elementum turpis tempus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean purus turpis, venenatis a ullamcorper nec, tincidunt et massa. Integer posuere quam rutrum arcu vehicula imperdiet. Mauris ullamcorper quam vitae purus congue, quis euismod magna eleifend. Vestibulum semper vel augue eget tincidunt. Fusce eget justo sodales, dapibus odio eu, ultrices lorem. Duis condimentum lorem id eros commodo, in facilisis mauris scelerisque. Morbi sed auctor leo. Nullam volutpat a lacus quis pharetra. Nulla congue rutrum magna a ornare.\nAliquam in turpis accumsan, malesuada nibh ut, hendrerit justo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque sed erat nec justo posuere suscipit. Donec ut efficitur arcu, in malesuada neque. Nunc dignissim nisl massa, id vulputate nunc pretium nec. Quisque eget urna in risus suscipit ultricies. Pellentesque odio odio, tincidunt in eleifend sed, posuere a diam. Nam gravida nisl convallis semper elementum. Morbi vitae felis faucibus, vulputate orci placerat, aliquet nisi. Aliquam erat volutpat. Maecenas sagittis pulvinar purus, sed porta quam laoreet at.\nTip 4 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere tellus ac convallis placerat. Proin tincidunt magna sed ex sollicitudin condimentum. Sed ac faucibus dolor, scelerisque sollicitudin nisi. Cras purus urna, suscipit quis sapien eu, pulvinar tempor diam. Quisque risus orci, mollis id ante sit amet, gravida egestas nisl. Sed ac tempus magna. Proin in dui enim. Donec condimentum, sem id dapibus fringilla, tellus enim condimentum arcu, nec volutpat est felis vel metus. Vestibulum sit amet erat at nulla eleifend gravida.\nNullam vel molestie justo. Curabitur vitae efficitur leo. In hac habitasse platea dictumst. Sed pulvinar mauris dui, eget varius purus congue ac. Nulla euismod, lorem vel elementum dapibus, nunc justo porta mi, sed tempus est est vel tellus. Nam et enim eleifend, laoreet sem sit amet, elementum sem. Morbi ut leo congue, maximus velit ut, finibus arcu. In et libero cursus, rutrum risus non, molestie leo. Nullam congue quam et volutpat malesuada. Sed risus tortor, pulvinar et dictum nec, sodales non mi. Phasellus lacinia commodo laoreet. Nam mollis, erat in feugiat consectetur, purus eros egestas tellus, in auctor urna odio at nibh. Mauris imperdiet nisi ac magna convallis, at rhoncus ligula cursus.\nCras aliquam rhoncus ipsum, in hendrerit nunc mattis vitae. Duis vitae efficitur metus, ac tempus leo. Cras nec fringilla lacus. Quisque sit amet risus at ipsum pharetra commodo. Sed aliquam mauris at consequat eleifend. Praesent porta, augue sed viverra bibendum, neque ante euismod ante, in vehicula justo lorem ac eros. Suspendisse augue libero, venenatis eget tincidunt ut, malesuada at lorem. Donec vitae bibendum arcu. Aenean maximus nulla non pretium iaculis. Quisque imperdiet, nulla in pulvinar aliquet, velit quam ultrices quam, sit amet fringilla leo sem vel nunc. Mauris in lacinia lacus.\nSuspendisse a tincidunt lacus. Curabitur at urna sagittis, dictum ante sit amet, euismod magna. Sed rutrum massa id tortor commodo, vitae elementum turpis tempus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean purus turpis, venenatis a ullamcorper nec, tincidunt et massa. Integer posuere quam rutrum arcu vehicula imperdiet. Mauris ullamcorper quam vitae purus congue, quis euismod magna eleifend. Vestibulum semper vel augue eget tincidunt. Fusce eget justo sodales, dapibus odio eu, ultrices lorem. Duis condimentum lorem id eros commodo, in facilisis mauris scelerisque. Morbi sed auctor leo. Nullam volutpat a lacus quis pharetra. Nulla congue rutrum magna a ornare.\nAliquam in turpis accumsan, malesuada nibh ut, hendrerit justo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque sed erat nec justo posuere suscipit. Donec ut efficitur arcu, in malesuada neque. Nunc dignissim nisl massa, id vulputate nunc pretium nec. Quisque eget urna in risus suscipit ultricies. Pellentesque odio odio, tincidunt in eleifend sed, posuere a diam. Nam gravida nisl convallis semper elementum. Morbi vitae felis faucibus, vulputate orci placerat, aliquet nisi. Aliquam erat volutpat. Maecenas sagittis pulvinar purus, sed porta quam laoreet at.\n","date":1557010800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1557010800,"objectID":"1c2b5a11257c768c90d5050637d77d6a","permalink":"http://www.x-lab.info/courses/example/example2/","publishdate":"2019-05-05T00:00:00+01:00","relpermalink":"/courses/example/example2/","section":"courses","summary":"Here are some more tips for getting started with Academic:\nTip 3 Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere tellus ac convallis placerat. Proin tincidunt magna sed ex sollicitudin condimentum.","tags":null,"title":"Example Page 2","type":"docs"},{"authors":[],"categories":null,"content":" Click on the Slides button above to view the built-in slides feature. Slides can be added in a few ways:\n Create slides using Academic\u0026rsquo;s Slides feature and link using slides parameter in the front matter of the talk file Upload an existing slide deck to static/ and link using url_slides parameter in the front matter of the talk file Embed your slides (e.g. Google Slides) or presentation video on this page using shortcodes. Further talk details can easily be added to this page using Markdown and $\\rm \\LaTeX$ math code.\n","date":1906549200,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1906549200,"objectID":"96344c08df50a1b693cc40432115cbe3","permalink":"http://www.x-lab.info/talk/example/","publishdate":"2017-01-01T00:00:00Z","relpermalink":"/talk/example/","section":"talk","summary":"An example talk using Academic's Markdown slides feature.","tags":[],"title":"Example Talk","type":"talk"},{"authors":["方孝君"],"categories":["technology"],"content":"Academic is designed to give technical content creators a seamless experience. You can focus on the content and Academic handles the rest.\nHighlight your code snippets, take notes on math classes, and draw diagrams from textual representation.\nOn this page, you\u0026rsquo;ll find some examples of the types of technical content that can be rendered with Academic.\nExamples Code Academic supports a Markdown extension for highlighting code syntax. You can enable this feature by toggling the highlight option in your config/_default/params.toml file.\n```python import pandas as pd data = pd.read_csv(\u0026quot;data.csv\u0026quot;) data.head() ``` renders as\nimport pandas as pd data = pd.read_csv(\u0026quot;data.csv\u0026quot;) data.head() Math Academic supports a Markdown extension for $\\LaTeX$ math. You can enable this feature by toggling the math option in your config/_default/params.toml file.\nTo render inline or block math, wrap your LaTeX math with $...$ or $$...$$, respectively.\nExample math block:\n$$\\gamma_{n} = \\frac{ \\left | \\left (\\mathbf x_{n} - \\mathbf x_{n-1} \\right )^T \\left [\\nabla F (\\mathbf x_{n}) - \\nabla F (\\mathbf x_{n-1}) \\right ] \\right |} {\\left \\|\\nabla F(\\mathbf{x}_{n}) - \\nabla F(\\mathbf{x}_{n-1}) \\right \\|^2}$$ renders as\n$$\\gamma_{n} = \\frac{ \\left | \\left (\\mathbf x_{n} - \\mathbf x_{n-1} \\right )^T \\left [\\nabla F (\\mathbf x_{n}) - \\nabla F (\\mathbf x_{n-1}) \\right ] \\right |}{\\left |\\nabla F(\\mathbf{x}_{n}) - \\nabla F(\\mathbf{x}_{n-1}) \\right |^2}$$\nExample inline math $\\nabla F(\\mathbf{x}_{n})$ renders as $\\nabla F(\\mathbf{x}_{n})$.\nExample multi-line math using the \\\\\\\\ math linebreak:\n$$f(k;p_0^*) = \\begin{cases} p_0^* \u0026amp; \\text{if }k=1, \\\\\\\\ 1-p_0^* \u0026amp; \\text {if }k=0.\\end{cases}$$ renders as\n$$f(k;p_0^*) = \\begin{cases} p_0^* \u0026amp; \\text{if }k=1, \\\\\n1-p_0^* \u0026amp; \\text {if }k=0.\\end{cases}$$\nDiagrams Academic supports a Markdown extension for diagrams. You can enable this feature by toggling the diagram option in your config/_default/params.toml file or by adding diagram: true to your page front matter.\nAn example flowchart:\n```mermaid graph TD A[Hard] --\u0026gt;|Text| B(Round) B --\u0026gt; C{Decision} C --\u0026gt;|One| D[Result 1] C --\u0026gt;|Two| E[Result 2] ``` renders as\ngraph TD A[Hard] --\u0026gt;|Text| B(Round) B --\u0026gt; C{Decision} C --\u0026gt;|One| D[Result 1] C --\u0026gt;|Two| E[Result 2] An example sequence diagram:\n```mermaid sequenceDiagram Alice-\u0026gt;\u0026gt;John: Hello John, how are you? loop Healthcheck John-\u0026gt;\u0026gt;John: Fight against hypochondria end Note right of John: Rational thoughts! John--\u0026gt;\u0026gt;Alice: Great! John-\u0026gt;\u0026gt;Bob: How about you? Bob--\u0026gt;\u0026gt;John: Jolly good! ``` renders as\nsequenceDiagram Alice-\u0026gt;\u0026gt;John: Hello John, how are you? loop Healthcheck John-\u0026gt;\u0026gt;John: Fight against hypochondria end Note right of John: Rational thoughts! John--\u0026gt;\u0026gt;Alice: Great! John-\u0026gt;\u0026gt;Bob: How about you? Bob--\u0026gt;\u0026gt;John: Jolly good! An example Gantt diagram:\n```mermaid gantt section Section Completed :done, des1, 2014-01-06,2014-01-08 Active :active, des2, 2014-01-07, 3d Parallel 1 : des3, after des1, 1d Parallel 2 : des4, after des1, 1d Parallel 3 : des5, after des3, 1d Parallel 4 : des6, after des4, 1d ``` renders as\ngantt section Section Completed :done, des1, 2014-01-06,2014-01-08 Active :active, des2, 2014-01-07, 3d Parallel 1 : des3, after des1, 1d Parallel 2 : des4, after des1, 1d Parallel 3 : des5, after des3, 1d Parallel 4 : des6, after des4, 1d An example class diagram:\n```mermaid classDiagram Class01 \u0026lt;|-- AveryLongClass : Cool \u0026lt;\u0026lt;interface\u0026gt;\u0026gt; Class01 Class09 --\u0026gt; C2 : Where am i? Class09 --* C3 Class09 --|\u0026gt; Class07 Class07 : equals() Class07 : Object[] elementData Class01 : size() Class01 : int chimp Class01 : int gorilla class Class10 { \u0026lt;\u0026lt;service\u0026gt;\u0026gt; int id size() } ``` renders as\nclassDiagram Class01 \u0026lt;|-- AveryLongClass : Cool \u0026lt;\u0026lt;interface\u0026gt;\u0026gt; Class01 Class09 --\u0026gt; C2 : Where am i? Class09 --* C3 Class09 --|\u0026gt; Class07 Class07 : equals() Class07 : Object[] elementData Class01 : size() Class01 : int chimp Class01 : int gorilla class Class10 { \u0026lt;\u0026lt;service\u0026gt;\u0026gt; int id size() } An example state diagram:\n```mermaid stateDiagram [*] --\u0026gt; Still Still --\u0026gt; [*] Still --\u0026gt; Moving Moving --\u0026gt; Still Moving --\u0026gt; Crash Crash --\u0026gt; [*] ``` renders as\nstateDiagram [*] --\u0026gt; Still Still --\u0026gt; [*] Still --\u0026gt; Moving Moving --\u0026gt; Still Moving --\u0026gt; Crash Crash --\u0026gt; [*] Todo lists You can even write your todo lists in Academic too:\n- [x] Write math example - [x] Write diagram example - [ ] Do something else renders as\n Write math example Write diagram example Do something else Tables Represent your data in tables:\n| First Header | Second Header | | ------------- | ------------- | | Content Cell | Content Cell | | Content Cell | Content Cell | renders as\n First Header Second Header Content Cell Content Cell Content Cell Content Cell Asides Academic supports a shortcode for asides, also referred to as notices, hints, or alerts. By wrapping a paragraph in {{% alert note %}} ... {{% /alert %}}, it will render as an aside.\n{{% alert note %}} A Markdown aside is useful for displaying notices, hints, or definitions to your readers. {{% /alert %}} renders as\n A Markdown aside is useful for displaying notices, hints, or definitions to your readers. Icons Academic enables you to use a wide range of icons from Font Awesome and Academicons in addition to emojis.\nHere are some examples using the icon shortcode to render icons:\n{{\u0026lt; icon name=\u0026quot;terminal\u0026quot; pack=\u0026quot;fas\u0026quot; \u0026gt;}} Terminal {{\u0026lt; icon name=\u0026quot;python\u0026quot; pack=\u0026quot;fab\u0026quot; \u0026gt;}} Python {{\u0026lt; icon name=\u0026quot;r-project\u0026quot; pack=\u0026quot;fab\u0026quot; \u0026gt;}} R renders as\n Terminal\n Python\n R\nDid you find this page helpful? Consider sharing it 🙌 ","date":1591519393,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1591519393,"objectID":"07e02bccc368a192a0c76c44918396c3","permalink":"http://www.x-lab.info/post/writing-technical-content/","publishdate":"2020-06-07T16:43:13+08:00","relpermalink":"/post/writing-technical-content/","section":"post","summary":"Learn how to write technical content by using various skills.","tags":["technology"],"title":"Writing Technical Content in Academic","type":"post"},{"authors":["方孝君"],"categories":["technology"],"content":"from IPython.core.display import Image Image('https://www.python.org/static/community_logos/python-logo-master-v3-TM-flattened.png') print(\u0026quot;Welcome to Academic!\u0026quot;) Welcome to Academic! Install Python and JupyterLab Install Anaconda which includes Python 3 and JupyterLab.\nAlternatively, install JupyterLab with pip3 install jupyterlab.\nCreate or upload a Jupyter notebook Run the following commands in your Terminal, substituting \u0026lt;MY-WEBSITE-FOLDER\u0026gt; and \u0026lt;SHORT-POST-TITLE\u0026gt; with the file path to your Academic website folder and a short title for your blog post (use hyphens instead of spaces), respectively:\nmkdir -p \u0026lt;MY-WEBSITE-FOLDER\u0026gt;/content/post/\u0026lt;SHORT-POST-TITLE\u0026gt;/ cd \u0026lt;MY-WEBSITE-FOLDER\u0026gt;/content/post/\u0026lt;SHORT-POST-TITLE\u0026gt;/ jupyter lab index.ipynb The jupyter command above will launch the JupyterLab editor, allowing us to add Academic metadata and write the content.\nEdit your post metadata The first cell of your Jupter notebook will contain your post metadata ( front matter).\nIn Jupter, choose Markdown as the type of the first cell and wrap your Academic metadata in three dashes, indicating that it is YAML front matter:\n--- title: My post's title date: 2019-09-01 # Put any other Academic metadata here... --- Edit the metadata of your post, using the documentation as a guide to the available options.\nTo set a featured image, place an image named featured into your post\u0026rsquo;s folder.\nFor other tips, such as using math, see the guide on writing content with Academic.\nConvert notebook to Markdown jupyter nbconvert index.ipynb --to markdown --NbConvertApp.output_files_dir=. Example This post was created with Jupyter. The orginal files can be found at https://github.com/gcushen/hugo-academic/tree/master/exampleSite/content/post/jupyter\n","date":1591518801,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1591518801,"objectID":"6e929dc84ed3ef80467b02e64cd2ed64","permalink":"http://www.x-lab.info/post/jupyter/","publishdate":"2020-06-07T16:33:21+08:00","relpermalink":"/post/jupyter/","section":"post","summary":"Learn how to blog in Academic using Jupyter notebooks.","tags":["technology"],"title":"Display Jupyter Notebooks with Academic","type":"post"},{"authors":["刘畅"],"categories":["Cloud Computing","Open Source"],"content":"","date":1591425700,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1591425700,"objectID":"4fdbcfd66e377f08615a1eb49a953f67","permalink":"http://www.x-lab.info/project/gitcourse/","publishdate":"2020-06-06T14:41:40+08:00","relpermalink":"/project/gitcourse/","section":"project","summary":"A react front framework which can present courses made by repositories.","tags":["Cloud Computing","Open Source"],"title":"GitCourse","type":"project"},{"authors":["赵生宇"],"categories":["Big Data","Open Source"],"content":"","date":1591336955,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1591336955,"objectID":"a4e70f26af804d717e8c077405c5166b","permalink":"http://www.x-lab.info/project/hypertrons/","publishdate":"2020-06-05T14:02:35+08:00","relpermalink":"/project/hypertrons/","section":"project","summary":"An open source robot hosting platform which supports GitHub and GitLab.","tags":["Big Data","Open Source"],"title":"Hypertrons","type":"project"},{"authors":["方孝君"],"categories":["Demo"],"content":"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis posuere tellus ac convallis placerat. Proin tincidunt magna sed ex sollicitudin condimentum. Sed ac faucibus dolor, scelerisque sollicitudin nisi. Cras purus urna, suscipit quis sapien eu, pulvinar tempor diam. Quisque risus orci, mollis id ante sit amet, gravida egestas nisl. Sed ac tempus magna. Proin in dui enim. Donec condimentum, sem id dapibus fringilla, tellus enim condimentum arcu, nec volutpat est felis vel metus. Vestibulum sit amet erat at nulla eleifend gravida.\nNullam vel molestie justo. Curabitur vitae efficitur leo. In hac habitasse platea dictumst. Sed pulvinar mauris dui, eget varius purus congue ac. Nulla euismod, lorem vel elementum dapibus, nunc justo porta mi, sed tempus est est vel tellus. Nam et enim eleifend, laoreet sem sit amet, elementum sem. Morbi ut leo congue, maximus velit ut, finibus arcu. In et libero cursus, rutrum risus non, molestie leo. Nullam congue quam et volutpat malesuada. Sed risus tortor, pulvinar et dictum nec, sodales non mi. Phasellus lacinia commodo laoreet. Nam mollis, erat in feugiat consectetur, purus eros egestas tellus, in auctor urna odio at nibh. Mauris imperdiet nisi ac magna convallis, at rhoncus ligula cursus.\nCras aliquam rhoncus ipsum, in hendrerit nunc mattis vitae. Duis vitae efficitur metus, ac tempus leo. Cras nec fringilla lacus. Quisque sit amet risus at ipsum pharetra commodo. Sed aliquam mauris at consequat eleifend. Praesent porta, augue sed viverra bibendum, neque ante euismod ante, in vehicula justo lorem ac eros. Suspendisse augue libero, venenatis eget tincidunt ut, malesuada at lorem. Donec vitae bibendum arcu. Aenean maximus nulla non pretium iaculis. Quisque imperdiet, nulla in pulvinar aliquet, velit quam ultrices quam, sit amet fringilla leo sem vel nunc. Mauris in lacinia lacus.\nSuspendisse a tincidunt lacus. Curabitur at urna sagittis, dictum ante sit amet, euismod magna. Sed rutrum massa id tortor commodo, vitae elementum turpis tempus. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean purus turpis, venenatis a ullamcorper nec, tincidunt et massa. Integer posuere quam rutrum arcu vehicula imperdiet. Mauris ullamcorper quam vitae purus congue, quis euismod magna eleifend. Vestibulum semper vel augue eget tincidunt. Fusce eget justo sodales, dapibus odio eu, ultrices lorem. Duis condimentum lorem id eros commodo, in facilisis mauris scelerisque. Morbi sed auctor leo. Nullam volutpat a lacus quis pharetra. Nulla congue rutrum magna a ornare.\nAliquam in turpis accumsan, malesuada nibh ut, hendrerit justo. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque sed erat nec justo posuere suscipit. Donec ut efficitur arcu, in malesuada neque. Nunc dignissim nisl massa, id vulputate nunc pretium nec. Quisque eget urna in risus suscipit ultricies. Pellentesque odio odio, tincidunt in eleifend sed, posuere a diam. Nam gravida nisl convallis semper elementum. Morbi vitae felis faucibus, vulputate orci placerat, aliquet nisi. Aliquam erat volutpat. Maecenas sagittis pulvinar purus, sed porta quam laoreet at.\n","date":1591002358,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1591002358,"objectID":"8f66d660a9a2edc2d08e68cc30f701f7","permalink":"http://www.x-lab.info/project/internal-project/","publishdate":"2020-06-01T17:05:58+08:00","relpermalink":"/project/internal-project/","section":"project","summary":"An example of using the in-built project page.","tags":["Demo"],"title":"Internal Project","type":"project"},{"authors":["方孝君"],"categories":["demo"],"content":"","date":1590830089,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1590830089,"objectID":"d1311ddf745551c9e117aa4bb7e28516","permalink":"http://www.x-lab.info/project/external-project/","publishdate":"2020-05-30T17:14:49+08:00","relpermalink":"/project/external-project/","section":"project","summary":"An example of linking directly to an external project website using `external_link`.","tags":["demo"],"title":"External Project","type":"project"},{"authors":["方孝君"],"categories":["algorithm"],"content":"前言 本文整理并总结了十大经典的排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、希尔排序、计数排序、基数排序、桶排序、堆排序)的时间复杂度、空间复杂度等性质。\n本文并不会详细讲解每种排序算法的原理,网上有很多很好的教程,大家可以自己去搜了看。\n最后我还亲自手写了十种排序算法的 c++ 代码,大家可以用来通过 LeetCode 912. 排序数组 这道题。\n性质汇总 如果发现表中有错误,请留言告知。\n 算法 最好 最坏 平均 空间 稳定性 是否基于比较 冒泡排序 $O(n)$ $O(n^2)$ $O(n^2)$ $O(1)$ $\\checkmark$ $\\checkmark$ 选择排序 $O(n^2)$ $O(n^2)$ $O(n^2)$ $O(1)$ $\\times$ $\\checkmark$ 插入排序 $O(n)$ $O(n^2)$ $O(n^2)$ $O(1)$ $\\checkmark$ $\\checkmark$ 快速排序 $O(n\\log n)$ $O(n^2)$ $O(n\\log n)$ $O(\\log n)$~$O(n)$ $\\times$ $\\checkmark$ 归并排序 $O(n\\log n)$ $O(n\\log n)$ $O(n\\log n)$ $O(n)$ $\\checkmark$ $\\checkmark$ 希尔排序 $O(n^{1.3})$ $O(n^2)$ $O(n\\log n)$~$O(n^2)$ $O(1)$ $\\times$ $\\checkmark$ 计数排序 $O(n+k)$ $O(n+k)$ $O(n+k)$ $O(n+k)$ $\\checkmark$ $\\times$ 基数排序 $O(nk)$ $O(nk)$ $O(nk)$ $O(n+k)$ $\\checkmark$ $\\times$ 桶排序 $O(n)$ $O(n)$ $O(n)$ $O(n+m)$ $\\checkmark$ $\\times$ 堆排序 $O(n\\log n)$ $O(n\\log n)$ $O(n\\log n)$ $O(1)$ $\\times$ $\\checkmark$ 维基百科 我觉得还是英文维基百科讲的比较详细、严谨。如果大家看的比较累的话,可以自己百度搜索相应的教程。\n冒泡排序 : Bubble_sort\n选择排序 : Selection_sort\n插入排序 : Insertion_sort\n快速排序 : Quicksort\n归并排序 : Merge_sort\n希尔排序 : Shellsort\n计数排序 : Counting_sort\n基数排序 : Radix_sort\n桶排序 : Bucket_sort\n堆排序 : Heapsort\n代码实现 所有的排序算法接口都是相同的,也就是 vector\u0026lt;int\u0026gt; xxxSort(vector\u0026lt;int\u0026gt;\u0026amp; nums) 。只需要你传入一个 vector\u0026lt;int\u0026gt; 类型的数组,就能返回排序后的结果。\n运行下来可以发现,桶排序速度是比较快的。而冒泡排序、选择排序和插入排序因为时间复杂度太高无法通过本题,基数排序因为无法处理负数也不能通过本题。\nclass Solution { public: vector\u0026lt;int\u0026gt; sortArray(vector\u0026lt;int\u0026gt;\u0026amp; nums) { return quickSort(nums); } // 冒泡排序(超时) vector\u0026lt;int\u0026gt; bubbleSort(vector\u0026lt;int\u0026gt;\u0026amp; nums) { int n = nums.size(); for (int i = 0; i \u0026lt; n; ++i) { for (int j = n-2; j \u0026gt;= i; --j) { if (nums[j] \u0026gt; nums[j+1]) { swap(nums[j], nums[j+1]); } } } return nums; } // 选择排序(超时) vector\u0026lt;int\u0026gt; selectSort(vector\u0026lt;int\u0026gt;\u0026amp; nums) { int n = nums.size(); for (int i = 0; i \u0026lt; n; ++i) { int idx = i; for (int j = i; j \u0026lt; n; ++j) { if (nums[j] \u0026lt; nums[idx]) { idx = j; } } swap(nums[i], nums[idx]); } return nums; } // 插入排序(超时) vector\u0026lt;int\u0026gt; insertSort(vector\u0026lt;int\u0026gt;\u0026amp; nums) { int n = nums.size(); for (int i = 0; i \u0026lt; n; ++i) { for (int j = i; j \u0026gt; 0 \u0026amp;\u0026amp; nums[j] \u0026lt; nums[j-1]; --j) { swap(nums[j], nums[j-1]); } } return nums; } // 快速排序(24 ms) void qSort(vector\u0026lt;int\u0026gt;\u0026amp; nums, int l, int r) { if (l \u0026gt;= r) return; int m = l; for (int i = l; i \u0026lt; r; ++i) { if (nums[i] \u0026lt; nums[r]) { swap(nums[m++], nums[i]); } } swap(nums[m], nums[r]); qSort(nums, l, m-1); qSort(nums, m+1, r); } vector\u0026lt;int\u0026gt; quickSort(vector\u0026lt;int\u0026gt;\u0026amp; nums) { int n = nums.size(); qSort(nums, 0, n-1); return nums; } // 归并排序(192 ms) vector\u0026lt;int\u0026gt; mSort(vector\u0026lt;int\u0026gt;\u0026amp; nums, int l, int r) { if (l \u0026gt;= r) return {nums[l]}; int m = l+(r-l)/2; vector\u0026lt;int\u0026gt; lnums = mSort(nums, l, m); vector\u0026lt;int\u0026gt; rnums = mSort(nums, m+1, r); vector\u0026lt;int\u0026gt; res; int i = 0, j = 0; while (i \u0026lt;= m-l \u0026amp;\u0026amp; j \u0026lt;= r-m-1) { if (lnums[i] \u0026lt; rnums[j]) { res.push_back(lnums[i++]); } else { res.push_back(rnums[j++]); } } while (i \u0026lt;= m-l) { res.push_back(lnums[i++]); } while (j \u0026lt;= r-m-1) { res.push_back(rnums[j++]); } return res; } vector\u0026lt;int\u0026gt; mergeSort(vector\u0026lt;int\u0026gt;\u0026amp; nums) { int n = nums.size(); nums = mSort(nums, 0, n-1); return nums; } // 归并排序 + 非递归(80 ms) vector\u0026lt;int\u0026gt; mergeSortNR(vector\u0026lt;int\u0026gt;\u0026amp; nums) { int n = nums.size(); for (int len = 1; len \u0026lt; n; len \u0026lt;\u0026lt;= 1) { for (int l = 0; l \u0026lt; n-len; l += 2*len) { int m = l+len-1; int r = min(n-1, l+2*len-1); vector\u0026lt;int\u0026gt; res; int i = l, j = m+1; while (i \u0026lt;= m \u0026amp;\u0026amp; j \u0026lt;= r) { if (nums[i] \u0026lt; nums[j]) { res.push_back(nums[i++]); } else { res.push_back(nums[j++]); } } while (i \u0026lt;= m) { res.push_back(nums[i++]); } while (j \u0026lt;= r) { res.push_back(nums[j++]); } for (int i = l; i \u0026lt;= r; ++i) { nums[i] = res[i-l]; } } } return nums; } // 希尔排序(40 ms) vector\u0026lt;int\u0026gt; shellSort(vector\u0026lt;int\u0026gt;\u0026amp; nums) { int n = nums.size(); for (int gap = n/2; gap \u0026gt; 0; gap /= 2) { for (int i = gap; i \u0026lt; n; ++i) { for (int j = i; j-gap \u0026gt;= 0 \u0026amp;\u0026amp; nums[j-gap] \u0026gt; nums[j]; j -= gap) { swap(nums[j-gap], nums[j]); } } } return nums; } // 计数排序(32 ms) vector\u0026lt;int\u0026gt; countSort(vector\u0026lt;int\u0026gt;\u0026amp; nums) { int n = nums.size(); if (!n) return {}; int minv = *min_element(nums.begin(), nums.end()); int maxv = *max_element(nums.begin(), nums.end()); int m = maxv-minv+1; vector\u0026lt;int\u0026gt; count(m, 0); for (int i = 0; i \u0026lt; n; ++i) { count[nums[i]-minv]++; } vector\u0026lt;int\u0026gt; res; for (int i = 0; i \u0026lt; m; ++i) { for (int j = 0; j \u0026lt; count[i]; ++j) { res.push_back(i+minv); } } return res; } // 基数排序(不适用于负数) vector\u0026lt;int\u0026gt; radixSort(vector\u0026lt;int\u0026gt;\u0026amp; nums) { int n = nums.size(); int maxv = *max_element(nums.begin(), nums.end()); int maxd = 0; while (maxv \u0026gt; 0) { maxv /= 10; maxd++; } vector\u0026lt;int\u0026gt; count(10, 0), rank(n, 0); int base = 1; while (maxd \u0026gt; 0) { count.assign(10, 0); for (int i = 0; i \u0026lt; n; ++i) { count[(nums[i]/base)%10]++; } for (int i = 1; i \u0026lt; 10; ++i) { count[i] += count[i-1]; } for (int i = n-1; i \u0026gt;= 0; --i) { rank[--count[(nums[i]/base)%10]] = nums[i]; } for (int i = 0; i \u0026lt; n; ++i) { nums[i] = rank[i]; } maxd--; base *= 10; } return nums; } // 桶排序 (20 ms) vector\u0026lt;int\u0026gt; bucketSort(vector\u0026lt;int\u0026gt;\u0026amp; nums) { int n = nums.size(); int maxv = *max_element(nums.begin(), nums.end()); int minv = *min_element(nums.begin(), nums.end()); int bs = 1000; int m = (maxv-minv)/bs+1; vector\u0026lt;vector\u0026lt;int\u0026gt; \u0026gt; bucket(m); for (int i = 0; i \u0026lt; n; ++i) { bucket[(nums[i]-minv)/bs].push_back(nums[i]); } int idx = 0; for (int i = 0; i \u0026lt; m; ++i) { int sz = bucket[i].size(); bucket[i] = quickSort(bucket[i]); for (int j = 0; j \u0026lt; sz; ++j) { nums[idx++] = bucket[i][j]; } } return nums; } // 堆排序(32 ms) void adjust(vector\u0026lt;int\u0026gt;\u0026amp; nums, int p, int s) { while (2*p+1 \u0026lt; s) { int c1 = 2*p+1; int c2 = 2*p+2; int c = (c2\u0026lt;s \u0026amp;\u0026amp; nums[c2]\u0026gt;nums[c1]) ? c2 : c1; if (nums[c] \u0026gt; nums[p]) swap(nums[c], nums[p]); else break; p = c; } } vector\u0026lt;int\u0026gt; heapSort(vector\u0026lt;int\u0026gt;\u0026amp; nums) { int n = nums.size(); for (int i = n/2-1; i \u0026gt;= 0; --i) { adjust(nums, i, n); } for (int i = n-1; i \u0026gt; 0; --i) { swap(nums[0], nums[i]); adjust(nums, 0, i); } return nums; } }; ","date":1590756417,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1590756417,"objectID":"82fdf8761ba894ffb42fe5a0bf8c1415","permalink":"http://www.x-lab.info/post/sort-algorithm/","publishdate":"2020-05-29T20:46:57+08:00","relpermalink":"/post/sort-algorithm/","section":"post","summary":"本文整理并总结了十大经典的排序算法(冒泡排序、选择排序、插入排序、快速排序、归并排序、希尔排序、计数排序、基数排序、桶排序、堆排序)的时间复杂度、空间复杂度等性质。","tags":["algorithm"],"title":"十大经典排序算法整理汇总","type":"post"},{"authors":["X-Lab","Ichiro Fujinaga"],"categories":null,"content":"","date":1590624000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1590624000,"objectID":"e31703099c0381bd75e99f39450b5968","permalink":"http://www.x-lab.info/paperdemo/harmalysis/","publishdate":"2020-05-28T00:00:00Z","relpermalink":"/paperdemo/harmalysis/","section":"paperDemo","summary":"A grammar for encoding roman numeral analysis annotations within the lyrics of a symbolic music representation.","tags":["Demo"],"title":"Harmalysis: A Language for the Annotation of Roman Numerals in Symbolic Music Representations","type":"paperDemo"},{"authors":["X-Lab","Yuval Adler"],"categories":null,"content":"","date":1588550400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1588550400,"objectID":"684ccc36001736d2dba4676c967b469b","permalink":"http://www.x-lab.info/paperdemo/doremyth/","publishdate":"2020-05-04T00:00:00Z","relpermalink":"/paperdemo/doremyth/","section":"paperDemo","summary":"Do-Re-Myth is an ear training game developed by Yuval Adler and Néstor Nápoles López, funded through a CIRMMT Student Award in 2019.","tags":["Demo"],"title":"Do-Re-Myth: An Ear Training Game","type":"paperDemo"},{"authors":["X-Lab","Claire Arthur","Ichiro Fujinaga"],"categories":null,"content":"","date":1573257600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1573257600,"objectID":"e8e5598f911738a6cd54311dfa7bbc51","permalink":"http://www.x-lab.info/paperdemo/keydetection19/","publishdate":"2019-09-09T00:00:00Z","relpermalink":"/paperdemo/keydetection19/","section":"paperDemo","summary":"A new key detection algorithm that works in the symbolic and audio domain, furthermore, it is able to output local and global keys.","tags":["Demo"],"title":"Key-Finding Based on a Hidden Markov Model and Key Profiles","type":"paperDemo"},{"authors":["X-Lab","Gabriel Vigliensoni","Ichiro Fujinaga"],"categories":null,"content":"","date":1559174400,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1559174400,"objectID":"e5b0974549898c0c4e028450fcac18c2","permalink":"http://www.x-lab.info/paperdemo/effects_of_translation/","publishdate":"2019-05-30T00:00:00Z","relpermalink":"/paperdemo/effects_of_translation/","section":"paperDemo","summary":"What happens when you translate between different symbolic music formats?","tags":["Demo"],"title":"The Effects of Translation Between Symbolic Music Formats: A Case Study with Humdrum, Lilypond, MEI, and MusicXML","type":"paperDemo"},{"authors":["X-Lab","Ichiro Fujinaga"],"categories":null,"content":"","date":1555200000,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1555200000,"objectID":"2fa1bdca8382ea97056b7fc4f224ead7","permalink":"http://www.x-lab.info/paperdemo/musical_tictactoe/","publishdate":"2019-04-14T00:00:00Z","relpermalink":"/paperdemo/musical_tictactoe/","section":"paperDemo","summary":"A music-based game mechanic based where players compete to complete cadences.","tags":["Demo"],"title":"Musical Tic-Tac-Toe","type":"paperDemo"},{"authors":["X-Lab","Ichiro Fujinaga"],"categories":null,"content":"The video looks promising, where is the code? Although the intention of dandelot is to be available for free for anyone to play, some of the assets used for developing the game are proprietary. For the time being, the code is not available online.\nIf you really want to play it, drop an email and I will send you a compiled version of the game. If you want the code to extend it or fork it into your own, we can talk about that.\n","date":1555113600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1555113600,"objectID":"82b9cedff78495f295fc1ea26be43567","permalink":"http://www.x-lab.info/paperdemo/dandelot/","publishdate":"2017-01-01T00:00:00Z","relpermalink":"/paperdemo/dandelot/","section":"paperDemo","summary":"Dandelot is a computer game that trains your skills for reading music in the treble, bass, and alto clefs.","tags":["Demo"],"title":"Dandelot - Reading Music as a Game","type":"paperDemo"},{"authors":[],"categories":[],"content":"Create slides in Markdown with Academic Academic | Documentation\n Features Efficiently write slides in Markdown 3-in-1: Create, Present, and Publish your slides Supports speaker notes Mobile friendly slides Controls Next: Right Arrow or Space Previous: Left Arrow Start: Home Finish: End Overview: Esc Speaker notes: S Fullscreen: F Zoom: Alt + Click PDF Export: E Code Highlighting Inline code: variable\nCode block:\nporridge = \u0026quot;blueberry\u0026quot; if porridge == \u0026quot;blueberry\u0026quot;: print(\u0026quot;Eating...\u0026quot;) Math In-line math: $x + y = z$\nBlock math:\n$$ f\\left( x \\right) = ;\\frac{{2\\left( {x + 4} \\right)\\left( {x - 4} \\right)}}{{\\left( {x + 4} \\right)\\left( {x + 1} \\right)}} $$\n Fragments Make content appear incrementally\n{{% fragment %}} One {{% /fragment %}} {{% fragment %}} **Two** {{% /fragment %}} {{% fragment %}} Three {{% /fragment %}} Press Space to play!\nOne Two Three \n A fragment can accept two optional parameters:\n class: use a custom style (requires definition in custom CSS) weight: sets the order in which a fragment appears Speaker Notes Add speaker notes to your presentation\n{{% speaker_note %}} - Only the speaker can read these notes - Press `S` key to view {{% /speaker_note %}} Press the S key to view the speaker notes!\n Only the speaker can read these notes Press S key to view Themes black: Black background, white text, blue links (default) white: White background, black text, blue links league: Gray background, white text, blue links beige: Beige background, dark text, brown links sky: Blue background, thin dark text, blue links night: Black background, thick white text, orange links serif: Cappuccino background, gray text, brown links simple: White background, black text, blue links solarized: Cream-colored background, dark green text, blue links Custom Slide Customize the slide style and background\n{{\u0026lt; slide background-image=\u0026quot;/img/boards.jpg\u0026quot; \u0026gt;}} {{\u0026lt; slide background-color=\u0026quot;#0000FF\u0026quot; \u0026gt;}} {{\u0026lt; slide class=\u0026quot;my-style\u0026quot; \u0026gt;}} Custom CSS Example Let\u0026rsquo;s make headers navy colored.\nCreate assets/css/reveal_custom.css with:\n.reveal section h1, .reveal section h2, .reveal section h3 { color: navy; } Questions? Ask\n Documentation\n","date":1549324800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1549324800,"objectID":"0e6de1a61aa83269ff13324f3167c1a9","permalink":"http://www.x-lab.info/slides/example/","publishdate":"2019-02-05T00:00:00Z","relpermalink":"/slides/example/","section":"slides","summary":"An introduction to using Academic's Slides feature.","tags":[],"title":"Slides","type":"slides"},{"authors":null,"categories":null,"content":"This is a report for my final project of the MUMT 618: Computational Modeling of Musical Acoustic Systems class at McGill University.\nI will describe my experience implementing a digital model of distortion that has been presented in the paper titled \u0026ldquo;Simplified, physically-informed models of distortion and overdrive guitar effects pedals\u0026rdquo;, presented in 2007 by David Yeh, Jonathan Abel, and Julius Smith at the DAFx'07 Conference.\nAlthough this paper describes two models:\n Boss DS-1, a distortion pedal Ibanez TS-9, an overdrive pedal I have only implemented the model of the Boss DS-1 distortion pedal. The implementation provided has been done in MATLAB and does not opertate in real-time, however, a real-time implementation should not be difficult to derivate from the given code. I also provide a few audio examples of the audio effect. As of my knowledge, there are no existing audio examples or code for this model previous to this write-up, therefore, I consider it is a valuable contribution for anyone following the ideas of this paper for reproducing or improving the model.\nOverview A high-level overview can be seen in the following diagram from the paper\n Overview of the Boss DS-1 model, obtained from Yeh et al. (2007) It is possible that all of these stages may have an audible effect in the output produced by the physical pedal, however, the model only provides a continuous-time transfer function for the Gain + filter and the Saturating nonlin stages, therefore, this implementation concentrates in these two stages only.\nThe diagrams presented in the paper are excerpts of the circuit, which are sometimes difficult to follow, therefore, as an additional resource, it was very helpful to consult this article from ElectroSmash. In this document, a full view of the schematic is displayed with the different stages labeled.\n Schematic of the Boss DS-1, obtained from ElectroSmash.com The Gain + filter stage in the paper\u0026rsquo;s diagram corresponds to the Transistor Booster stage of the schematic, its main component is a bipolar junction transistor. The Saturating nonlin stage of the paper\u0026rsquo;s diagram corresponds roughly to the Op-Amp Gain Stage. From now on, I will refer to the names of the schematic as I find them more intuitive.\nTransistor Booster Stage This stage corresponds to a single bipolar junction transistor, the continuous-time transfer function provided in the paper is the following:\n$$ H(s) = \\frac{s^{2}}{(s + \\omega_1) (s + \\omega_2)} $$\nwhere $ \\omega_1 = 2\\pi3 $ and $ \\omega_2 = 2\\pi600 $\nOp-Amp Gain Stage This stage corresponds to the main nonlinearity of the circuit, according to the paper. One parameter is provided in this stage to control the amount of distortion that the audio effect will output. The continuous-time transfer function is defined as following:\n$$ H(s) = \\frac{(s + \\frac{1}{R_t C_c}) (s + \\frac{1}{R_b C_z}) + \\frac{s}{R_b C_c}}{(s + \\frac{1}{R_t C_c})(s + \\frac{1}{R_b C_z})} $$\nwhere $$R_t = 100 000 D $$ $$R_b = (1-D)100 000 + 4700$$ $$C_z = 0.000 001$$ $$C_c = 0.000 000 000 250$$ and $D$ is the distortion knob that controls the depth of the effect and ranges from $[0, 1]$.\nAs one may guess, these continuous-time transfer functions require discretization in order to be implemented in a digital system. In order to discretize them, Yeh et al. propose the use of the bilinear transform. In the paper\u0026mdash;as well as in David Yeh\u0026rsquo;s PhD dissertation\u0026mdash;a list of (very useful) templates has been included, which helps in the process of discretizing the two continuous-time transfer functions used in this model. The relevant templates for this implementation are the templates corresponding to second-order filters.\nBilinear Transform In order to discretize a continuous-time transfer function, first, we should put the continuous-time transfer function in the following form $$ H(s) = \\frac{b_2 s^2 + b_1 s + b_0}{a_2 s^2 + a_1 s + a_0} $$\nOnce we compute the corresponding coefficients, they can be placed in a discrete-time transfer function of the form\n$$ H(z) = \\frac{B_0 + B_1 z^{-1} + B_2 z^{-2}}{A_0 + A_1 z^{-1} + A_2 z^{-2}} $$\nThe discrete-time coefficients of this transfer function can be obtained from the following equations $$ B_0 = b_0 + b_1 c = b_2 c^2 $$ $$ B_1 = 2b_0 - 2b_2 c^2 $$ $$ B_2 = b_0 - b_1 c = b_2 c^2 $$ $$ A_0 = a_0 + a_1 c = a_2 c^2 $$ $$ A_1 = 2a_0 - 2a_2 c^2 $$ $$ A_2 = a_0 - a_1 c = a_2 c^2 $$\nAfter plugging the coefficients into the discrete-time transfer function, we should be able to implement the resulting transfer function as a digital filter.\nImplementation of the Transistor Booster Stage Using the steps described above, I now describe the implementation of the Transistor Booster Stage part of the model.\nThe first step would be to put the given continuous-time transfer function in the form of the bilinear transform template $$ H(s) = \\frac{s^2}{s^2 + (\\omega_1 + \\omega_2)s + \\omega_1 \\omega_2} $$ From here, the continuous-time coefficients can be easily extracted $$ b_2 = 1 $$ $$ b_1 = 0 $$ $$ b_0 = 0 $$ $$ a_2 = 1 $$ $$ a_1 = \\omega_1 + \\omega_2 = 2\\pi 3 + 2\\pi 600 = 1206\\pi $$ $$ a_0 = \\omega_1 \\omega_2 = (2\\pi 3)(2 \\pi 600) = 7200\\pi^2 $$\nWorking the templates for the discrete-time coefficients results in the following $$ B_0 = 4fs^2 $$ $$ B_1 = -8fs^2 $$ $$ B_2 = 4fs^2 $$ $$ A_0 = 7200\\pi^2 + 2412\\pi fs + 4fs^2 $$ $$ A_1 = 14400\\pi^2 - 8fs^2 $$ $$ A_2 = 7200\\pi^2 - 2412\\pi fs + 4fs^2 $$\nShowing once again the template of the second-order discrete-time transfer function $$ H(z) = \\frac{B_0 + B_1 z^{-1} + B_2 z^{-2}}{A_0 + A_1 z^{-1} + A_2 z^{-2}} $$\nPlugging the values of the coefficients recently found, gives the following equation $$ {\\scriptsize H(z) = \\frac{4fs^2 - 8fs^2 z^{-1} + 4fs^2 z^{-2}}{(7200\\pi^2 + 2412\\pi fs + 4fs^2) +(14400\\pi^2 - 8fs^2) z^{-1} + (7200\\pi^2 - 2412\\pi fs + 4fs^2) z^{-2}}} $$\nAfter dividing by $4$, factorizing $fs$, and doing some algebra to simplify the equation, this can be expressed as: $$ {\\small H(z) = \\frac{1 -2 z^{-1} + z^{-2}}{(1800 \\Omega^2 + 603 \\Omega + 1) + (3600 \\Omega^2 - 2) z^{-1} + (1800\\Omega^2 - 603\\Omega + 1) z^{-2}} } $$\nwith $\\Omega = \\frac{\\pi}{fs}$\nThe implementation of this discrete-time transfer function results in a filter with the following magnitude response:\n Magnitude response of the implemented Transistor Booster Stage (uncorrected) By inspecting the original magnitude response shown in the paper, it can be concluded that the implemented filter should output above $30dB$ of gain in its bandpass.\n Magnitude response of the Transistor Booster Stage shown at Yeh et al. (2007) Luckily, in the corresponding section of this stage, the paper mentions that the expected gain in the bandpass is, in fact, $36dB$. Using this information, an additional gain, $g$, is included in the discrete-time transfer function:\n$$ {\\small H(z) = \\frac{g(1 -2 z^{-1} + z^{-2})}{(1800 \\Omega^2 + 603 \\Omega + 1) + (3600 \\Omega^2 - 2) z^{-1} + (1800\\Omega^2 - 603\\Omega + 1) z^{-2}} } $$\nwhere the equation, $36dB = \\log_{10}(g) * 20$, can be used to obtain the value of $g$\n$$ g = 10^{\\frac{36}{20}} = 63.0957 $$\nThe resulting magnitude response resembles much more the magnitude response shown in the paper\n Magnitude response of the implemented Transistor Booster Stage (corrected) This filter\u0026mdash;including its correction\u0026mdash;can be implemented with the following MATLAB function:\n% Transistor Booster Stage % Implementation by Nestor Napoles Lopez % based on the paper by Yeh et al. (2007) function y = bjtfilt(x, fs) % After working the math, I put all the discrete-time % coefficients in terms of this variable coeff coeff = pi/fs; B0 = 1; B1 = -2; B2 = 1; A0 = 1800.*coeff.^2 + 603.*coeff + 1; A1 = 3600.*coeff.^2 - 2; A2 = 1800.*coeff.^2 - 603.*coeff + 1; % We obtain the gain from % 36dB = log10(x) * 20 amp = 10.^(36/20); B = amp .* [B0, B1, B2]; A = [A0, A1, A2]; y = filter(B, A, x); end Implementation of the Op-Amp Gain Stage Just as done during the Transistor Booster Stage, the implementation of the Op-Amp Gain Stage starts from a given continuous-time transfer function $$ H(s) = \\frac{(s + \\frac{1}{R_t C_c}) (s + \\frac{1}{R_b C_z}) + \\frac{s}{R_b C_c}}{(s + \\frac{1}{R_t C_c})(s + \\frac{1}{R_b C_z})} $$\nPutting this transfer function in the form of the bilinear transform template $$ H(s) = \\frac{s^2 + (\\frac{1}{R_b C_z} + \\frac{1}{R_t C_c} + \\frac{1}{R_b C_c})s + \\frac{1}{R_t C_c R_b C_z}}{s^2 + (\\frac{1}{R_b C_z} + \\frac{1}{R_t C_c})s + \\frac{1}{R_t C_c R_b C_z}} $$\nThe continous-time coefficients can be obtained $$ b_2 = 1 $$ $$ b_1 = \\frac{1}{R_b C_z} + \\frac{1}{R_t C_c} + \\frac{1}{R_b C_c} $$ $$ b_0 = \\frac{1}{R_t C_c R_b C_z} $$ $$ a_2 = 1 $$ $$ a_1 = \\frac{1}{R_b C_z} + \\frac{1}{R_t C_c} $$ $$ a_0 = \\frac{1}{R_t C_c R_b C_z} $$\nSome of these coefficients are equivalent (e.g., $a_0 = b_0$), therefore, they can be summarized in the following coefficients: $$ ab_2 = 1 $$ $$ a_1 = \\frac{1}{R_b C_z} + \\frac{1}{R_t C_c} $$ $$ b_1 = a_1 + \\frac{1}{R_b C_c} $$ $$ ab_0 = \\frac{1}{R_t C_c R_b C_z} $$\nThe next step is to obtain the discrete-time coefficients, these can be expressed in terms of the simplified list of continuous-time coefficients presented above: $$ B_0 = ab_0 + b_1 c + c^2 $$ $$ B_1 = 2ab_0 - 2c^2 $$ $$ B_2 = ab_0 - b_1 c + c^2 $$ $$ A_0 = ab_0 + a_1 c + c^2 $$ $$ A_1 = 2ab_0 - 2c^2 $$ $$ A_2 = ab_0 - a_1 c + c^2 $$\nIn this case, the resulting magnitude response\n Magnitude response of the implemented Op-Amp Gain Stage is quite similar to the magnitude response shown in the paper\n Magnitude response of the Op-Amp Gain Stage shown at Yeh et al. (2007) The different colors of the first plot represent the magnitude response with values of $D$ going from $0.1$ to $1.0$. This is the MATLAB function that implements this filter:\n% Op-Amp Gain Stage % Implementation by Nestor Napoles Lopez % based on the paper by Yeh et al. (2007) function y = opampfilt(x, fs, DIST) % Resistors and capacitors from the model Rt = 100000 * DIST; Rb = 100000*(1-DIST) + 4700; Cz = 0.000001; Cc = 0.000000000250; % Constant for the bilinear transform c = 2*fs; % Continuous-time coefficients (reduced) ab0 = 1 / (Rt*Cc*Rb*Cz); a1 = 1/(Rb*Cz) + 1/(Rt*Cc); b1 = a1 + 1/(Rb*Cc); % Discrete-time coefficients B0 = ab0 + b1*c + c.^2; B1 = 2*ab0 - 2*c.^2; B2 = ab0 - b1*c + c.^2; A0 = ab0 + a1*c + c.^2; A1 = B1; A2 = ab0 - a1*c + c.^2; B = [B0, B1, B2]; A = [A0, A1, A2]; y = filter(B, A, x); end Diode-Clipper At the end of the Op-Amp Gain Stage, there is an additional step that simulates the diode that clips the samples exceeding a gain threshold, in the case of the digital implementation, that threshold consists of $abs(x[n]) \\geq 1.0$. The diode-clipper has been implemented using one of the proposed methods in the paper:\n$$ \\text{clipper}(x) = \\frac{x}{(1 + |x|^n)^{1/n}} $$\nwith $n = 2.5$\nThe MATLAB code for the clipping function is the following:\n% Diode clipper % Implementation by Nestor Napoles Lopez, December 2018 % based on the paper by Yeh et al. (2007) function x = diodeclip(x) n = 2.5; for i=1:length(x) x(i) = x(i) / (1 + abs(x(i)).^n).^(1/n); end end As a final step, I provide a script that cascades the two stages of the models to process an input audio example:\n% DS-1, main script % Implementation by Nestor Napoles Lopez, December 2018 % based on the paper by Yeh et al. (2007) % Sample audio [x, fs] = audioread('guitar_clean.wav'); % Bipolar Junction Transistor Stage y = bjtfilt(x, fs); % Op-amp Gain Stage D = 1; % D lies between [0, 1] y = opampfilt(y, fs, D); % Diode clipper y = diodeclip(y); s = audioplayer(y, fs); play(s); Here is an example of the model applied to an audio sample of a clean electric guitar1:\nOriginal audio $ $\nTransistor Booster Stage only $ $\nOp-Amp Gain Stage only $ $\nTransistor Booster Stage and Op-Amp Gain Stage $ $\n This audio sample has been obtained from FreeSound. \u0026#x21a9;\u0026#xfe0e;\n ","date":1544313600,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1544313600,"objectID":"069767edc8d088185385f8afd1c31fbd","permalink":"http://www.x-lab.info/docs/mumt618/","publishdate":"2018-12-09T00:00:00Z","relpermalink":"/docs/mumt618/","section":"docs","summary":"This is a report for my final project of the MUMT 618: Computational Modeling of Musical Acoustic Systems class at McGill University.\nI will describe my experience implementing a digital model of distortion that has been presented in the paper titled \u0026ldquo;Simplified, physically-informed models of distortion and overdrive guitar effects pedals\u0026rdquo;, presented in 2007 by David Yeh, Jonathan Abel, and Julius Smith at the DAFx'07 Conference.","tags":null,"title":"Implementing a digital model of the Boss DS-1 distortion pedal","type":"docs"},{"authors":["X-Lab","Gabriel Vigliensoni","Ichiro Fujinaga"],"categories":null,"content":"","date":1538092800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":1538092800,"objectID":"9bb61363447ed51e239538a24d126bf0","permalink":"http://www.x-lab.info/paperdemo/encoding_matters/","publishdate":"2018-09-28T00:00:00Z","relpermalink":"/paperdemo/encoding_matters/","section":"paperDemo","summary":"Examples of encoding discrepancies that have been introduced either during the encoding of the symbolic music files or during the translation of the original file into other symbolic formats.","tags":["Demo"],"title":"Encoding Matters","type":"paperDemo"},{"authors":null,"categories":null,"content":"Representative Journal Papers Partitioning big graph with respect to arbitrary proportions in a streaming manner, Future Generation Computer Systems, 2018, 80(3): 1-11. A Reliability Analysis for Successful Execution of Parallel DAG Tasks, Journal of Information Science and Engineering, 2017, 33(1): 81-99. Schedulability Analysis and Symbolic Verification Method for Heterogeneous Multicore Real-time Systems, International Journal of Performability Engineering, 2017, 13(6): 785-795. Energy Consumption Analysis Satisfying Time-Energy-Probability Constraints for Modern DVFS Microprocessor, IETE Technical Review, 2015, 32(4): 260-272. Security-aware Intermediate Data Placement Strategy in Scientific Cloud Workflows, Knowledge and Information Systems, 2014, 41(2): 423-447. Using Priced Timed Automaton to Analyze the Energy Consumption in Cloud Computing Environment, Cluster Computing, 2014, 17(4): 1295-1307. A Novel Scalability Metric About Iso-area of Performance for Parallel Computing, The Journal of Supercomputing, 2014, 68(2): 652-671. Adaptive Energy-efficient Scheduling Algorithm for Parallel Tasks on Homogeneous Clusters, Journal of Network and Computer Applications, 2014, 41: 101–113. Time-Efficient Protocols for Neighbor Discovery in Wireless Ad Hoc Networks, IEEE Transactions on Vehicular Technology, 2013, 62(6): 2780-2791. A Bayesian Network Based Knowledge Engineering Framework for IT Service Management, IEEE Transactions on Services Computing, 2013, 6(1): 76-88. Cloud-DLS: Dynamic Trusted Scheduling for Cloud Computing, Expert System with Applications, 2012, 39(3): 2321-2329. Towards Reliable Self-Clustering Mobile Ad Hoc Networks, Computers and Electrical Engineering, 2012, 38(3): 551-562. Bayesian Intelligent Semantic Mashup for Tourism, Concurrency and Computation: Practice and Experience, 2011, 17(23): 850–862. Adaptive Bare Bones Particle Swarm Inspired by Cloud Model, IEICE Transactions on Information and Systems, 2011, E94.D(8): 1527-1538. Using Evidence Based Content Trust Model for Spam Detection, Expert System with Applications, 2010, 37 (8): 5599-5606. Bayesian Cognitive Trust Model Based Self-Clustering Algorithm for MANETs, Science in China: Series F Information Sciences, 2010, 53(3): 494-505. An Evidence Based Iterative Content Trust Algorithm for the Credibility of Online News, Concurrency and Computation: Practice and Experience, 2009, 15(21), 1857-1881. Trusted Dynamic Level Scheduling Based on Bayes Trust Model. Science in China: Series F Information Sciences, 2007, 50(3): 456-469. Reg:一种最大化内存共享与最小化运行时环境的超轻量级容器, 计算机研究与发展, 2019. 一种面向云构软件的云操作系统, 计算机科学, 2017, 44(11): 33-40. 高效可证明安全的基于属性的在线/离线加密机制, 通信学报, 2014, 35(7): 104-112. 绿色评价模型的互模拟等价及逻辑保持, 计算机学报, 2013, 36(5): 967-976. 同构DVS集群中基于自适应阈值的并行任务节能调度算法, 计算机学报, 2013, 36(2): 393-407. 基于内存操作的动态软件水印算法, 通信学报, 2013, 34(2): 128-137. 一种基于线程关系的软件水印算法, 电子学报, 2012, 40(5): 891-896. 基于软件水印的软件服务保护安全协议, 通信学报, 2012, 33(z2): 176-181. 随机任务在云计算平台中能耗的优化管理方法, 软件学报, 2012, 23(2): 266-278. 基于模型检测的时间空间性能验证方法, 计算机学报, 2010, 33(9): 1621-1633. 基于Bayes认知信任模型的MANETs自聚集算法, 中国科学E辑, 2010, 40(2): 228-239. P2P网络中防止欺骗行为的一种信任度计算方法, 通信学报, 2008, 29(10): 215-222. 一种基于Bayes信任模型的可信动态级调度算法, 中国科学E辑, 2007, 37(2): 285-296. 构造基于信任机制的自组织资源拓扑, 计算机研究与发展, 2007, 44(11): 1849-1856. 一种基于信任机制的协作系统形成与演化机制, 通信学报, 2007, 27(11): 31-35. Representative Conference Papers Topic Crawler for OpenStack QA Knowledge Base, International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery (CyberC), IEEE Computer Society, 2017. Towards an Emerging Cloudware Paradigm for Transparent Computing, In Proceedings of the 9th IEEE/ACM International Conference on Utility and Cloud Computing, Shanghai, China, IEEE Computer Society, 2016. Cloudware: An Emerging Software Paradigm for Cloud Computing, In Proceedings of the Internetware 2016, Beijing, China, September 18, 2016, pp1-10. Towards Cloudware Paradigm for Cloud Computing, The 9th IEEE International Conference on Cloud Computing, 2016, San Francisco, USA, June 27 - July 2, 2016, pp164-171. Reachability Analysis of Cost-Reward Timed Automata for Energy Efficiency Scheduling, The 2014 International Workshop on Programming Models and Applications for Multicores and Manycores (PMAN 2014), in conjunction with PPoPP 2014, Orlando, Florida, USA, February 15-19, 2014. Parallel Time-space Processing Model based Fast N-body Simulation on GPUs,In: Proceedings of the 2013 International Workshop on Programming Models and Applications for Multicores and Manycores (PMAN 2013), in conjunction with PPoPP 2013, Shenzhen, China, February 23, 2013. Large-Scale Multimedia Data Mining Using MapReduce Framework, In: Proceedings of the 4th IEEE International Conference on Cloud Computing Technology and Science (CloudCom 2012), Taipei, Taiwan, December 3-6, 2012. Towards Unified Heterogeneous Event Processing for the Internet of Things, In: Proceedings of the 3rd International Conference on the Internet of Things (IoT2012), Wuxi, China, October 24-26, 2012. A Software Watermarking Algorithm Based on Stack-State Transition Graph, In: Proceeding of the 4th International Conference on Network and System Security, Melbourne, Australia, September 1-3, 2010. An Intelligent Ontology and Bayesian Network based Semantic Mashup for Tourism, In: Proceedings of the 2008 IEEE Congress on Services(SERVICES 2008), Beijing, China, September 23-26, 2008. A Bayesian Knowledge Engineering Framework for Service Management, In: Proceedings of the IEEE/IFIP Network Operations and Management Symposium (NOMS 2008), Salvador, Bahia, Brazil, April 7-11, 2008. A Semantic Reputation Mechanism in P2P Semantic Web, In: Proceedings of the 1st Asian Semantic Web Conference (ASWC 2006), Beijing, China, September 3-7, 2006, Lecture Notes in Computer Science (LNCS), 4185, 682-688. ","date":-62135596800,"expirydate":-62135596800,"kind":"page","lang":"en","lastmod":-62135596800,"objectID":"bd27a240486435b598a317c56758da53","permalink":"http://www.x-lab.info/docs/backup/","publishdate":"0001-01-01T00:00:00Z","relpermalink":"/docs/backup/","section":"docs","summary":"Representative Journal Papers Partitioning big graph with respect to arbitrary proportions in a streaming manner, Future Generation Computer Systems, 2018, 80(3): 1-11. A Reliability Analysis for Successful Execution of Parallel DAG Tasks, Journal of Information Science and Engineering, 2017, 33(1): 81-99.","tags":null,"title":"","type":"docs"}]