"In the world ye shall have tribulation: but be of good cheer; I have overcome the world." –John 16:33

Category: Technology Page 7 of 9

Notes on Christian’s 18th birthday

Day 745 of 1000

I will be in Arizona on Christian’s birthday this year so we had a birthday cake and celebrated a little early with a birthday cake and some candles after dinner last night.  It was nice.  I thought I would write down a few things about him to celebrate this milestone.
Christian and Dad, two days before his 18th birthday

Here are a just a few random notes:

  • When Christian was about 12, he had pretty sloppy handwriting, but for some reason or another, he got fascinated with the topic of fonts.  He implemented anti-aliasing of fonts on RockBox (an operating system for MP3 players with screens), designed some computer fonts, then decided he wanted to design his own, fast, efficient, handwritten, serif font.  He did that and it was quite amazing.  For a period of about two years he took notes and wrote letters with a hand-written font that looks essential similar to courier new.  When he started getting into complicated college class at age 14 or 15 he needed to write faster, so he dropped some of the serifs, but still has impressive handwriting skills.
  • Christian is one class short of his associate degree.  He has enough credits, but needs one literature class to finish up.  He loves his old community college (Wake Tech) and wants to finish the degree online after he gets out of graduate school.  I hope he does that.
  • Christian started NCSU as a Junior when he was 16.  Rather than go through normal channels to get a canned research project, he approached the professor in charge of electrical engineering graduate research to solicit a research project.  The professor told him no one had previously done that, but got the word out and he was given two professors that needed some help.  He is now on his third project for the professor he selected and has had a stellar research experience that has included circuit design, data gathering and analysis, PID loop tuning, C/C++, Assembly, and MatLab programming, a research paper, two research posters (and presentations), and he still has a big capstone project and paper in math and image processing to do before he graduates.
  • Christian started college full time at age 14, but had 15 credits from CLEP testing he started accumulating when he was 13 that were accepted by the community college.
  • Christian started his Senior year at NCSU at age 17.  He has a 4.0 GPA.  He is taking two graduate level math classes this semester and is scheduled for three more next semester.  He has been on the Dean’s list every semester he has been in college.
  • Christian took a driver education class that is offered by the State of North Carolina when he was fifteen.  He got his drivers permit just in time to spend the whole summer driving from near Fuquay-Varina with his Dad to an engineering internship in RTP.
  • Now that he is 18, he is old enough to go into the men’s locker room at the YMCA.
  • He is scheduled to do English-Spanish translation at our church convention this weekend.
  • He is a good son who gives us great joy.

HAPPY 18th BIRTHDAY CHRISTIAN!!!

A serious 18th Birthday picture of Christian with Dad

NCSU wins a huge analytics grant

Day 724 of 1000

This morning when I read the news on Free Republic, I ran into this article on a new program at NCSU.  That pointed to this article in the News and Observer that describes the new “Big Data” joint venture between NCSU and the NSA.  It starts out like this:

As the field of “big data” continues to grow in importance, N.C. State University has landed a big coup – a major lab for the study of data analysis, funded by the National Security Agency.

A $60.75 million grant from the NSA is the largest research grant in NCSU’s history – three times bigger than any previous award.

The Laboratory for Analytic Sciences will be launched in a Centennial Campus building that will be renovated with money from the federal agency, but details about the facility are top secret. Those who work in the lab will be required to have security clearance from the U.S. government.

NCSU officials say the endeavor is expected to bring 100 new jobs to the Triangle during the next several years. The university, already a leader in data science, won the NSA contract through a competitive process.

NCSU university already has strengths in computer science, applied mathematics and statistics and a collaborative project with the NSA on cybersecurity. The university also is in the process of hiring four faculty members for its new data-driven science cluster, adding to its expertise.

This fits very nicely with Kelly’s analytics internship at the JHU-APL.  The other thing I thought was fun and interesting is the connection was not just to the Statistics department, but to the Applied Mathematics department, too.  Christian is an Applied Math major.  The article also talks about the Professional Masters Degree in Analytics our friend Andrew earned last year.

Read more here: http://www.newsobserver.com/2013/08/15/3109412/nc-state-teams-up-with-nsa-on.html#storylink=cpy

A GREAT engineering solution — The Koreans do it again

This a brilliant, elegant, cheap, simple solution to a problem that everyone confronts, but few really have considered.  I LOVE this.  How creative can you get?

Arduinos at RadioShack

Day 683 of 1000

Many of you may know that I am a big Arduino fan.  Most of the time I spend on airplanes these days, is with a netbook computer programming an Arduino Mega for a project Christian is doing at NCSU.  We were down at RadioShack yesterday buying parts for this project.  We found out that RadioShack now carries Arduinos and a ton of accessories.  I think I must be the last guy that knew that.  Everything you need to control just about anything you could imaginge for under $50 is available within a short drive of just about anywhere in America.  Impressive.

What does a Statistician do?

Day 651 of 1000

When Kelly tells people she is a Statistics major, people often ask if it is possible to get a job with that degree.  Beside the tactlessness of the question we are amazed that people know so little about what is driving innovation in medicine, the internet, marketing, agriculture, sociology, psychology, and just about every other field imaginable.  Big money is invested to mine information from the mountains of data produced in clinical studies, internet commerce, engineering research, etc.  A deep knowledge of statistics is required to do this work.  Statisticians are in big demand.

What prompted this diatribe?  I have written about some of the demand for statistical knowledge in the past (see here and here), but another example showed up today in an article on ZDNet today.  Dell and Intel are building a “Big Data” innovation center in Singapore.  Who will man the center?  Statisticians!

3D Systems to sell cheap 3D printer for $1,299 at Staples – Can it print a gun?

Day 621 of 1000

Here is an amazing story over on ZDNet about a personal 3D printer from 3D systems that will be available from Staples at the end of June.  The 3D printer can only print within a 5½” cube and the expendables are pretty expensive, but it is changing the game pretty dramatically.  Now that working 3D printable guns are possible, this makes it even bigger news.  It will be interesting to see how long it takes for a 3D printer to be available that costs less than $1000 and can print one of the Defense Distributed designed guns.

Rules for a great career (even if it is accidental) Part 1 of 3 – Stay in touch

Day 620 of 1000

This is the first in a series of three posts about things that have helped me develop and sustain a career I love.  The first post is about how to stay in close touch with people with whom you have worked.  The second post is about how to give away free work whenever you can.  The third is about how to invest significant efforts in helping previous employers, people who can never help you, and “the least of these.”

I have a career that I love.  Beyond my wildest expectation, it gets more enjoyable every year.  It did not start out that way.  There are several simple things I wish someone would have explained to me about career and life that I did not realized until I was in my forties.  This is the first of two posts about the rules I believe got me here.  Of course, the rules are not the only thing–you have to know how to do the job, but the rules set things up for my success.  The first set of rules has to do with staying in touch with colleagues and are listed at the bottom of this post.  The second has to do with giving things away (yes, that means for free) and life-long learning.  First, a little about my background and career path.

Education

Through no fault of my own, I have a great career doing work that interests me with good people.  At some level I have always known it was by the grace of God because I certainly did not plan it that way.  I (barely) finished a degree in Business Administration with a concentration in Marketing in 1978.  I got pretty bad grades and when I got out, surprise, it was really tough to get a job.  I was a microcosm of what happens to people who study non-STEM degrees today with the exception that college was pretty cheap at the time, I was not saddled with a lot of debt, and I (again) got pretty bad grades.

I worked for awhile at nights in the mail room at a large technology company running computer reports around their multi-building campus.  It was truly a dead end job, so I decided to go back to college and get a technical degree.  If I had had a brain in my head, I would have done the leveling classes to get into a Masters degree program.  No really great school would have accepted me because my grades were so bad, but knowing what I know now, it would have been pretty straightforward to get accepted at a good regional University as a probationary student long enough to prove that I could handle the degree.  I already had a lot of the math and chemistry, so it would not have taken long if I worked hard.  Later in life, I actually worked with a woman who did exactly that to get into a Masters program in Mechanical Engineering with an English degree and no math.

Career field

So, I went to a technical college and got a two year associate degree in something called Computer Systems Enginneering Technology.  It was kind of a cross between computer programming and electronics.  With that, I got a really good job at a company named Triad in Silicon Valley training technicians how to work on specialized computers specifically designed for auto parts store.  After I had been there a couple of years, a friend told me about a program where I could pay in-state tuition in Oregon while I went to school for a semester in Guadalajara.  It sounded great, so I headed to Mexico.

I made no job plans before I went to Mexico, so when we got toward the end of the semester, I started to worry because I had no money.  Thankfully, my Mom, Grandma Sarah, was way ahead of me.  She saw a want-ad in the newspaper for a technical writer at a robotics company named Intelledex in Corvallis.  She sent my resume, I went to the interview when I got home, and they gave me the job.  At that time in 1983 there were hardly any industrial robot companies, but one had been started in Corvallis by a group of the engineers and scientists who worked at the Hewlett-Packard ink-jet printer facility.  Within a couple of years, I had moved over from the robots to work on something called machine vision.  A machine vision system is a computer that has a camera connected to it.  The system captures images of things that are happening on conveyor belts and workstation tables to guide robots, check the quality of assembled parts, and that sort of thing.  That is the field in which I have worked for the last thirty years.

I stayed at Intelledex for eight years as a technical writer, trainer, applications engineer, and regional sales manager.  I got to know enough about machine vision that one of our customers, the University of Texas at El Paso, invited me to start and run a vision laboratory to develop machine vision systems for use in factories in Texas, New Mexico, and Northern Mexico.  While I was there, I was able to take the leveling classes I needed to enter and complete a Masters degree program in Industrial Engineering.  We were successful enough that, I actually got invited to lecture to the faculty at the National University of Singapore about the program and some of our systems got deployed as far away as Israel.  After that I got invited to Texas A&M to start a similar program there and to start a PhD.  That program and the PhD never progressed very far because marriage and real life got in the way and lead me back to machine vision with Motorola, another of our old customers in Florida.

What made my career take off

It should have dawned on me that the reason I had the educational opportunity at UTEP and the job opportunity in Florida was because of connections I made in my work with the robot company.  I left Motorola to start a business that was pretty wildly unsuccessful and needed to go back to work.  I really did not know where to go, so I went back to the well and called some of my old Intelledex friends.  They said, of course we will hire you.  That was really a wake-up call.  The people that rehired me were now at a different company, ESI in Portland, that had purchased the machine vision part of Intelledex.  I realized the people I worked with before were not only just workmates, they were friends who valued what I did.  Not only did we enjoy working together, they valued me for the contribution I could make.

The next big event in my awakening was initiated by the dot-com bubble.  I got caught in a mass layoff due to business conditions and I found myself on the street.  That really set me on heels.  I had a mortgage to pay and a family to feed.  I wracked my brain and called everyone I could to find a job.  One of the guys I called was a camera salesman.  He said he knew of a job in, of all places, Corvallis.  I called the guys and guess what?  It was populated with some other of my old compatriots from Intelledex.  By now I start to clue into the fact that I have friends out there.  It really irritated me that no one emphasized the importance of staying in touch with workplace colleagues.  My rules for a great career were an outgrowth of that epiphany.

Right now, the shoe is on the other foot.  Some of my old Intelledex compatriots work for me as contractors.  It is nice to be on the other side of the equation and reinforces the knowledge that a job helps both the employee and the employer.

Rules for a great career

  • When you leave a company (or move from one division to another) make a list of people for whom you have respect.
  • Follow the careers of the people on your list and send them an email or even a card whenever they get promoted or change companies.
  • If someone on your list loses their job, wrack your brain and make some calls to people who might be able to use them.  It helps both the employer and the employee.
  • If a company tries to recruit you and you cannot take the job, actively try to find someone who can feel the need and make follow-up contact to see if they are still looking.
  • Take every opportunity possible (after putting God and family first) to meet with your colleagues and ex-colleagues in informal settings (e.g. Take them to lunch when you are in town).

Final anecdote

I received an email two days ago from what I will just call an unfriendly acquaintance.  He and his wife both work in the same field as I.  He saw I had a connection with a company that might be able to give work to his wife.  He essentially had to swallow his pride and ask me for a favor.  I will derive great joy from introducing his wife to the CEO of a company that very well needs someone like her.  This will help an old friend (the CEO), create a new friend (the wife), and turn an unfriendly acquaintance into a friend.  The CEO is already on my contact list, but the (hopefully) ex-unfriendly acquaintance and his wife will now be on my contact list whether the job works out or not.  I plan to contact all three in the next couple of weeks to see what happens.

How to teach computer programming to kids (Part 5) Projects in C, GaugeCam, and PHP

Day 608 of 1000

This is the fifth in a series of posts on how we taught our children to program, what we did wrong and how we think we could have done better.  You can see the introductory post and index to the series by clicking here.

[Previous post]
[Next post]

Sandisk C200 MP3 Audio PlayerChristian only spent half the school year at age 11 learning to program C#.  We really only got him going on it as an afterthought because he was interested.  After he had established a foundation, he got a little bored, I think because he did not have a specific project in mind to practice his skill.  The reason he asked to switch from C# programming to was that we got him a little MP3 audio player.  When he gets a new “toy” like that, he really likes to investigate its capabilities.  He found that it was possible to convert many MP3 players from just audio playback devices into little, general use computers that could run games, videos, and other programs.

The conversion is made by replacing the firmware provided by the hardware vendor to perform audio playback with an open source program called Rockbox.  Rockbox is written in C and Assembly language.  The problem Christian wanted to solve was to make the fonts look better for Rockbox on the Sandisk C200, the one we bought him for his birthday.  To do that Christian did the following:

  • Downloaded the source code
  • Learned how to build and install the code with the gcc compiler
  • Found some anti-aliasing font code to improve the appearance of the fonts
  • Modified the code to run on the Sandisk C200

This new pass through the whole configure-make-install process was much less automated that with the Linux environment.  It moved him up the curve a little bit further and got him his first experience at modifying someone elses C/C++ code to work on a new platform.  The problem was that he finished that in just a couple of months and wanted to move on to a new project.  That is when he decided he needed to know how to build a professional quality website.

Rather than start with something already packaged like WordPress, Christian decided he would use one of the professional quality open source, content management frameworks and build a site from scratch.  After eliminating the idea of using WordPress, he decided on Drupal, so he had to learn PHP.  PHP is a scripting langauge that looks (speaking very roughly here) like HTML with embedded C functions.  It also requires a working knowledge of the MySQL database program.  He spent several months learning how to use the tools, then built himself a site.

In addition to learning how to program a website, he also learned how to work on the aesthetics of his site. I am notoriously bad at making this blog look good.  Christian browbeat me into adjusting the site’s appearance this very weekend.  He still thinks I did a pretty bad job, but he that it is better than it was before.  Part of that is due to the help he gave me on such things as using complementary colors and using the Color Scheme Designer website for help in their selection.

During this whole time, Christian volunteered his time at the GaugeCam project under Dr. Francois Birgand in the Biological and Agricultural Engineering Department at North Carolina State University.  While most of the GaugeCam spent their time gathering data, performing research, testing equipment, etc,, Christian was tasked with building a server to run the website, capture and process results, host a blog, and generally act as the systems administrator on the project for a couple of years.  We gave him an old computer on which he installed a LAMP stack, the operating system and programs to run the server.

The take-away from all this is that Christian stayed engaged in computing with the help of a variety of projects that had specific goals the he wanted to finish and make work.  He learned a lot along the way, a little at a time as it was required for his projects.  The gift of interesting projects with specific goals is one we believe is essential in the effort to learn how to program.  He had one additional project that fits into this category, but that is sufficiently interesting that it requires a post of its own.  Christian figured out how to browse the web on his “dumb” cell phone.  That will be the subject of the next post in this series.

How to teach computer programming to kids (Part 4) C#

Day 605 of 1000

This is the fourth in a series of posts on how we taught our children to program, what we did wrong and how we think we could have done better.  You can see the introductory post and index to the series by clicking here.

[Previous post]
[Next post]

Beginning C# Game ProgrammingAt the beginning of the school year, just before Christian turned 11, we decided it might be a good thing for Christian to learn a object-oriented, non-garbage collected language with a lot of libraries and support.  The three obvious choices were Python, C#, and Java.  If I had to do it again, I probably would hanve started Christian with Python or Java, but I was doing some work in C# on Windows for my job at the time and was playing with Mono (a cross-platform C# implementation).

I wanted Christian to work toward the ability to program something in which he was interested so when I found Beginning C# Game Programming, it seemed a good fit.  The first few chapters explained the concepts of object oriented programming and the C# programming language.  Visual Studio Express, Microsoft’s Integrated Development Environment (IDE) for learners and hobbyists had come out not too long before this, so I spent a couple of hours on a Saturday downloading the program with Christian and showing the fundamentals of how to write, build, and run a “Hello, World!” program.

Next, as part of Christian’s daily homeschool plan, I assigned him to work on C# for fifteen minutes per day.  I wish I could say I assigned the work as part of a rigorous, well-thought plan to teach Christian to program, but the reality is that I assigned it to him because he was excited about learning to program.  I was more concerned that he focus on Literature, Writing, Math, and Science than programming.  We spent a lot more time on those core materials than his programming efforts.

The reality is that all I really did in terms of “teaching” him anything about programming (and I use the word “teaching” very loosely here), is review where he said he was in the book, quiz him a little bit about the concepts in that part of the book, look at how his program ran, and give him a few hints about coding style.  He was on his own with this.  The amazing thing is that he came away with quite a good understanding of Classes, Objects, Encapsulation, Inheritance, Polymorphism, and the concepts of Object Oriented Programming, as well as a pretty good knowledge of how to make things happen in a C# program.

Christian followed this program for about five months to get through the first four or five of chapters of the book.  The reason we stopped and moved on to something else is because Christian’s excitement diminished after about four months.  After that, we stopped programming for awhile so Christian could work on other computing projects.  It was a great exercise that was just long enough to keep a 11 year old kid interested.  Again, if I had to do it over, I would do it differently and will explain how I might have done it in one or more later posts.

How to teach computer programming to kids (Part 3) Dillo (Compiling and Linking)

Day 602 of 1000

This is the third in a series of posts on how we taught our children to program, what we did wrong and how we think we could have done better.  You can see the introductory post and index to the series by clicking here.

[Previous post]
[Next post]

In the previous post in this series I explained how Christian got his arms around the software build process using the configure, make, make install process.  A good example of how he got pushed through this learning process occurred on a trip we took to Monterrey, Mexico to visit the kid’s Grandparents when Christian was ten.  The only computer we had to take on the trip was a Dell 1300 that did not have too much power nor too much memory.  The computer was dual-booted to both Windows and Linux.  Christian had a very lightweight browser for Linux called Dillo that did not use very many resources.  It ran in Linux, but not in Windows.  Because of the lack of resources, Christian wanted to be able to run Dillo on Windows, too.

Dillo was made to be used on Linux, so Christian started digging around and found some instructions on how to compile the program for Windows.  Here is a website that has instructions on how to do exactly that.  The problem was that, in 2005, the instructions were not so good.  The normal configure, make, make-install process did not work, so Christian had to look for resources on forums to figure out how to get Dillo to compile and link properly.  The support libraries were not quite right and there were tons of problems.  Christian spent most of the time in Mexico when he was not playing with his cousins trying to build Dillo for Windows.  The make files hold commands that perform the compiling and linking of the program.  He had to learn exactly how the compiling and linking worked to modify the make files properly.  He made some major breakthroughs and felt like he was almost there when we had to pack up and go home.

Even though he was not ultimately successful in making Dillo run, he says this set of events helped him learn more about compiling and linking than anything else he had done before or has done since.  He had to dive into the make files to change the order of the internal commands, learn the structure of folders that held support libraries, and generally just learn a lot of minutiae about the compiling and linking of a fairly large program.  The reason he could stick to it was that he had a goal that he wanted to accomplish.  I think that is a very important principle with respect to learning to program.  It is also the reason class-based learning (of programming in particular) can be very ineffective.

How to teach computer programming to kids (Part 2) Working with Linux – Compiling and Linking

Day 601 of 1000

This is the second in a series of posts on how we taught our children to program, what we did wrong and how we think we could have done better.  You can see the introductory post and index to the series by clicking here.

[Previous post]
[Next post]

We think it was about 2005 when Christian was ten years old or so that he really took an interest in how software works on a computer.  I am not talking about how to use software on a computer.  I am talking about how it actually works.  We had an old Dell Desktop (I forget the model) with Ubuntu Linux installed on it.  All Christian wanted to do at first was install some games and some drawing and rendering programs.  The way you did that with Ubuntu is through the use of a GUI front-end program called Synaptic that managed program installation, updating, deleting, etc. using a program tool called APT (Advanced Packaging Tool).

He got pretty good at that, but the computer was so limited in its capabilities and resources he would often get stuck.  This led him to the use of Google to find answers to his questions about how to get unstuck. The problem was that he often stayed stuck because there were no good answers on the internet, even after a thorough search.  The next step, then, was to ask experts on forums like Ubuntu Fourms.  The answers often came in the form of a command line (non-GUI) process where he had to open up a console to get a command prompt so he could follow the procedures he was given.  Little by little, he got proficient at using the Linux command line to run APT and other utilities, getting help from man pages, and learning Linux’s basic directory structure.

Next, he started to run into programs that were not set up for installation via APT, so he learned how to install programs from the source code.  The way it works is that a program’s source code, usually C/C++ is downloaded from the internet.  It is set up for the computer on which it will be installed and customize for the needs of the user by running a program called configure.  Then a program called make is run to compile and link the program which creates the binaries (the actual file(s) that will run the program).  Finally, make is run again, but with the word install after it so that the program will be moved to the correct folder in the Linux file system so that the user will know where and how to start the program and the program will know the location of other files it needs to run properly.

The set of steps listed in the previous paragraph–configure, make, make install–is the normal procedure used to take programs written in C/C++ as text files, turn them into programs that will run on a computer, put the files in the correct folder on the disk drive, and assure all additional files required to run the program are in the right place.  Sometimes the names of these steps change depending on the computer, operating system, and other factors, but the process is essentially the same.  The problem is that the configure, make, make install process hides compiliation and linking from the user.  That is a good thing most of the time, but a person who wants to learn how to program needs to know how to compile and link a program, not just follow the cookbook configure, make, make install process.

Fortunately for Christian, the configure, make, make install process, for some fairly technical reasons, did not allow him to control the installation of the programs he wanted to run in the way he wanted to run them.  Specifically because of that, he started to read and learn about the compiling and linking process.  For some programs, there are heavily documented, step-by-step procedures to walk through that process.  This helped him understand how a program called a compiler takes a text file that holds a C/C++ program and converts it into a binary file and how a second program called a linker takes that binary file and links it to other program files that it needs to run properly.

It is not possible to program without knowledge about how to perform compiling and linking.  This can be hidden from the programmer in something called an Integrated Development Environment (IDE) which we will talk about later, but it is best to get started just the way Christian got started, learning the command line usage of the compiler and linker because this gives a much better understanding of the process needed to test and run a hand-written computer program.

All of the above happened under my radar.  At first he did this to get games and drawing programs running, but eventually, he just wanted to learn more about how Linux and the programming process worked.  All I really did in this process was provide a ten year old boy an old, piece of trash computer that had no programs on it that interested him.  He did the rest.  I am not sure how I would have taught this to him in a structured way, but I will take a stab at explaining how that could be done toward the end of this series of posts.

How to teach computer programming to kids (Part 1) Introduction

Day 598 of 1000

This is the first in a series of posts on how we taught our children to program, what we did wrong and how we think we could have done better.  You can see the introductory post and index to the series by clicking here.

[Next post]

We have two children.  Christian was very interested learning to program at a young age.  Kelly was not interested at all.  We systematically taught Christian how to program as part of his homeschool curriculum so that he was able to get an summer internship as a programmer by the time he was 15.  Even though he has sound programming skills, looking back, we think we could have done a better job.  Kelly, even though she was disinterested, would have benefited greatly from some computer programming instruction.   This series describes what we did well, what we did poorly, and our idea of what we would do if we had to do it over.

We started to teach Christian to program when he was about 11 years old.  He actually worked on some operating system stuff both for PC’s and his Palm Pilot before that.  Kelly did not start to learn programming until she was 18 (this year) in SAS and Java courses at college with the exception of some work with the R statistical programming language last summer.  We think we did a good job with Christian and a horrible job with Kelly even though she is turning into a pretty good programmer.  Christan is a proficient programmer in a number of languages including C#, C/C++, Python, Java, and assembly language.  He completed one fairly impressive project, a couple of medium size projects, and is currently at work on a technical assembly language program as part of an undergraduate research in Electrical Engineering.  Even though Kelly does not want to program for a living, as a statistician, she has seen she needs programming as a skill that will help her.  She is pretty unhappy that we did not at least give her some of the basics.

The following is a list of posts I plan to make.  The list will probably morph a little as I progress and grow to as long as it needs to be.

Christian at the Spring 2013 NCSU Undergraduate Research Symposium

Day 597 of 1000

Christian at the Spring 2013 NCSU Undergraduate Research SymposiumChristian dressed up today to go to the McKimmon Center at NCSU to show off a poster he made for the Spring 2013 Undergraduate Research Symposium. He made the poster for his work at NCSU’s Optical Sensing Laboratory where he is designing, building, and characterizing a Black Body Source for infrared camera and spectrophotometer calibration under the Tutelage of Dr. Michael Kudenov.  I think Christian was a little nervous when the thing got started, but he texted me that a lot of his buddies were there with him, doing the same thing.

Christian did not really have much to show because this is the first semester of a two semester project.  He is just getting started building the device and has programmed (in assembly language) some basic functionality into it.  When we get back from California at the first of June, Christian will devote about six hours per day to this project until it is complete.  He hopes to be able to present some good data and a manual that explains how to build and use the device.  The big deal about what he is doing is not so much about what it does, but what it does for less than $1000.  I am looking forward to seeing how this all turns out.

Christian’s first undergraduate research poster

Day 593 of 1000

Christian's undergraduate research posterChristian created the poster in the image to the right to describe his undergraduate research.  This is first of the two semester he will spend working on the project.  A poster is required for each semesters.  He will present the poster and describe his work for the poster at a symposium on Wednesday morning.  Here is the poster abstract:

Spectrophotometers and infrared cameras are widely used for non-contact temperature detection. These devices have been applied to manufacturing processes monitoring in industry Bnight or smoke vision systems for the police, firefighters, and military, and many other places. However, the sensors need to be calibrated to their surroundings to collect useful information. This calibration can be performed by metering the camera with respect to a light-absorbing surface with constant temerature and constant electromagnetic emissions.  This project involves building and testing a planar metering source for the described equipment which maintains enough temperature precision to allow accurate temeprature calibration while maintaining lowcost.

Figuring out how to program Android phones

Day 584 of 1000

Yesterday I wrote about a series I plan to write on how Christian learned to program during homeschool.  My buddy, Conrad wrote a comment about how he was interested in programming Android phones.  That very same day, another friend and I went to lunch to talk about a little Android programming project.  I have always used Eclipse to program Java in the past, but my friend pointed me to about a free, open source IDE for Java called Intellij IDEA Community.  I downloaded it, installed it, and had my first application up and running in an emulator in short order.  I will see how long it takes me to figure out how to get it running on my Samsung S III.  I think I am going to move over to that environment for awhile to see what I think.  My plan is to port BleAx to a cell phone and this might help me kill two birds with one stone.

Intellij IDEA Community edition

Computer programming for kids – a new series of posts

Day 583 of 1000

It is my daughter, Kelly’s, birthday today.  She is now a 19 year old Statistics major at North Carolina State University and is taking her first two formal programming classes, Statistical programming with SAS and Java.  She has also programmed with the R statistical programming language.  She enjoys programming a great deal, but is a little frustrated with her Java class.  Kelly is not frustrated with the material; she enjoys that.  She is frustrated because I taught a lot of programming to Christian, but virtually none to Kelly.

She said, “Dad, why did you teach Christian how to program and not me?”

I said, “Because you enjoyed other stuff like art and crafts and Christian wanted to know how to program his Palm Pilot.”

She said, “You should have taught me, too.  I need to know how to program now and I am having to learn it from scratch.”

“You really have to have something you want to do with programming or it is really boring,” I replied.

“You made us do Mavis Beacon Typing 15 minutes every day for two years and we didn’t have any real use for it until years later.  It was really boaring at the time, but got A LOT out of being able to type faster and better than everyone else.  We are really glad you made us do that.”

All this was true.  I think I failed Kelly in this.  Christian learned how to program on his own, but I bought him the learning materials, made computers available to him, and vmade a program of study that was both systematic and and integrated part of his homeschool curricula.  The reason we did all this for Christian was because he had something he wanted to accomplish. I should have thought to teach them both how to program whether they wanted to or not.  The program we put together for Chrisian has given him a huge leg up both in class and with work opportunities.  Any student who plans to get a hard (STEM) degree, would benefit from such a study program.  I am just sorry I did not do this for Kelly.

I have decided that, when I finish my current series on Why not skip high school?, I will write a series on how we taught Christian to program.  I will link to that series from this post as soon as it is started.

Do I need a “smart watch?” The Pebble, Samsung, and Apple

Day 577 of 1000

My buddy, Brad's very cool Pebble E-Paper Smart WatchMy buddy, Brad, at Bioptigen signed up to get one of the first E-Paper smart watches on Kickstarter. He wears it all the time, probably to the make the rest of us envious, but mostly because it is very cool. It sounds like it has some pretty amazing features, but that is not really the point. Being very, very cool is sufficient reason to wear the thing at this stage in the game. The use of E-Paper is brilliant. It uses very little power.

This was such a great idea that the big boys are actively developing products to compete with the Pebble. Samsung has announced they have had 100 people working on it for awhile. Apple is working, on it too. This is classic.  There is an earlier innovator bringing creative and fun new product to market.  The big businesses see and opportunity now that the smart phone market is moving toward saturation.  There should be lots of competition and invention that will benefit the consumer with fun and cool new products and features.  This is going to be a fun ride.  

Working with Ubuntu again

Day 417 of 1000

Christian has been stressed out about a test he took about a week ago.  He was pretty sure he was going to get a score of about 70%, but was hoping for 80%.  He messaged me today that he got a 94%.  We were both happy.  I am happy about something else.  I have spent a lot of the day loading a Linux development environment into a virtual machine on my computer.  That is part of my job!  I have to pinch myself when I think about what I am doing for a living.  It does not get much better than that.

I have been pretty down on the change to Ubuntu Unity from the normal desktop that they had previously, but after talking to my buddy, Andrew about Windows 8 and Android, I realized there is a pretty big shift in desktop architecture going on and I better get on board or I would be left behind.  Thankfully, I have a very cool project going on with Linux and the Microsoft Kinect right now, so I decided I would do the development on a Linux platform rather than Windows.  I am not all the way to loving the whole new Unity thing, but I am to the point where I can see it is really not so bad.  Give me a few more days and I might really love it.  I will keep you posted.

Electrical Engineering 200 – Signals, Circuits, and Systems

Day 390 of 1000

Christian's cool stuff for his Electrical Engineering LabThe UPS guy brought a box of very cool stuff to the house yesterday.  It is all the stuff Christian will use in his first Electrical Engineering lab class.  The capstone project in the class is the building of a voltage regulator.  I have VERY fond memories of my Electrical Fundamentals class at Oregon Institute of Technology back in the 80’s.  I have to admit I was pretty envious when I saw the box.  It had capacitors, resistors, a breadboard, wires, and a ton of other stuff only an EE geek could appreciate.

Most of the guys in a class also bought a soldering iron and some flux core solder, but we had one left over from the radio kit we tried (and failed) to assemble and get to work.  We could probably still get it going, but it would be a royal pain.  Still, Christian got a ton of practice soldering and playing with components.  That should help him a ton in his class.

The class he is in is an analog class.  I hope he gets to do a digital circuit design class before he is done.  That was wildly fun.  I think, though, that era has passed.  Now they learn how to program FPGA’s.  That would be fun, too.  Maybe they have a class at the community college that I could take in the evenings.  As if I have enough time while I am trying to pay for college.

Christian’s Hovercraft YouTube Video

Christian’s YouTube video on how to make a hovercraft is now up to 65,638 hits.  We are amazed it has been going.  He put it up on YouTube when he was 12, so he has been getting over 15,000 hits per year.  If it slows down to 10,000 hits per year, he should hit 100,000 by the time he is about 21.  It is a fun video with lots of comments.  We would really like to do another one, but we need to have just the right project.  We are thinking about it.

Page 7 of 9

Powered by WordPress & Theme by Anders Norén