Own projects, Tips & tricks

Resharper-like search for Chrome tabs and bookmarks

Some time ago I was trying to find a good extension to Chrome that would let me go to recent tab same as for example R# does it with files. The outcome was rather poor so I decided to write my own extension (it’s called Omnicomplete). It does even more and is available on GitHub. Now I use it dozens of times a day and I can recommend it wholeheartedly.

Continue reading

Own projects

DSP2017 – What’s your methodology?

Almost three weeks have passed since the start of DSP2017. I cannot say that I feel excited about what I did. Nothing really changed since the last year (which was unsuccessful). Maybe it’s time for a quick recap? Maybe the way I drive my project after-hours is less serious than then one I do at work? Why? Wiseman said: Pay yourself first.

Maybe the thing is that I miss some kind of a process, rules to proceed, methodology? Why not to take the best of what I do and practice at work?

Continue reading

Own projects

Challenge accepted: starting ‘logcmd’ – a console logs browser

I know that I was not blogging for a while. The only cheap excuse that comes to my mind is having a second job of begin father of two evils angels. I tried hard several times but stuck without publishing. Because of that I realized that I really need some actuation. And then Maciej Aniserowicz came with his “Daj sie poznac 2016” initiative (or maybe I just got tired of the idea that I will stay inproductive, and keep wathing movies every evening till my children go to university).
I was fighting for a long with the same cheap excuse, but won, and joined 10 mins before the registration was to be closed.

The rule is to blog about some pet project, so here is mine: logcmd. It will be a simple tool to read application logs (from file, console and more) and then search, filter, browse. The idea was born out of the need some time ago, when I searched for some online log4net log browser, because I wanted to filter NHibernate queries from the logfile.
As the subject is not very demanding, I decided to add two cool features on top of that. First, it will be done without Visual Studio but in VIM + OmniSharp (soon I’ll try to explain why, who knows, maybe there will be some live-coding video). Second, the tool itself will also be done as a console application. Why? Because of many reasons:
* console seems to be much closer to developer than another Visual-Log-Studio,
* console application can be easily integrated with tmux/tmux-like plugins or used for automation
* console is more portable than desktop
* I fell in love with the way git interacts with the user in command-line
* I don’t like desktop programming. All the desktop applications that I did in the past just seemed ugly to me.

Did I think about other projects? Sure, but there were some ambitious ones, that would probably die unfinished. There was also JavaScript game “Battlecity” and some Commodore 64 project. Who knows, maybe I’ll get back to them in the interim.

When talking about pet projects, I always have one picture in the back of my mind:


Own projects

Why I don’t like raspberries and what’s my alternative.


These days the web is full of titles somehow related to IoT. I saw a bunch of presentations in this topic advertising Arduino, Netduino and RaspberryPi. Of course it’s nice that hardware manufacturers creates platform that’s easy to program for regular developers, but often it is a marketing trap for geeks or developers. Why? Because inspired by such presentations they buy Raspberry Pi for 30$ + Raspberry compatible LCD for another 35$, copmatible camera for 30$, WiFi module for extra 5$ and of course a cover for another few bucks. With such a heavy load of hardware they set up a flashing LED circuit and then install XBMC to have a media center connected to TV (based on a surver in local community). But guys, this is not Internet of Things. It’s really a waste of time as every modern TV is “smart” enough without XBMC. You can also program a flashing LED with ATmega for less than 1$. I understand that the idea behind raspberry is to spark off creativity but sometimes I feel it kills it, because many people don’t want to order some platform for tens of dollars just to experiment and just resign going there this way.
The same time I’d like to give you a hint with much simpler and cheaper solution. What if I told you that you could have a platform that is programmable in .NET (without Mono), with built-in WiFi module, bluetooth, quite fast CPU and a lot of memory for less than 30$? Can you guess what’s it? What if I add 3G Internet module, built-in touch screen and a camera? Starting from 25$ you can buy used Lumia 710. Is it good for IoT? Sure! It has a bunch of sensors like camera, microphone, light sensor, accelerometer, orientation sensor, GPS and can have many more (look at Windows.Devices.Sensors namespace). Maybe there is no general purpose Input/Output but on the other hand you have a headphone port that you can use easily to support digital/analogous input/output (I’ve already done such thing a few years ago).
It’s not just a theoretical trolling. A few weeks back I built a garage camera that sends the camera input to Azure webservice. Raspberry would lose here as there is no WiFi there. It gives me preview of what’s going on in my garage, record faces of bad guys that would like to steal my bike, tells me if the gate is closed (black preview means “closed”) and can send notifications if the gate is opened for too long. And it all in just a few lines of code (one *.cs file as it was too short to split it).

camera garage
I don’t write it all to convince you that Arduino, Netduino or Raspberry are bad in general (actually I had one as well) but you can create something cool without it or with things you already have. For me it was  Lumia with broken screen in a drawer. Buying geek devices and posting them on social network doesn’t make you inventor, it’s your ideas. The real pleasure lies in recycling old hardware and this way creating IoT.

Own projects

RDFCommander beta released



RDFCommander is a small tool to browse linked data (triples) using SPARQL Endpoints. It’s main goal is to be useful staying easy & intuitive as Total Commander. I wrote it to help me with debugging/discovering data from remote endpoints.









To connect you need to click: File –> Connect option or the “earth’ toolbar button. Then you need to select SPARQL endpoint (default is http://dbpedia.org/sparql) and initial Node URI. After successful connection you should see the data loaded into the main view. You can navigate using arrow keys (Up, Down). You can enter node using ENTER key. You can also navigate back with BACKSPACE or “Back” button.



View mode

Triples are presented in two modes: “Node as subject” or “Node as object”. That’s why there are only two parts of the triple visible at the same time (the third one is constant while navigating and there’s no need to show it in the list). The default view is “Node as subject” In this view the SPARQL endpoint is queried about all the triples with Subject set as the given node. You can change the view using “Swap view” command (or the toolbar button):


In “Node as object” view it loads all the triples with Object set as the given node (as shown below):




You can download the app here: RDFCommander beta.zip
Keep in mind that it is still beta so it’s not bug-free yet. You can request issues/report bugs using project’s issue tracker: https://bitbucket.org/ksseroka/rdfcommander