Skip to content

[Rejected] Submission for WWDC20 Swift Student Challenge

Latest
Compare
Choose a tag to compare
@ApolloZhu ApolloZhu released this 18 May 07:26

Rejected

Rejected

Special Thanks

I would like to pay special thanks to Keras Convolutional Text Punctuator. Though I wasn't able to allocate time and integrate it in my submission, the project owner responded to my email very quickly and uploaded an MIT license. Again, thank you very much!


WWDC20 Swift Student Challenge

So... yeah, me again. After submission, writing the summary and reflection.

To be honest, I wasn't really expecting them to actually have a WWDC Scholarship this year when they announced that it's gonna be an online event. So no one (in @UWAppDev club) is preparing for this at all. And when they announced it on May 5th, I created my repo think we are ****** liked last year. Attended an info session organized by WWDR of Greater China, and it was a relief to find out that the playground book format is not looked upon as heavily as compared to the previous years. Yet that's only 12 days to work on it (we got 2 more days, wow! ... not really. Still not enough time). And indeed, many people (tried to) attempted it, but wasn't able to finish in time.

Development Process

Though I experimented with the idea throughout the submission window, I only started working on it after I finished my math homework Friday night. I'm glad that I can watch the lecture videos at a later time and focus on this instead. I'm also thankful that there's nothing due this weekend (or on Monday). Most parts worked smoothly, but I did have a lot of problems, especially on drag and drop reordering:

struggling with rearranging words on Saturday night

For more details, you can check out the commit log, but basically I started to convert my Xcode project to a Playground on Sunday morning. It crashed immediately (as expected, because you are always gonna run into troubles when converting an Xcode project to playgrounds). I vaguely remember from my previous years of experiences that this might be caused by Mac not having a playgroundSharedDataDirectory. SO I HELPED THEM DO THEIR JOB BY CREATING IT MYSELF:

import PlaygroundSupport

let playgroundSharedDataDirectory: URL = {
  let url = PlaygroundSupport.playgroundSharedDataDirectory
  if !url.fileExists {
    try? FileManager.default.createDirectory(at: url, withIntermediateDirectories: true)
  }
  return url
}()

I tried to share the Sources folder from .playground with Xcode like previous years, but Xcode refuses to syntax highlight or to autocomplete, so I have to keep two copies of the same files, and manually syncing the changes over. To make this easier for myself, this is what my Finder sidebar looks like:

Sources (Xcode) > Swifty Podcast Editor > Sources (Playground)

Tradeoffs

So I reached a relatively releasable state by Sunday noon? (26a9b7c)

Mostly working on Sunday morning at 6am

I sent the playground to @LiulietLee for review, and he said: "any of your editor features could have been developed further, but there isn't enough time for any of them." Indeed, I have a list of todos on my sheet of paper and my whiteboard (Chinese):

  • 录制音频,生成文字
  • 补充标点
    • 使用停顿时间
    • 使用 lexcial class
    • 使用 acoustic features 判断是否是“?”
    • 使用 CoreML (Keras punctruator, LSTM, ...)
  • 允许修正自动转换的文字
  • 允许整理文字
    • 描述传统的方式有多不容易
    • 允许按句整理
  • 允许插入其他片段
    • AVSpeechSynthesizer
      • adjust pitch/... to mimic recorded audio
    • Connectivity Camera + VNImage OCR
    • 从 music library 导入
  • 导出为音频
    • 导出为用旋转文字的样式视频
  • 结尾把 19 年的 sentiment analysis 又搞一遍
    • 加 confetti 效果

Well, deadlines are the greatest invention in trying to keep people from unrealistically aiming for the perfect product without producing anything usable. So once I reached that point where I know it's "good enough," I started to work on the playground markups. I even made videos this year using Keynote :) I guess that's a plus. But the content organization, as _liet says, can be improved. I tried to adjust the wording a little bit and I really hope that will help somewhat.

Regarding Notes from WWDC19 and Submission

I really wanted to submit a resume to Apple so I could potentially have something to do in the summer. But coming to think about it again, is there anything on my resume that will really fascinate Apple and make them think, I'll be a great addition to them?

Unfortunately, I think my answer is still "not really." And in reality, I don't have a resume ready to submit by the deadline. I almost didn't manage to submit, I would say. I preloaded the page as always, submitted once, got some network error (most likely session expired). So I have to fill in all the information again and hit that submit button. Well, when I checked the clock it was 2:57 local time, 2 minutes before the deadline.

Submitted

Did I not try to start earlier? Well, actually, I did. I created another repo on Nov 29, 2019. But as of me writing this release note, I don't believe I made any progress on that. I was also considering another potential project idea. In the end, I decided not to pursue it as it requires even more research than this.

To Improve

Right... I didn't have time to proofread/revise my essays, so they're probably not the best they can be. But I think I talked about what I want to say; it's just not in the best way possible.

Update: I forgot to mention that I'm translating Swift Educational Notes. ****. Well, you can check it out at Swift 错误诊断教育性注释

And on that, when I checked the git status after submission, I realized that my playground shows raw markup instead of rendered ones. Just like previous years, RIP.

It's totally fine

Takeaways

I'm also teaching my family friend's children to learn how to code, encouraged him to give this a try. When he needed the help the most (which is like last half an hour), I was trying to finish my submission, preventing me from assisting him to the best of my abilities.

He was so excited about this...

He didn't give up though there were only 5 minutes left...

I have a habit of not forgetting some special moments, no matter how small. I think this one will be one of them that companies me throughout my life, reminding me of a teacher's responsibility. You are not just there to "share your passion and enthusiasm for CS," you are there to guide people and leading them forward.


Alright, I finished this, gotta watch Friday's lectures now.