Author: admin

  • Building Adafruits Ice Tube Clock

    As I’ve already hinted on in the past weeks I’ve tackled and completed one of my planned mini-projects.

    I assembled the Ice Tube Clock from Adafruit Industries:

    From Building Ice Tube Clock

    This kit has been on my list for some time now, I stumbled over it on the internet two or three years ago and since that time I regularly checked if it was still available. After I finished my university degree the time was due and I ordered it the instant when there was one available at one of the distributors. When it arrived a few weeks later I prepared my soldering stuff and equipment and built it during two nights.

    As my last soldering has been already quite some while I decided to practice a bit with the Pi Cobbler which also arrived with the same order.

    From Building Ice Tube Clock

    When I was comfortable with soldering again it was time to unpack the parts of the clock and check if everything was complete according to the parts list.

    From Building Ice Tube Clock

    The soldering and building of the clock was pretty straightforward and easy. I carefully read the build instructions and had no trouble with the bending, soldering and checking the intermediate results. So here are just a few impressions from the build process. I also tried the suggestion to cut the wires of the VFD tube in different lengths, every wire a bit shorter than the preceeding one, before trying to thread them into the connector PCB. I think that this really helped a lot and made it much easier to finish.

    From Building Ice Tube Clock

    The last final steps could be completed similar to the previous ones. I only had some slight difficulties with the casing because I initially did not recognize the seperate page for the enclosure-assembling on the webpage but puzzled around a bit and eventually built it correctly without instructions. Manuals are for wimps 😉

    From Building Ice Tube Clock

    Setting the time and date finished off this neat project. Nice 🙂

    A few mini-statistics:

    • 6h effort in two nights
    • 43 parts assembled
    • 1.5m solder needed
    • 1 solder-accident (although easy to fix)

    Some possible improvements are still possible. Although I ordered the kit from a distributor in Italy it still contained only an american 9VDC power adapter. In my opinion shippings within Europe could already contain a proper european power adapter to spare the need for a US/EUR converter. Furthermore the assembly instructions on the webpage do not reflect the process 100% accurately but seems a slight bit outdated. For example there has been a change on the layout of the PCB as the capacitors C5 and C6 have a slightly different placement on the board than on the images in the solder instructions. Also the screws and nuts are not made of metal but of black nylon.

    In the end I enjoyed this mini-project very much. It’s comparable to the experience I had some time ago during finishing my Master thesis, where I had to code some stuff and had the feeling that I missed real deep code-writing at work. I also missed tinkering with stuff and crafting small things. Since finishing the clock I did also some mods for my mother. Enhancing an electronic candle which ran on a single CR 2032 for ~5 days to use two AA’s instead, running now the second week on the first cheap pair of batteries and still pretty bright.

    Currently I’m already planning my next electronics project. This time I will not take a kit which can be assembled by following instructions. Instead it will be something where I will have to deal with electronics, ICs and integration with my Raspberry Pi. And it will be not something which is build after instructions but will be designed by myself.

    But more on that in a later post…

  • Another year, another team

    The last few days at work in 2012 held another surprise for us. Well, more for the other members of my team because I got the informations a few days in advance. Because of the current project situation it was no longer possible to keep our team together in its current structure.

    We all knew that sooner or later one of our colleagues would leave the team and also start supporting other teams as Scrum Master as he has expressed his wishes and goals already some time in the past. Something similar applied to me (just not that openly) as I always communicated to my department leaders that if there is a project or team with the requirement of a Scrum Master who has also a proper technical background in development and there is no other possibility they could get back on me as a last resort. What only I knew in advance was that there were already restructuring plans emerging as the project situation could no longer afford our current team in its entirety. The large project we were working on ends with 2012 and will be continued (with a certain probability) earliest in February. And there are no other short-term projects available which could carry our team in the meantime. Furthermore other teams were also in need of new Scrum Masters and that was the the tipping point why not only my colleague is leaving my current team but also I have to leave it to support another team.

    The current team is left with two full time members, one part time member and one member on unpaid leave until March. It has been decided that it will be merged with another smaller team and its Scrum Master to work on small tickets and also the current projects of the joining team. In the end we were victims of an unclear project situation in our technological areas and a high demand for support in other areas.

    It’s really sad that this is the fate of our team. In the last year we became specialists in our technological areas and had a steady rise in expertise, know-how and professionality. We had to cope with several difficult situations but in the last few weeks of 2012 it became clear that we were working together very effectively and there were also no issues on a personal or communication level (which is not that common in my experience).

    I hope that I’ll have the chance to keep up regular chats to all of them in the future and stay in contact.

    My new team will be in a comparable situation as my old team way a bit more than a year ago. They are also only a few people and in the last year they had seen five other Scrum Masters come and go. That this poses an obstacle to building and adhering to processes should be pretty clear. In 2013 they will also take over a completely new project where there is not much prior work and they can start "green-field". As this is new to most of them I had been asked to become their 6th and hopefully more permanent Scrum Master because I had similar success with my old team(s) and also can offer deeper experience in that specific area of technology (Java, J2EE, etc.).

    Thank you my old team for the great ride and I wish you all the best. Welcome my new team, I will do everything what is possible to me to make our upcoming work a presentable item of excellence.

  • A new approach for hiding text in SEO?

    Prolog: I thought a lot about making this idea publicly available as it may add another ace in the hole of SEO engineers and degrade search results, at least for a while, if it is really applicable. But in the end I decided in favour of writing it down as I think the detection of this should be not too hard for search engines and it has a very interesting technological approach which may be also useful in different applications.
    To make sure, I did not test this and maybe never will as I do not want to jeopardize my search engine ranking. It may very well be that this is completely useless and non-functional but I’m not taking any risks here.
    You should always consider to improve your content before trying to raise your page-rank via dubious techniques.
    So, here we go:

    In a discussion with a coworker today we came to the topic of font rendering on a search result page of a project we’re currently working on. I don’t know how we made the connection but at some time we were discussing SEO techniques.

    At that time an idea arose in my mind. Everyone concerned with SEO nowadays should know that hiding text from the page visitor and just having it in the page for the search engine is evil. Every search engine should be able to detect such intentions and add a penalty to the page if such questionable tactics are detected. Such SEO techniques to make text invisible are for example:

    • text color is same as background
    • place text in a div-element and hide it
    • place text in a div-element and position it offscreen
    • place text in a div-element and place it behind other stuff
    • unrecognizable tiny font-size

    All of these text-hiding approaches are in my opinion detectable by "simply" analyzing all HTML and CSS of a webpage. But what if you do not hide the text but display it? No color-tricks, no awkward positioning, no font minimizing? Search engines should not apply a penalty if you’re not trying to hide text, right? There are also tricks which utilize JavaScript to hide text after it has been loaded in a browser but search engines are gearing up and are already capable of executing JavaScript on a webpage during their crawl to detect such tricks.

    My idea deals with none of those tricks. What came to my mind was to utilize not the descriptive information in HTML and CSS to hide text but the graphical information required for rendering. To be able to render the text visibly but still make it invisible to the page visitor my idea was to utilize a web font which has just empty glyphs in it for each character.

    The @font-face should nowadays be supported by all major browsers and allow to retrieve the font also from a custom location and font file. So to "hide" text on a webpage you have to create a custom web font where each character is included but contains an empty space for the rendering of the characters. Then add it to the CSS and declare a font-face for it. Finally style the text to use the CSS with the custom font. It should now be invisible for the average page visitor but still visible for the crawler.

    If the search engine would have to detect this it would also have to download the custom font, render it and have a detection algorithm that the rendered font does not display any text. As far as my knowledge and a quick research told none of the major search engines are currently also fetching resource files like custom fonts during their crawl operations. (But I think, if this trick to hide text gains any significant spread, search engines will begin to actually do this and quickly detect and penalize blank fonts.)

    Another quick search also did not reveal anything that this idea has been tried or discussed elsewhere so maybe this is really a new approach. Drawbacks to this could be that until the web-font is loaded by the browser the text may still be visible. Furthermore browsers which do not support web-fonts may also display the hidden text. But these should be neglectible.

  • Decision on photo hosting platform

    I’ve just finished one of my postponed small projects and when I began preparing the posting of the results here I hit the issue that I’m not sure how to share photos into this blog.

    In the past my solution was to upload all my photos I wanted to share to Flickr and cross-link the images in this blog. But the times have changed and I’m nowadays much more integrated with Google’s services which also includes a photo hosting service. Furthermore also Flickr has changed its policies on photo reuse so that reusing images from that platform is not as easy anymore as it had been in the past. But that’s also not really much easier with Google Photos as it involves some non-intuitive access to the images for sharing. But it would greatly ease up the uploading and processing stage for images and also allow much easier download of the collections in case I wanted to transfer it again to another platform.

    Another point to consider is that up until now I have (more or less) successfully been able to seperate this "anonymous" blog from my real names and more personal social media interactions. Looking up my real name wouldn’t reveal contents from this blog and vice versa. Using images from Google’s platform would require to include a link back to my Google+ profile, making it easier for others (advertisers, stalkers, search engines?) to connect this blog to my real world presence. I’m not really sure if I’m ready to take this dent in the freedom of this blog or add the influence of the information contained in this blog to my professional life. But that’s another issue I’ve been tinkering for some time already…

    Well, for now I think there is no clear conclusion for me yet. I’ll think a bit more on that and also the privacy-issue mentioned above. Maybe I’ll post an update for the project in the meantime using Flickr even if I’m undecided but no guarantees on that.

  • No more Skype-control through Internet Explorer

    For quite some time now the Skype-control pages I created in the past (Skype Rich Mood editor and Skype Contacts Overview) have been broken for recent versions of Internet Explorer and Skype. But because of my occupation for University until now I had no time to have a deeper look into that issue. Today I decided to change that and fix the functionality again.

    Sadly I had to come to the conclusion, that access to Skype from within the web browser is permanently impossible and most probably won’t change in the future. The main reason behind this is because Skype changed the application so that its Skype API does not communicate with Internet Explorer anymore.

    Since the Skype4COM interface refuses to connect to the Internet Explorer only one possible workaround would be to write a custom application or ActiveX object which is able to communicate with Skype and load this one into the Internet Explorer instead. In fact, that’s probably the way how kiwik.im works, as you have to install a desktop application to make the homepage be able to work with your Skype client.

    Nevertheless I refrain from following that same path as I personally don’t want people to have to install some black-box application from someone they don’t know (and trust) and grant it access to probably very sensitive data. Furthermore it would be a waste of time as there are already applications available which provide that functionality and more in a more convenient way.

    Maybe sometime in the future I will have another take at it and try to find a more convenient workaround (maybe something possible with another technique available in IE like Java, VB, …) but for now my browser Skype projects are not in working state and just kept for historical reference.

    Sorry folks.

  • Java Tip #11: Use ObjectUtils.toString() for an implicit null-check and default value

    Another quick addition to my Java Tips series. This instance deals again with adding some safety while reducing a bit of code clutter.


    Advice

    Use Commons ObjectUtils.toString() instead of directly calling toString() on an object if it may be null. This also allows for a alternate result if the object is null.

    Code-Example

    Before

    final String projectId = (request.getParameter("projectid") != null) ? request.getParameter("projectid").toString() : "";
    final String roleId = (request.getParameter("roleid") != null) ? request.getParameter("roleid")
            .toString() : "DEFAULT";

    After

    final String projectId = ObjectUtils.toString(request.getParameter("projectid"));
    final String roleId = ObjectUtils.toString(request.getParameter("roleid"), "DEFAULT");

    Benefit

    Readability gain. Safety gain, as ObjectUtils methods are null-safe. The reduced code footprint eases recognition of the intention, which is even more significant if there should be a default text if the object instance is indeed null.

    Remarks

    None.

  • Achievement Unlocked: Leisure Time

    YES.

    Last Thursday I took the final step in my current education and science activities and finished the Masters’ degree exam. This was the goal I’ve been working towards for the previous two years. Especially the last six months have been pretty tight on time as I have been writing my diploma thesis and preparing for the additional two complementary subject exams which are part of the degree exam.

    Well, as the topic already gave away, I have succeeded and passed the exam. With that job done the only remaining duty for me at the University is to attend the Graduation Ceremony in mid-October.

    As this now frees up my spare time from almost everything I’ve been using it in the last years, I can finally begin to flesh out the many small plans I’ve collected over the years for "the time after University". These plans are manifold and cover topics spanning from finally watching movie recordings over a reboot of sports activities to even tackling some electronics projects. Also more regular activity in this blog is on the agenda.

    I’m still unsure on the order of the stuff I’m starting to burn the reclaimed leisure time. But I think I’m not in a hurry currently and may even continue to sleep late 🙂

  • The light at the end of the tunnel

    knockknock* Someone here?

    Yes I know, this blog’s heartbeat is currently beating very quiet and slow. But I can assure you it’s still beating. It is just one of the many victims of my extremely tight schedules both at work and in my personal life. But things will change soon. I’m in the last stretch of my professional education at the university and I’m pretty busy writing my Masters Thesis.

    If everything works out as planned the schedule of my private life will receive relief at the end of September. Then I think I’ll relax for some time and after that I try to recover many of my suspended projects and activities from their zombie states. There’s quite a list of stuff which I have planned to do after I’m finished with university, a pile of books to read and many people to have a beer with after a long time.

    And of course one of the bullets on my list is to resume regular blogging 🙂

  • Received my RasPi

    I finally received my Raspberry Pi which I’ve ordered in the first quarter of this year. It’s an interesting piece of hardware and even smaller than I expected.

    Sadly I’m still unable to spend more time with this. I just took some nights and compiled OpenELEC and put it on a newly purchased class-6 SD card to boot. I chose a self-compiled OpenELEC because initially I only had a 1GB card available and it seems that there is no precompiled image available which fits on cards smaller than 2GB. (In the meanwhile I’ve purchased some additional cards with reasonable sizes.)

    It took some attempts for me to be able to control the XBMC media center on my flatscreen TV but on the second day I’ve been successful to play some HD videos from the little gadget. The issues I had to deal with were

    • a dependency error in the OpenELEC sources (should be fixed by now)
    • unexpected long build duration on my machine
    • correctly partitioning the SD card manually, configuring the boot-parameters file
    • me not recognizing that the TV should be set to HDMI before turning on the Pi

    But these were already all of the issues and since development for the Raspberry Pi is extremely fast I expect things to become faster and easier day by day. And this is currently just for my goal of getting a media center up and running, I wonder what will be possible when developers are going to put these GPIO pins into top gear…