Another year started. Been so busy in the past month that I was unable to articulate some thoughts on my plans for 2013. This helps bringing some structured approach and — having a tendency to do many things at a time — should provide some prioritization.
First, I would deepen my knowledge. In programming, in electronics and project management. On the latter, I really need to pursue a certification in Agile and Scrum. On the former, this blog will help. So, one thing to do: to read more.
Learning, reading, exploring
- To bring my objective-c knowledge to an expert level;
- To improve my skills in C and C++
- To start exploring C# and programming for windows; this becomes more and more important due to some tasks at office that I need to complete;
- To finish reading all books I have purchased so far for my kindle, including essays, history and other stuff (not only programming);
One important thing to do is to pull myself together and bring at least one new post on this blog weekly, on a major topic. That means to write a tutorial–like post that explores one or many programming topics. In this area, for certain, I have to continue the NSOutlineView Inside Out series, but not limited to this:
- To write a tutorial on cocoa delegates; already started, probably due next week.
- To write an article on memory management; already started, probably due next week.
- To start a series on using C++ with XCode projects; not started.
- To write an article on using Apple Instruments for application profiling and performance–tuning; already started, probably due next week.
- To start a “Code Snippets and Hints” series, with small articles on very narrow topics; like, for example, to provide snippets of
attributedSubstringFromRange:or other classes instance methods; see below. that’s an older idea I had while reading apple documentation, for each instance method to write an example.
- To start a series on class clusters; not started.
That is just a limited list, but a good start. On the reading side, I have to finish these books (some to start and finish, some I haven’t even started to read, but all bought so it’s a pity):
- Programming in Objective-C (5th Edition) by Stephen G. Kochan; reading.
- Advanced Mac OS X Programming: The Big Nerd Ranch Guide (Big Nerd Ranch Guides); reading.
- OS X and iOS Kernel Programming by Ole Henry Halvorsen and Douglas Clarke; reading.
- C Primer Plus (5th Edition), by Stephen Prata; not started.
- Test-Driven iOS Development, by Graham Lee; this is very good for OS X too; reading.
- Mac OS X Internals: A Systems Approach, an fabulous book by Amit Singh, unfortunately a bit outdated but still valuable; reading.
- C++ Primer Plus (6th Edition), by Stephen Prata; not started.
- Practical C Programming, by Steve Oualline; excellent pocket reference; reading.
- Replace third-party SEO plugins I have on this blog with my own; not started, see below.
- Finalize blog theme and get rid of all nagging bugs (formatting the social section, having a better comments section, finalize the layout and UI re–skinning); in progress, see below.
- Finalize the MacScope project; in progress — see below; I did not even start to write about this, even if the progress on the coding side is much advanced than for the logic analyzer;
- Finalize the USB driver for my MacScope/ MacLogic projects; in progress.
- Finalize the MacLogic project; took a very long break from this, time to get back to it !
- Blog: keep this sustained — one tutorial per week and daily code snippets and hints; tutorials should not be limited to programming;
- Finish my first FPGA project; should be very simple — a starter on this path; but should work; moreover, this should be reused for the MacScope and MacLogic projects.
- Finish the USB driver project; not even started to write about this too;
- Most importantly — document all project progress and write blog entries on interesting topics; “interesting” to be defined. 🙂
For some time I have used some third-party plugins for SEO. As I noticed an increase in the traffic to my blog, I thought initially that this is due to the SEO. But several days ago I read more about how this is done today and how search indexing works for major search engines like Google, Bing etc. I can say now that more complicated the plugin is, less advantage I get from it and the mandatory features that have to be provided by good SEO practice are very few. Thus, I will probably replace all plugins that I have now with one written by myself and use this on a permanent basis. Moreover, one thing that nags me on these plugins is the fact that they constantly insist on adding meta tags and other crap in the code, to clearly and proudly announce the world that they are doing this. Some have links and ping backs to sites that are at least questionable and create an overhead that I don’t need.
Updated blog theme
After a failed, first attempt, I have to get back to the drawing board and change the theme. I am based on the available twenty-ten theme from WordPress default collection that is a very good starting point. And actually very well done. I have already done some changes, but still there is a long way to go.
When I started the logic analyzer project, I realized that I did not have enough knowledge on some complex programming concepts. Since it seemed to be easier to try a simplified approach with analog signals, I have started a parallel project called MacScope. The objective was to create a very simple oscilloscope software that received and process signals via USB. I have managed to reach some progress (see image below), but still there is a long way to go.
However, this is a project that make me learn a tremendous amount of programming topics so I will probably share many code snippets and other details that might be of interest. As one thing leads to another, this prompted me to get deeper into USB driver programming and related topics.
This list is minimal and will be a good reference for me when I have to draw a line at year’s end. Given the challenges I face on the office front, I have to keep this as small as possible in order to be achievable. Looking forward, see what 2013 will bring.