McKinney Boyd HS Website Redesign

InternetSchool

This is the first installment in the McKinney Boyd HS Website Redesign blog post series.

The above tweet contains our latest consensus on a theme for the website. The first picture shows the old website.

Before this, a group of students talked with Dr. Peirson, principal of McKinney Boyd High School, and the webmaster of the website, Dr. Ayers. They are:

We discussed some pitfalls of the previous website, including:

  • Out-of-date design
  • Lack of JavaScript
  • Confusing layout
  • Not mobile-friendly

Now, we would like to resolve these issues, creating a website that is more up-to-date and accessible than it currently is.

Screen Shot 2016-01-20 at 3.17.50 PM

The web development team began with a temporary Twitter Bootstrap-oriented theme. In the middle of January, we added:

Just today, Justin unveiled a new preliminary design that will likely replace our Bootstrap design. However, we’d like to unveil a design that is universally appealing to everybody.

If you think you have a better idea for the design of the school website, please send us an image of a design you’d like for the school website to jwang@mbhs.xyz. Be sure to include both a desktop and mobile design.

You can always track the latest version of the website at https://jeffw16.github.io/Boyd-Website-Redesign/.

Thanks for coming on an exciting adventure! We hope to have a finished website by the end of the year. Stay tuned for more exciting news on the new Boyd website. #mckboyd #newboydsite

Less stress or more schoolwork?

School

This is my response to what has happened in this article:

http://www.nytimes.com/2015/12/26/nyregion/reforms-to-ease-students-stress-divide-a-new-jersey-school-district.html


Before I start, don’t expect that I am going to say “more schoolwork” because I am Asian.

I live in a community where most people are white and there is a very, very small percentage of Asian-American residents. It, perhaps, may not be a coincidence that most of my friends are Asian-American, but certainly my community has a different environment than this of the New Jersey school district. I think the NJ school district here could be most similar to nearby Plano ISD or even Allen ISD, where Asian-Americans constitute a sizable minority whose posterity command academic excellence in schools. But what’s different in McKinney is that, although ethnic1 traditions may play a part in those families that command academic excellence in our schools, the divide is not ethnic, rather it is more based on individual families’ values. Some whites and some Asian-Americans alike will push their children for more schoolwork, while other whites and other Asian-Americans will push their children to enjoy high school and don’t emphasize academic excellence as much.

It would be fair to consider me as a high achiever. My blog has many examples of my academic achievements, so I won’t list them here. One would expect me to perhaps say more schoolwork is good. However, that’s actually not what I want. I actually want a break.

I learn a lot and am under a lot of stress at times in the school year. There have been days where I come home from school at 3:00pm and work until 11:00pm nonstop just on schoolwork. That was not acceptable and didn’t really help me learn anything; I was extremely stressed and I think that the negatives definitely outweighed the positives. So why haven’t I stopped?

I’m in the GT program at my school, where the culture is super-competitive because all the smartest kids of the school are in a tightly-knit community that pressures and promotes increased academic excellence. This is where grades matter, and letting down the guard a bit isn’t acceptable. In other classes, students make friends and don’t have nearly as much stress as GT kids do. I don’t stop this cycle of stress at school because, unlike the pressure-absent environments of other classes, the environment of GT classes reward intelligence and hard work. Good grades is something that is the norm in the classroom and it pushes fellow students to work harder. If a student tried to ditch their stress, they would be pressured by the other well-performing students to do even better. It’s simply impractical to ditch the pressures of school as a GT student.

And what would my family say? My parents are typical brain drain immigrants that have worked so hard to get to the US. I have always been quite adept at schoolwork. There is certainly a pressure for me to do well and to continue doing so until the end of university. Cry. My parents don’t use belts to whip me if I get poor grades. Me, myself, and I alone keep myself in check and combined with the GT pressure, my familial piety act as another pressure. I don’t have the stable foundation that most white families have. Thirty years ago, nobody in our family had even came to the United States! Now that we’ve finally been able to settle down comfortably, I don’t want to mess that up for my parents. I want to create a legacy in the US as well for my posterity and family.

I just don’t want to work for success in such a stressful manner.

 

Some say school is about endurance instead of intelligence. I’d say that’s very true.

It’s just not fair.

But then again, why do we have class ranks? It’s not fair!

Well, how would we separate the exceptional from the mediocre? Mediocre don’t make the next drug to treat cancer. The exceptional do.

We have to keep this innate unfairness, but make it less painful please.

Reduce our stress and schoolwork, please. You’re trying to kill us, school system. This comes from a second-generation Asian-American student with high marks in school that pushes himself to do better and more importantly, wants to learn. My knowledge won’t help me in the grave.

 

Footnotes

  1. not racial; this is a very important difference because ethnicity is one’s culture, while race is one’s biological origins. Clearly, skin color does not influence how people act; culture does.

Using computer science to efficiently print out and analyze Twelve Days of Christmas

BrowserComputersInternet

I love using computer science concepts. They’re so helpful when you know them.

Today, I felt festive (it’s Christmas Day) so I decided to do something I’ve wanted to do for a while now so that I could sate my curiosity: Print out Twelve Days of Christmas using programming concepts. Even though I learned how to do these principles in Java, I easily transposed them to PHP, because I wanted to make this on a webpage.

I first began with researching the lyrics, as I could not remember much except for “a Partridge in a Pear Tree”, “Five Golden Rings”, and everything between. A visit to Wikipedia revealed the lyrics, which I carefully formatted and pasted inside an array. This was important, because I could then use this array in a for loop. Since the lyrics “count down” each new day, it would be very, very easy to do a for loop to print out the Twelve Days of Christmas.

Then, I put “a”, “two”, everything between, all the way to “twelve” in an array called “nums”. For the ordinal days (e.g. “first”, “second”, etc.), I put them “first” through “twelfth” into an array called “ordinal”.

Finally, I used a set of nested for loops to control the printing of the lyrics. The outer loop controlled which day we were doing, while the inner loop started from that day’s ridiculous gift all the way down to the partridge.

But I wasn’t done: I wanted to do the “statistics” behind the Twelve Days of Christmas, namely counting how many times a gift was given. For example, the Eleven Pipers Piping would be given 22 times because it was given on the 11th and 12th days, or two days. I used some simple algebra to come up with an equation that would determine this. Using a for loop, I generated the f(x) when x = 1 thru 12.

You can see the actual page and the GitHub repository for this little script.

How I boosted my SAT scores by nearly 300 points

School

Since the old test is going to die in a month anyway and I’m not really trying to advertise any SAT prep services anyway (lol) I’ll just cut to the chase:

Guessing is good if you can eliminate at least one answer choice from each question.

Which in most cases is very easy. The probability will work in your favor. (Don’t randomly guess answers, that won’t help!) Don’t let the -¼ point deduction scare you: it doesn’t make that big of a difference. Obviously, the new SAT will probably promote guessing because no points are deducted for incorrect answers, but if you are forced to take the old SAT for a specific reason, this should help.

My previous score was a 1940, and I found out from my detailed Score Report that the Collage Bored gives out that I had skipped many questions! I took a practice CR section the night before my next SAT and decided that it was in my best interests to guess. So the next day, I bubbled in every question. Sure enough, I got a 2210 afterwards!

Well, good luck, it helped me so much!

Why I’m a lonely programmer

BrowserComputersInternet

No, I’m not a loner. I have friends, trust me.

So what do I mean by a lonely programmer then?

Since I started programming in 2008, I have explored many types of programming, but what has always resonated with me is web programming. In fact, that’s why my business tends to concentrate on the web. My business MyWikis uses MediaWiki to host wikis, so naturally, since MediaWiki is written in PHP, I have become quite fluent in the language. Although it’s been derided for its confusing array of language constructs and inconsistent functions, it’s still important to web programming.

Why am I so interested in web programming, then, if its main languages are beginnerish and inconsistent? Because I know that desktop applications are lame, inaccessible, and unless it’s really good, there’s not much of a point in using them. I started web programming before HTML5, before Chromebooks, before the present era of the easy, modern web. Most people are interested not about downloading a web application and then using it, but simply typing in an address and getting all the information on a website. And if this website can do really cool things, all without leaving the comfort of one’s web browser, then that’s awesome!

Thankfully, I have an awesome group of friends that I’ve had for many years now, but they do not share the same passion for web programming that I do. (There are thankfully some exceptions, but more on that later.) While I slaved away at building MyWikis using PHP, JavaScript, HTML, shell, etc., my friends developed their interests in Java, C++, and other desktop development platforms. I do have minimal experience with desktop application development (some attempts at Visual Basic, Java, etc.), especially with my AP Computer Science and Computer Science 3 classes I take in high school. However, I still strongly resonate with web programming, and the recent developments of web programming has led me even further away from their programming passions.

Unfortunately, I’m an old dog, new tricks kind of web programmer, because the industry moves so quickly it’s unimaginable and hard for me to keep up with. The issue with old dog, new tricks kind of people is that they tend to stick with their old-style roots, which doesn’t help in an environment where new is (almost) always better. Now, the new thing is Node.js and since MediaWiki requires this in Parsoid, I am forced to bend down and get familiar with Node.js. And don’t forget Python and Ruby, which have somehow become backbones of the web. (I’m clearly in denial! :P)

Here’s where my exceptions come in. (Not try-catch ones.) Both friends are interested in web development and that makes me excited! One friend has recently picked up Node.js and has caused my school project with him and another friend to lead to two flavors: one in PHP and another in Node.js. I’ve got to hand him the trophy for “Most Modern Idea” but unfortunately Node.js just isn’t that mature yet, and I can’t really support Node.js because I don’t have the money for it. (Yes, that is my biggest reason why. Also, JS wasn’t that useful back then.) PHP is still more accessible to others with a tight budget and resources (cough cough that’s me cough cough) and that is why I continue to use it. Another friend develops in Python and helps Mozilla, and has actually created several creations of his own, which I support because they’re great ideas and I have just enough resources from my company to support him at the most basic level.

But I still feel lonely.

I might just have a really closed mind, or I might actually be a loner, but it’s mainly because web programming is so diverse and nobody comes near the web development associated with MediaWiki, WordPress, and other software like that. Node.js isn’t used for stuff like that, and Python is probably better suited for newer, larger, and more complex applications. The nearest cousins of MediaWiki in Python would be MoinMoin and I’m not getting into that! (I don’t think there is a MediaWiki in Node.js yet.)

Why am I so concerned with people knowing PHP or even remotely having some kind of passion for MediaWiki?

It’s hard to run a company alone, but I manage to do so because there isn’t anybody interested in what I do, even though it makes money! A company is supposed to be a team effort, and honestly would be much more fun and efficient if that was done. However, nobody has that passion, and being a teenager who has done this for half his life (yikes!) doesn’t help with finding people actually interested in developing with or maintaining a company about MediaWiki. Furthermore, the market is quite divided, with most people not even needing the services of MyWikis or they use a completely different wiki engine that isn’t remotely compatible, like TWiki or MoinMoin.

And that’s why I’m a lonely programmer. I’d love to be not-lonely.

(Friends-o-mine: I am so thankful to be friends with you! We’re just different, and the best of friends are fine with and embrace being different. I really like what you make on the desktop but it’s just not my true passion.)

How I use my Raspberry Pi with only power and Ethernet

Computers
Raspberry Pi on VNC
My Raspberry Pi, accessed through VNC.

If you know me, one of the things that drives me crazy about the Raspberry Pi is its lack of VGA or DVI ports. All of my monitors and computers have VGA and DVI ports, but apparently the $35 mini-computer needs to have only HDMI and for some reason, composite video. Bleurgh.

So I decided to put my RPi away until I could use it without going to the nearest TV with an HDMI port. Anyway, from previous experiences, there are two technologies that I thought of that would allow the Raspberry Pi to run autonomously.

  • SSH
  • VNC

So I set them up as part of the startup launching daemon thingies and now they run whenever I plug in the RPi. It’s literally that simple.

Of course, I’d be doing most of my stuff on the VNC graphical interface, not a command line. Unfortunately, VNC is somewhat laggy and can’t run graphically intense applications like Minecraft Pi edition. It’s fine though, I think it’s quite cool that I can even do this.

Why the Raspberry Pi Zero has zero value

Computers

In other words, a complete piece of crap.

First, before I continue, let’s recap on what happened over the past few months.

School has been challenging, but new friends have been made and challenging classes have helped strengthen myself for the better. The 3rd of November Incident happened, which my friend Justin Potts can cover on his blog post (click on the link).

Okay, back to the Raspberry Pi Zero. Why is it utterly useless? Let’s look at the specs presented by the Raspberry Pi Foundation:

  • A Broadcom BCM2835 application processor
    • 1GHz ARM11 core (40% faster than Raspberry Pi 1)

This is cool and awesome. I’m not complaining about this at a $5 price point!

  • 512MB of LPDDR2 SDRAM

Ok… I’ll let this slide since earlier models had less RAM.

  • A micro-SD card slot

I have always hated the Raspberry Pi because it uses an SD card to boot. Getting these things imaged, purchased, and working is an absolute pain. I am deeply saddened RPi continues to use SD cards, because let’s face it, nobody uses them anymore.

  • A mini-HDMI socket for 1080p60 video output

This exists?

Nobody has these at home. Boo!

  • Micro-USB sockets for data and power

The original RPi never included an official power adapter, which sucked because I could never use my personal microUSB adapter to get the wattage, voltage, or ampage correct for the RPi’s needs, whatever one fits there.

  • An unpopulated 40-pin GPIO header
    • Identical pinout to Model A+/B+/2B

Don’t care

Update 12/27/2015: Ok, now I do care about GPIO. It’s nice, I guess.

  • An unpopulated composite video header

Wow, seriously, now you’re just forcing people to use “mini” HDMI, whatever the heck that is.

  • Our smallest ever form factor, at 65mm x 30mm x 5mm

Cool, but let’s face it, a small piece of crap doesn’t really do much. We don’t need it this small in the first place.

I owned the first model of the Raspberry Pi and because it supported composite and HDMI, I was forced to use it on my television, which absolutely was terrible. I had to stand too close to the TV screen. Considering the limited USB ports (there were only two at the time), peripheries were hard to come by. And don’t forget there wasn’t Wi-Fi, just ethernet. Right, like everybody’s router is going to be right by their TV… if that coax port isn’t already used by their TV’s cable service!

Don’t waste $5 on it because it has the ability to do things, because abilities and actions are completely different. That’s why I support C.H.I.P., which is just $9 and has Wi-Fi (great), composite with possibility of VGA adapters (awesome because RPis and C.H.I.P.s are not Chromecasts), and built-in memory so at least SOME type of OS can run without the disgusting SD cards.

Of course, the C.H.I.P. has its own pitfalls, like its one USB port, no power charger included, and only composite video natively. Thankfully, it’s only $9 and actually functional, so I don’t have to spend $100 in accessories for a $5 computer, I just need to buy a USB hub for $5-$10, a VGA adapter, a power cable, and maybe a keyboard and mouse. (I already had a USB hub for my RPi originally, but now it can be used for my C.H.I.P. when it arrives in February.) At least it’s better than the RPi Zero.

Continuing the cycle of school

School

I am writing this in the beginning of August, 2015. That’s the time when students go: “Hmm, I need to do my summer homework.” And that’s the time I reflect on the previous school year, as well as this summer.

After I got my AP exam scores, I felt very accomplished. But wait, what about class rank? I was very anxious to find out how well I did compared to my peers. In the 2014-2015 school year (FYI, freshman year for me), I had tried quite a lot. But to be honest, I did not push myself over the limit. I knew if I did push myself over the limit, I would fail. I did homework for about 1-2 hours a day, on average, unless I had notes or a project to complete. Then I watched Netflix or browsed the internet, checked up on my company to make sure it didn’t go bankrupt or anything. Dinner, pre-bed preparations (like showering), and off to bed to sleep, only to wake up at 6:30am to go to school. Fun.

So I felt I deserved a high class rank and AP exams, for my persistence in this endless, hopeless cycle which adults call the educational system. The persistence itself is what pushes me to perform at 90%. And that 10% difference has caused some scores to be not as great as they could’ve been. But so far, I have been extremely lucky not to screw up big time. In addition, taking two AP courses and getting A’s in them have helped me propel myself rank-wise.

When I found out how to get my class rank in the middle of the summer, I remembered my rule: if it’s too high, I become a target. If it’s too low, my reputation is ruined. And guess what, there is no middle ground or “perfect balance” for me. Yes, it’s because I am a second-generation Chinese American who isn’t going to give up on the dream that my parents began. Failure is not an option.

I sent the email to the faculty member at my school who gives out class rank on a Thursday night. Since the school worked from Monday-Thursday every week in the summer, I would have to wait 4 painful, grueling days for my class rank. It killed me to wait. But I was in New York City for my summer vacation, and I tried to let time pass.

It passed quickly. Monday morning at around 9:04am, I think, my phone made the Gmail buzz, to which I have became quite acquainted.

Slide to open. Finger on the home button. The phone unlocks. Gmail loads. The message appears. Heart beats at 2,000mph.

Hi Jeffrey!

WOW What an Awesome year you had academically!  Enjoy the remainder of your summer and we will see you soon!

Rank:  4 out of 712

Wow.

Don’t get me wrong, I was shocked and yet, at the same time, excited.

“Hooray, I tried hard enough and I got a really high rank!”

Then reality came back.

“Oh crap, I’m too high. I’m a target.”


 

After the vacation and a few weeks, I did do some more homework. Getting started on summer work was actually the hardest part, but completing it isn’t too bad.

I actually was offered a job that paid $10 an hour. It made use of my Minecraft experiences. Being a tech guy, I was overqualified for the job. But since I haven’t really worked face-to-face with others before (before, it was all through the internet on MyWikis!), I gladly accepted the job. It gave me experience with teaching kids. It let me dive into the insight of a younger generation, one which is not accustomed to dial-up speeds, Mojang accounts, or even Windows XP. (smh) It made more than MyWikis anyway.

I have made a few hundred dollars for all my work there. Not bad, considering the times are shorter than school and I still had time to do my summer work after work. And of course, let’s not forget the Netflix I can watch afterwards!

But then I think how close the beginning of school is, and it scares me.

“Have I even done enough summer work? Do I need to work quicker? I NEED TO LEARN THIS CONCEPT NOW. No, MASTER IT.”

And then you get to the actual thoughts of starting school again.

“Great, another year of stress begins.”

I’m trying to soak up as much summer is left as I can. Wish me luck. Because right now, thinking about school starting again is giving me the most stress, and it’s not helping me calm down.

On my 2015 AP exam scores

School

The school year of 2014-2015 was my first year of high school and of course my freshman year. Being new to high school, programs like Advanced Placement (AP) are usually out of reach for a first-year high school student, not to mention the increased rigor brought to once mundane courses like English and History. As a GT student in my school, I take Humanities 1, or basically the hardest English and World Geography classes for 9th graders. They were quite grueling, and piled on with my other AP classes, I felt it would be a recipe for disaster.

Taking AP Biology and AP Computer Science A … as a freshman?!

Initially, I chose to take two AP courses at my school, AP Biology and AP Computer Science A. In May 2014, when I was only an eighth grader, my soon-to-be AP Biology teacher introduced us to the curriculum at my school and explained what was needed to prepare for the upcoming semesters. In addition, there would be a comprehensive summer assignment we had to complete. The same month, I emailed my soon-to-be AP Computer Science teacher if I could skip Pre-AP Computer Science and take AP Computer Science, a class which usually serves as a second-year computer science course. However, I had already known a few programming languages and I felt going through Pre-AP would be a waste of my time. Along with my closest friends, who happened to be passionate in computer science and programming as well, we emailed the teacher and she responded with a “yes!” We were excited, but it was time to prepare.

After a two-month vacation, I arrived back home in August to find that I was severely behind on my AP Biology summer work. I spent every waking day completing every single summer assignment, and by the time I had tested the first unit, I obtained an extremely high test score, due to my studying, the teacher’s generous grading curves, and a friend of mine who provided necessary data for the summer assignment. In addition, I read some of the AP Computer Science summer assignment, which was actually never enforced and basically useless, and practiced object-oriented programming principles using the programming language which I was already familiar with, PHP. By the time I got to class, with the help of my friends, I was able to quickly catch up on the principles of Java necessary for mastery of AP Computer Science.

Signing up for the AP Chinese Language and Culture exam … without taking the class

This year also happened to be the year the Chinese foreign language program was rebooted, and as such, a Chinese teacher arrived at Boyd. I have been able to fluently speak Mandarin Chinese since I was a child, and although my English skills have greatly surpassed those of my Chinese skills, my Chinese is definitely good enough to have a comfortable conversation with native Mandarin speakers. Nonetheless, I chose to take French, because as my French teacher says, “taking Chinese would be like taking ESL as my second language.” Consequently, I didn’t meet the Chinese teacher in my normal daily schedule. When my classmates who took Chinese said “we’re starting a Chinese Club, you should come join!,” I met the teacher and spoke my fluent Mandarin. She recommended me to take the AP Chinese exam that year. Although I was not in any Chinese class, I decided to keep the recommendation in the back of my mind.

In McKinney, not many Chinese people who actually speak Mandarin are around. Nonetheless, I happened to meet a Mandarin speaking native of Tianjin, China in my AP Computer Science class. He told me to take the AP Chinese exam as well, saying “it’s really easy, with your level of Chinese comprehension, you’ll get a 5.” He then cited the fact that he had also taken the exam the previous year and felt it was easy.

The combination of the Chinese teacher and a taker of the AP Chinese exam led me to sign up for the AP Chinese exam along with the expected registration of my two other exams that were associated with the classes I took,

How did I survive my AP courses?

Although I had not taken any computer science class before, AP Computer Science was relatively easy. Coupled with the fact that my friends took the class with me, help was always at my disposal, and my help was always at their disposal as well. There was no homework in the class, and when it came time to learn concepts, I just learned them easily. The labs that we completed in the class helped us unite elements of Java and establish their practical uses.

AP Biology was, however, a completely different beast, but one that was still manageable. Along with homework that made life quite saturnine, the tests given in class were filled with concepts that were not properly linked together in preparation for the AP Biology exam, not to mention the class test questions were hard. The good news is that curves ranging from 15 to 25 points were applied on every test, and my test score was always above a 90 after the curve. It wasn’t ideal, but I worked with what I had.

Which course was most useful?

I am deeply passionate about the practical applications and possible things that one could make from computer science. However, when it comes to learning something, I am a jack of all trades, and the concepts taught in AP Biology allowed me to understand all the concepts of life. Everywhere I went, I applied my knowledge learned in AP Biology and I understood how something worked. It might have been a result of intense homework assignments, but it gave me new knowledge and understanding of life as we knew it. I think AP Biology was the most useful course I took in my freshman year. That might be because AP Computer Science was pretty simple and added to my already vast knowledge of programming, but I think learning something new makes something interesting.

Reflecting on my AP scores

Although the AP Biology exam was tough, I was not pleased to receive only a 4, but I’ll accept that over a worse score. (Yes, I am a stereotypical Asian who feels the highest score is always the goal, and anything less is a disappointment and a failure.) Only 6% of students obtained a 5 on the exam. I bet I was in the 7% who was stuck in the upper 4 range. To be fair, I studied intensely the weekend before the exam (also known as cramming), which made me more confident I would receive a 5. Unfortunately, although I did not receive a 5, I was still good enough to be well qualified for the course. This would be the worst AP score I received out of my three AP exam scores.

Interestingly enough, my time management for the multiple choice section of the AP Computer Science A exam was terrible, and coupled with difficult multiple-choice questions, I felt I did not do so well on that section. However, I had much better time management on the free-response section, and it was pretty easy. I am almost certain the free-response section allowed me to achieve the 5 score for which I was hoping.

Finally, but definitely not least, is my AP Chinese Language and Culture exam. Ok, it might have required the least preparation, considering I natively speak Mandarin Chinese, but I nonetheless picked up a book and reviewed the type of questions it asked. This is definitely the most unique test I have ever taken. First, nobody else took it with me. Only my history teacher accompanied me as a proctor. The exam is actually administered on a computer, and because my Pinyin input skills are great, that was not an issue in the exam. In fact, the multiple choice and writing sections were quite easy. However, the AP Chinese exam also expects you to listen to a question and then immediately begin responding with a relevant response for 20 seconds. Not only is this harder than real-life conversations, this was by far the hardest part of the exam. I think 5 seconds should be given in between the question recording being played and the recording of the response. But I digress. Even the “cultural question” to me was hard. I had to explain the interesting characteristics of the Chinese character system, or something similar. Thank goodness for Chinese school, which taught me all I needed to know. Nonetheless, I obtained a 5 score, just like the 65% of students who took the exam this year with me. The hardest part of the exam was the ability to answer the questions as they asked, and this was something for which I did adequately prepare, making me very happy.

 

In conclusion, this was an exciting year for my AP classes. I even did something unique that nobody else in my school did this year. Although next year is harder, I’m looking forward to my unique experiences.