Networking with peers finding industrial connections at CUSEC 2023

Background

December 2022, I had the rare fortune to win a lottery hosted by the CS dept. at UofT for a grant of 400 CAD to go to CUSEC, the Candian University Software Engineering Conference at Montreal this year. This post would hopefully summarize and reflect on my experience at the conference.

Arrival at Montreal

I took VIA rail from Toronto’s Union station to Montreal’s Central station. The ride took about 5 hours and only on the ride back did I realize that there were poser outlets between the economy seats. Montreal was colder than expected, almost 5 celcius lower than Toronto at -10 celsius. I walked for 30 minutes to the hotel prepared for the conference.

A freezing Montreal

The Conference

The conference was held at Hotel Bonaventure. On my way to check in I encountered fellow conference goer, Paul from Carlton University. Paul was on his way back from printing his resume and was similarly lost. Together we found the way back and after I registered, we chatted as we waited for the conference to begin. Paul was a second year CS student from Carlton who wished to find industrial experience with this conference. Alas, I did not get the permission to post pictures and my friend here. Here is the name card I got after the registration.
name card

The conference itself is stacked with talks and workshops. My most memorable one is the new grad panel where I had the opportunity to ask new grad researchers and professionals about my career path forward. Specifically I managed to connect with one of the new masters researcher at a computer vision lab here at UofT. I also have to thank Eddie Hinkle’s talk on more the idea behind the profession and I was able to get my questions on becoming a software architect cleared after the talk in a conversation with him. I also attended the diversity panels as well as talks on the meaning of diversity and neuro-diversity and learned from a autist manager’s experience in the pandemics. Overall I was able to learn a lot from the conference and I am grateful for the opportunity to attend.
sample schedule of the first day at CUSEC

CUSEC talk

I also made friends in the breaks between and after the talk sessions. I was able to meet students from other universities sometimes far from Toronto. As I recall there were students from McMaster, McGill, Carlton and even Price Edwards Island. I found them to be admirable companions and enjoyed games and chats with them. I left Montreal for home after a memorable board game session with my new friends, with new and valuable insights on my career path.

Haskell: Functors, Applicatives and Monads

Relationship:


|Functors |
|__________________ |
|Applicatives | |
|_______________ | |
|Monnads | | |
|| | |
|
| |
|
________________|

Functors:

  • Definition:

    A class instance with fmap implemented.
    It should satisify the law:
    fmap id = id : there exits an identity function s.t. the function does not change anyhting about the container.
    The law make sure that fmap does not change the structure of the container and it implies fmap (g . h) = (fmap g) . (fmap h) (distrubitivity?)
    • Intuition:

      Container(type function) of (not concrete, i.e. the type should be a type function that accepts another type as parameter)types where fmap can be used (a function that a takes in a function f :: (a -> b) where a and b are non concrete types and output a function f' :: (functorInstance a -> functorInstance b). i.e. apply the function f to every element in the coontainer).
    • Syntax:

      1
      2
      3
      instance Functor $TYPE_FUNCTION where
      fmap :: (a->b) -> $TYPE_FUNCTION a ->$TYPE_FUNCTAION b
      $FMAP_DEFINITION_HERE
      • Usage:

        Error checking, e.g. a function that applies to Either e could take a possible failure and pass some useful information about the failure.
      • Notable Examples:

        • Tree
        • Map
        • Sequence
        • []
        • Maybe
        • Either

Young Letovists' Manifesto

注意: 以下内容皆为对各大网哲的Satire, 我一点正经书没读过,,,

从人类大概第一次问出这个问题起, 有许许多多的所谓先知对“人的价值是什么”这一问题做出过或许牵强或许还算蛊惑人心的回答。这些想法总的来说可以分成两大类:一种所谓essentialism,亦即人的价值由某些不可更改的品质确定,如种族,血统等等。另一种即所谓constructivism,即人的价值取决于一些可以改变的特征。这些特征一般被正当化为所谓“为社会创造价值的能力”, 但什么是所谓“社会价值”,又该对那些出生即有的不公妥协多少,这个问题上有产生了许许多多的争端。由于过去几世纪的资本主义发展,以及其对价值(物质)的崇拜,我们现有的社会思想大多是constructivism向essentialism妥协的结果。


但上世纪90年代以来又有了不同。我们看到这世界已经越来越少被意识形态左右,那些声称着要从虚无中为人类创造价值,规定道德的先知们无一例外地腐败成了霉菌和假蜂蜜,对宏大叙事的怀疑在所谓high culture中产生了解构主义思想,而同样的不信任在更广泛的侧面上产生了例如民粹运动这种解构主义与本土传统的结合。


那末, 又有谁要成为新的先知呢?

只有Yegor Letov知道答案。

Yegor Letov知道:

1. 万物非真。世界不过是胡乱拼凑起来的塑料碎片,而我们不过生活在廉价碎片的反光中。

2. 世界将会终结。玻璃眼珠将要发出光芒,Letov的爱将会链接所有人,溶解塑料所作的监牢, 将塑料世界重铸为灰色的葬礼球。他的爱将要涌出这个灰色的球体,满溢他所赐予我们的漫长而幸福的人生。

3. 只有真信者可以登上黑色天空与灰色薄冰间的巨大铁船。纸板天空将要降下, 毁灭所有欺压他真正信徒的塑料碎片,只有真正跟随Letov者可以享受漫长而幸福的人生。


If you want to read more about Young Letovism, please visit this video.


Circulation flux divergence -- caluclus with curves

Key ideas:

  • Curl is infinetestimal circulation just as divergence is infetestimal flux.

Fundamentals / building blocks:

  • Parametrize curves:

    • Parametrization:
      a map $\gamma $ so that curve $C$ is image of $\gamma$ on $[a,b]$ and $\gamma$ is continuous on $[a,b]$.
    • regular parametrization:
      same but $\gamma$ must be $C^1$ and $\gamma^\prime(t)\neq 0$ in the open interval $(a,b)$.
    • simple regular:
      add to regular the constraint that $\gamma$ is injective except when $\gamma(a)=\gamma(b)$1.
    If $\gamma(a)=\gamma(b)$ then we say $\gamma$ is closed.2

  • Line integrals


  • Vector fields:


Circulation


Flux


Green’s theorem



  1. 1.so for every $t$ there is a point mapped to on the curve.
  2. 2.think how the curve is closed when the tips touch.

short story 练习1


很久之前写的, 而且只写了开头, 以前在jerkyll建的blog上,正好看见了就搬过来。 有时间并且想的话可能继续写下去,反正故事大体已经定了,,,


在我大概高二高三的时候, 与我所有那些总是忙忙碌碌的可怜同学们不同, 我度过了一段十分悠闲的时光. 这其中大概有一部分我已经放弃了升入任何一所正经大学的原因在. 那时我主要的时程包括试图用刺耳的口哨惊醒一窝在柳树上筑巢的麻雀, 用剥落的树皮或石片在水泥台阶上刻出一道道痕迹, 以及爬上校园里几乎太多的石灰矮墙来窥探教室里埋头读书的我的苦命的同学们无福消受的各式景色. 在我确实在教室的极少数时间内, 我大多数时间都在外头观察窗外一棵显然对这一切和我一样满不在乎的石榴树. 在我的印象里, 这棵石榴树始终都在结果的季节, 如果撑着窗框站起来看下去, 总是能看到无数石榴烈士摔的粉身碎骨的尸体. 这棵石榴树就是这样既不在乎季节也不在乎会给扫地阿姨和无数要穿过这条小径的师生们带来多少麻烦的自顾自地结着果子. 因为水泥地的裂缝已经浸透了这些可怜果实的汁液, 即使有人把这些多半未熟的尸体扫去了, 不知道扔到哪里去了, 这些光秃秃的地面也还是会引来勤劳的蚂蚁部族. 这些蚂蚁里的工兵试图咬裂我们水泥铸造的大地的外衣, 用这些带着石榴汁液的石块养育他们地底的社会. 蚂蚁是多么勤劳啊, 但我面对他们也不因自己的游手好闲而感到汗颜. 我对我的生活相当满意, 但它还只能算是一段经历, 而不能算作是一段故事—-故事是最起码要有两个人的, 最好还要有个女人.

为了让我的这段经历变成一个还能算合格的故事, 我们还需要引入我的朋友,K. 我是在

apparently follow.it uses wordpress

While setting up follow.it for this site I tried to do this:

Apparently they uses wordpress

Though it was pretty cool but maybe not.

Remeber how BFS checks if node is unexplored

I keep forgetting how BFS checks if the node is unexplored.
Like sometimes I just forget about it and turn it into a DFS and when I rememmber I want to check if the node is in the queue.
Just remember you only go down a row when you are down with the current row
Seriously why can’t I remember this.

remember this line

Key ideas on proving BFS gives the shortest path on unweighted undirected graphs

Basically some gists from http://www.cs.toronto.edu/~krueger/csc263h/lectures/BFS.pdf.

1
2
3
graph TD;
S-->U;
U-->V;

$d$: depth from root
$\delta$: shortest path from root


Prove by contradiction:
$v$: closest node ( to $s$) where $d[v]\neq \delta(s,v)$.
$u$: the “predecessor” of $d$ on one of the shortest paths from $s$ to $v$.
Statement to contradict with :

  • since predecessor, $\delta(s,u)+1=\delta(s,v)$.
  • since $v$ closest and $u$ closer, $d[v]=\delta(s,u)$.
  • from definition $d[v]\neq \delta(s,v)$.
  • therefore $d[v]\neq \delta(s,v)=\delta(s,u)+1$
  • since $d[v]$ is some kind of a path, and $\delta(s,v)$ is the shortest path by definition, $d[v]\geq \delta(s,v)$.
  • Combine last 2 step and $d[v]>d[u]+1$.

Remark: basically deduce that between reaching the predecessor on shortest path and the vertex, the BFS visits at least 2 other nodes.


Three cases:

  • $v$ not discovered:
    then $d[v]=d[u]+1$ since we will go to $v$ when exploring $u$’s neibours.

  • $v$ is discovered and explored:
    Then it is enqued before $u$ thus $d[v]\leq d[u]$1

  • $v$ discovered but not fully explored
    Take the node that discovered $v$, this node is explored before $u$
    so by it is enqueued before $u$1 $d[w]\leq d[u]$. Since $v$ discovered by $w$, $d[v]=d[w]+1\leq d[u]+1$


    Remark: the depth difference between $u$ and $v$ can’t be greater than 1 because we would explore all neighbours thus depth difference bettween neightbours cant be greater than $1$; and we know $u$ and $v$ have to be neighbours. Anyway the contradiction proof in other 2 cases uses property1 but it is pretty intuitive that the depth difference can only be smaller.


  1. 1.at any time if $v$ is enqueud after $u$ then $d(v)\geq d(u)$ Proof: use induction.

.config files' icon is always windows in VScode

Trying to modify i3 config with Vscode and noticed the icon for .config files is the Windows logo. Thought it was pretty funny as I was working on a linux machine.