I realize it’s just me and the plethora of SpamBots that flood my blog, but that’s by design. In the coming months, as I fight through the completion of my thesis and grad school, I want to deliver on some of the promises I’ve made in the past, but haven’t had the opportunity to do so, because of limited time and other prior engagements.
The following is an outline or a promissory note of sorts, that details what I hope to accomplish for TheKlog in 2012. Hopefully, in due time, we’ll have regular visitors who find the information on here relevant to the work they do and can become contributors through commentary and/or posts.
Windows Embedded Compact 7:
- I have a wealth of information on Windows CE development and that includes a TON of notes on how to implement features that are common to Win32 developers alike. Obviously, there’s nothing out of the ordinary here, but what I want to do is give you, the reader, some of my own knowledge on what I’ve acquired over the course of seven years working with Windows CE directly in a format that’s easy to read and follow. Now, I realize that Windows CE has been phased out, BUT, if you’re still an Embedded Developer, then this might matter :
Windows Embedded Compact 7 Links:
- http://www.microsoft.com/windowsembedded/en-us/campaigns/compact7/default.aspx?WT.mc_id=van_c7
- http://www.microsoft.com/windowsembedded/en-us/evaluate/windows-embedded-compact-7.aspx
- http://msdn.microsoft.com/en-us/library/gg154234.aspx
iPhone Development:
Over the course of six months, I’ve gained a lot of appreciation for the Objective-C language and I’m on the verge of completing my first application that will be submitted to the App Store under the auspices of Korwing (more on this later). Like my Windows CE notes from above, I want to provide concrete examples of the features I’ve worked with on my personal project. Hopefully these can give you some insight on the work you’re doing.
Android Development:
Towards the middle of the year, I’ll have a series of web videos that get into Java development with a heavy emphasis on Object Oriented programming. These videos are intended to reinforce and expand not only my limited knowledge of the Java language, but also yours as you consider working with the Android Framework. Some people have made it appoint to become developers without fully appreciating what the language has to offer. The problem with limited knowledge is that your programs are not as efficient as they should be, especially for mobile systems that have limited memory and are powered off a battery. True, the framework handles a lot of the nitty gritty details, but you’re still responsible for writing logical code that remains secure by design. Also, just because you can get a program out to the app store doesn’t necessarily make it an instant seller. Top selling apps are from those developers/companies who have taken the time to fully plan out their applications and design with care in mind. It pays to be thorough in your attempts to program, and I try to cover as many facets when doing so.
Git:
Along with any projects, you should become familiar with proper documentation and source code management. I’ve become a major advocate of SCM tools, especially Git. I’ll try to post some of my notes to help you get started.
Computer Architecture:
This is an engineering endeavor and my passion to teach will hopefully be exemplified as a worthy attempt to give current students in Computer Engineering a detailed yet ongoing discussion on the following topics:
- Computer Architecture – Introduction to CPU design. I’ll cover all the basics including terminology, performance, instruction design, arithmetic unit design, processors, pipelining, data and control paths, hazards, memory hierarchy, cache, virtual memory, cache coherence, disk storage, multicore and parallel processing.
- VHDL – The main project will involve designing an RTL based 32-bit RISC CPU. We’ll define a proper Instruction Set and work on the assembler that’ll become the basis of our tiny compiler for a simple programming language that we’ll define later using EBNF and programming it in the C language.
- Compiler Design - I’ll show you how to create a simple yet effective parser and syntax analyzer for our yet to be defined programming language. I’ll introduce you to Extended Backus-Naur Form (EBNF) to help define the tokens and lexemes for our language.
- C for Samurais – To be able to implement the compiler, you must become fluent with the C language. To become comfortable as a serious programmer who’s designing his/her own language, you need to have some idea of hardware. At this phase in our study, you will have already become accustom to the specific hardware we’re targeting: our 32-bit RISC CPU. This knowledge will only fortify your abilities in programming across many types of CPU’s. Therefore, this shouldn’t concern you once you get to this stage. However, what should concern you is how to manipulate data structures like linked lists and binary search trees to help you build your parser and analyzer, yet do it with performance in mind. Therefore, I need to familiarize you with Algorithm Design and how its execution is dependent on time with some important examples.
All of the material discussed will be covered sequentially. Most of my own research in the subject will be transcribed as notes to help teach you overtime. This is not a one month process. We’re talking a multi-year venture that will definitely take time to complete, so hang in there. I’m working on this.
kor