Undocumented Matlab
  • SERVICES
    • Consulting
    • Development
    • Training
    • Gallery
    • Testimonials
  • PRODUCTS
    • IQML: IQFeed-Matlab connector
    • IB-Matlab: InteractiveBrokers-Matlab connector
    • EODML: EODHistoricalData-Matlab connector
    • Webinars
  • BOOKS
    • Secrets of MATLAB-Java Programming
    • Accelerating MATLAB Performance
    • MATLAB Succinctly
  • ARTICLES
  • ABOUT
    • Policies
  • CONTACT
  • SERVICES
    • Consulting
    • Development
    • Training
    • Gallery
    • Testimonials
  • PRODUCTS
    • IQML: IQFeed-Matlab connector
    • IB-Matlab: InteractiveBrokers-Matlab connector
    • EODML: EODHistoricalData-Matlab connector
    • Webinars
  • BOOKS
    • Secrets of MATLAB-Java Programming
    • Accelerating MATLAB Performance
    • MATLAB Succinctly
  • ARTICLES
  • ABOUT
    • Policies
  • CONTACT

2014 perspective & plans for 2015

January 7, 2015 No Comments

With 2014 behind us and a fresh 2015 ahead, it is time again for a short look at this website’s achievements so far, and plans for the future.
I started this blog back in 2009, expecting the website to become just another a niche blog with a few geeky followers. 300 posts, 2800 reader comments, and 800K unique visitors apparently prove that Matlab’s advanced/undocumented features are important to a large portion of Matlab users. My pipeline of future articles continues to grow along with all other measurable quantities of website traffic.

Stats for nerds (and potential advertisers…)

Interest in this website grows steadily, continuing the trend from past years. To date, 794,000 unique readers, in 1.4 million visits, have read 2.5 million pages. The site’s audience grew, reaching over 11,000 unique visits (plus ~2000 RSS and email subscribers) per week. These figures are up about 40% from last year, a solid growth rate that keeps surprising me. In the following graph, the traffic dips are due to the annual December holidays. The growth trend is quite evident:

Steady readership growth (click for details)
Steady readership growth (click for details)

At the current rate, sometime in 2015 this blog will pass the million-visitors mark. How significant are the absolute numbers? I believe that my 2012 analysis still remains valid, so please refer there.

2014 in review

In 2014, I published 40 articles, including:

  • several posts on customizing Matlab GUI: using an animated busy (spinning) icon, setting Matlab callbacks for Java events in R2014a, using Java GUI in deployed Matlab apps, using a CheckBoxList, customizing listbox/combo-box items and customizing combo-box popups.
  • several posts on Matlab’s new graphics engine (HG2): axes properties part 1, 2, 3 and 4, transparency & color gradient of plot lines and plot markers.
  • a few posts on undocumented aspects of the standard HG system: transparency of uicontrols and uipanels, taking figure/axes screen-captures, button uicontrol highlighting, customizing bar plots and property value change listeners.
  • several posts on Matlab-Java aspects: assessing Java object size in Matlab, Java class access pitfalls, checkClass, using a CheckBoxList and using Java GUI in deployed Matlab apps.
  • several posts on integration with external libraries: integrating Plotly charts in IPython Notebook and JSON-Matlab integration.
  • during 2014, MathWorks have improved the appearance of their blogs section and added a new Matlab Examples section. I also wrote on Matlab’s new online edition.
  • a couple of other posts, on serializing/deserializing Matlab data, workarounds for non-Latin strings, the undocumented features list and class-object tab completion.
  • multiple performance-related articles: Improving Simulink performance, using multi-threading in Matlab (part 1, 2, 3 and 4), parallelized Matlab (standard and using memcached), uicontextmenu performance, function-call timeline profiling and the savezip utility.
  • last but not least, a post on my new book, Accelerating MATLAB Performance. This book took me two years to write and another year to prepare for publication, and I’m really proud of the result.

As can be seen, quite a few posts deal with performance, which is one of my favorite topics, and the topic of my latest book. I expect to post more articles on this topic in 2015.
Writing a well-researched article takes time and effort. Unfortunately, I wasn’t able in 2014 to keep the pace of a weekly article from past years, as you can see from the summary list (Archives) on the right. I hope I’ll be able to do better in 2015. There’s no shortage of material, only too few hours per day and too few days per week…

Guest bloggers

2014 continued the trend in previous years of hosting articles by guest bloggers:

  • Robert Cumming wrote about uicontextmenu performance and transparency in uicontrols.
  • Andrey Dimitrov showed how to integrate Plotly charts in IPython Notebook.
  • Mark Mikofski discussed using memcached for inter-Matlab data transfer.
  • Karthik Ponudurai explained how to use pure Java GUI in deployed Matlab applications.

If you have any Matlab topic with an undocumented twist, I will be happy to post your contents here as well. Don’t be shy – email me (altmany at gmail) and I’ll help with the details.

Plans for 2015

I plan to continue posting about undocumented aspects of Matlab. Specific plans include additional articles on HG2 and performance aspects. I also hope to cross out additional items in my TODO list. Two long-overdue mini-series that I hope to get around to, are about Matlab-database connectivity and Matlab’s new toolstrip/ribbon.
Concurrently with the posts, I will continue to provide professional Matlab consulting and contract work for clients. If you have an interesting project that could use professional Matlab programming, please let me know.
In addition, I plan to develop commercial connector products to a couple of online services. My IB-Matlab product (connecting Matlab with Interactive Brokers) is very popular and I hope to have time to release other similar products.

Training

Finally, I plan to continue providing advanced Matlab training courses/seminars. During the past year I provided customized on-site training courses in multiple locations, including Norway, Germany, Switzerland, Israel and USA.
If you are dealing with any advanced Matlab programming (if you read this blog then you probably do), consider inviting me for custom on-site training to improve your team’s capabilities. This is a unique opportunity to enhance your Matlab skills in a few days, at an affordable cost, by an established expert. If you have a specific topic that you would like me to discuss, then I would be happy to do it. In other words, I can customize the training to your specific needs, within the provided timeframe. Such advanced training is not provided anywhere else, and you’d be surprised at how cost effective this could be. If you are interested, please email me (altmany at gmail) for details.
Happy 2015 everybody!
– Yair Altman

Related posts:

  1. 2013 perspective & plans for 2014 – 2013 has seen a continued steady growth in website content and readership. This post takes an overview of past achievements and future plans. ...
  2. 2012 perspective & plans for 2013 – 2012 has seen a continued steady growth in website content and readership. This post takes an overview of past achievements and future plans. ...
  3. 2011 perspective & plans for 2012 – 2011 has seen a continued steady growth in readership of this website. This post takes an overview of past achievements and future plans. ...
  4. 2010 perspective & plans for 2011 – 2009 and 2010 have seen steady growth in readership of this website. This post takes an overview of past achievements and future plans....
  5. USA visit, 22-31 July 2014 – I will be visiting some US cities on July 2014. ...
  6. Customizing Workspace context-menu – Matlab's Workspace table context-menu can be configured with user-defined actions - this article explains how....
Print Print
« Previous
Next »
Leave a Reply
HTML tags such as <b> or <i> are accepted.
Wrap code fragments inside <pre lang="matlab"> tags, like this:
<pre lang="matlab">
a = magic(3);
disp(sum(a))
</pre>
I reserve the right to edit/delete comments (read the site policies).
Not all comments will be answered. You can always email me (altmany at gmail) for private consulting.

Click here to cancel reply.

Useful links
  •  Email Yair Altman
  •  Subscribe to new posts (email)
  •  Subscribe to new posts (feed)
  •  Subscribe to new posts (reader)
  •  Subscribe to comments (feed)
 
Accelerating MATLAB Performance book
Recent Posts

Speeding-up builtin Matlab functions – part 3

Improving graphics interactivity

Interesting Matlab puzzle – analysis

Interesting Matlab puzzle

Undocumented plot marker types

Matlab toolstrip – part 9 (popup figures)

Matlab toolstrip – part 8 (galleries)

Matlab toolstrip – part 7 (selection controls)

Matlab toolstrip – part 6 (complex controls)

Matlab toolstrip – part 5 (icons)

Matlab toolstrip – part 4 (control customization)

Reverting axes controls in figure toolbar

Matlab toolstrip – part 3 (basic customization)

Matlab toolstrip – part 2 (ToolGroup App)

Matlab toolstrip – part 1

Categories
  • Desktop (45)
  • Figure window (59)
  • Guest bloggers (65)
  • GUI (165)
  • Handle graphics (84)
  • Hidden property (42)
  • Icons (15)
  • Java (174)
  • Listeners (22)
  • Memory (16)
  • Mex (13)
  • Presumed future risk (394)
    • High risk of breaking in future versions (100)
    • Low risk of breaking in future versions (160)
    • Medium risk of breaking in future versions (136)
  • Public presentation (6)
  • Semi-documented feature (10)
  • Semi-documented function (35)
  • Stock Matlab function (140)
  • Toolbox (10)
  • UI controls (52)
  • Uncategorized (13)
  • Undocumented feature (217)
  • Undocumented function (37)
Tags
ActiveX (6) AppDesigner (9) Callbacks (31) Compiler (10) Desktop (38) Donn Shull (10) Editor (8) Figure (19) FindJObj (27) GUI (141) GUIDE (8) Handle graphics (78) HG2 (34) Hidden property (51) HTML (26) Icons (9) Internal component (39) Java (178) JavaFrame (20) JIDE (19) JMI (8) Listener (17) Malcolm Lidierth (8) MCOS (11) Memory (13) Menubar (9) Mex (14) Optical illusion (11) Performance (78) Profiler (9) Pure Matlab (187) schema (7) schema.class (8) schema.prop (18) Semi-documented feature (6) Semi-documented function (33) Toolbar (14) Toolstrip (13) uicontrol (37) uifigure (8) UIInspect (12) uitools (20) Undocumented feature (187) Undocumented function (37) Undocumented property (20)
Recent Comments
  • JCFL (1 day 1 hour ago): I was trying the above trick to change the transparency of contour lines and wondering why not all the lines have changed — then I found your post. Thanks and your post saved me.
  • Patrick Fitzgerald (3 days 5 hours ago): Just a heads up to anyone else digging around for help related to this: if you assign BackrgoundColor to a pushbutton-style uicontrol, it seems to prevent you from...
  • Vasiliy (19 days 0 hours ago): Hi Yair, i’m trying to use the MonthChooserPanel class. com.mathworks.mwswing.MJUtilit ies.initJIDE; handles.jPanel = com.jidesoft.combobox.MonthCho oserPanel;...
  • DM (19 days 0 hours ago): Hi Yair, I’m trying to use the MonthChooserPanel class. com.mathworks.mwswing.MJUtilit ies.initJIDE; handles.jPanel = com.jidesoft.combobox.MonthCho oserPanel; [handles.hPanel,...
  • Yair Altman (22 days 17 hours ago): @Alex – thanks, but keep in mind that new functions will only work on the recent Matlab releases. If your code needs to work on older Matlab releases, you could revert to...
  • Alex Churchill (22 days 17 hours ago): I was looking up how to do this exact task today. I was about to hold my nose and use the internal controllib function, when I happened to chance across a slightly newer...
  • Sebastian Hölz (28 days 23 hours ago): I have not investigated this in detail, but I think one way to go in new versions of Matlab (>2019b) might be to use listeners to suitable figure properties, e.g. fig =...
  • Prathep (29 days 2 hours ago): Hi Yair, Thanks for your introduction on Matlab Toostrip. Is there any way to add Matlab toolstrip for uifigures as you have done already for figure?
  • Josh (35 days 9 hours ago): Dear Yair, Small typo; you wrote >>Move lines up or down – CTRL + ALT + UP or DOWN allows you to move selected lines up or down but it’s actually ALT+SHIFT then UP/DOWN...
  • Yair Altman (42 days 3 hours ago): You can try to increase the Java heap memory size in the Matlab preferences (General => Java Heap Memory). Any changes to the settings will only take effect after restarting...
  • Thomas (42 days 5 hours ago): Hello, thanks for sharing! I currently receive the following memory error message when using savezip with a big object (Matlab R2020b, Windows 10). Error using...
  • Yair Altman (45 days 12 hours ago): Yerlan – either use menuItem1.setEnabled(0) or set(menuItem1,'Enabled',0)
  • Manzn (45 days 15 hours ago): Thank you man! you saved me, when there was no more light 😀
  • Yerlan (46 days 20 hours ago): Hello Mr. Altman, how can I disable menu items in the context menu? E.g. when I am trying to do this: menuItems = jmenu.getSubElements; menuItem1 = menuItems(1);...
  • Yair Altman (47 days 12 hours ago): Thanks for the note Eric – you forgot the crucial call to jTable.setLabelTable(labelTabl e) – I added it into your code snippet above.
Contact us
Undocumented Matlab © 2009 - Yair Altman
Scroll to top