tag:www.janezstupar.com,2013:/posts Janez's Online Homestead 2018-07-09T09:20:42Z tag:www.janezstupar.com,2013:Post/1301248 2018-07-09T09:20:41Z 2018-07-09T09:20:42Z 4th Office

About

Client requested that prototype be a web application deployed as a destkop application that should also operate in web browser. The client app was to offer email and instant messaging capabilities. The client app was expected to work both in offline and in online mode and was expected to perform data synchronization via the proprietary API that client provided.

My role

Client requested that prototype be a web application deployed as a destkop application that should also operate in web browser. The client app was to offer email and instant messaging capabilities. The client app was expected to work both in offline and in online mode and was expected to perform data synchronization via the proprietary API that client provided.

I was brought on board to provide skills and expertise on following aspects of the project:

  • Architect the data layer of the client application in a way that is going to be browser independent and that allows for offline operation both as a browser and desktop based application.
  • Expertise on distributed system design, data replication/synchronization, etc...
  • Implement the data layer for the client app. This includes syncrhonizing metadata, text messages and binary objects.


My involvement was instrumental as none of the existing team members had previous experience with distributed, eventually consistent systems. During my tenure on this project I helped project team achieve all the above mentioned goals and helped prove that the concept is sound and feasible.

Technologies used

On this project I used following technologies:

  • node.js (Electron framework for destkop application).
  • Angular 2/4 as the web application development framework.
  • PouchDB for local meta-data storage.
  • RxJS for application logic.
  • Typescript programming language.
]]>
tag:www.janezstupar.com,2013:Post/827060 2015-03-24T10:52:36Z 2015-03-24T11:17:44Z Adthena

About

Adthena is the only competitive intelligence tool that analyses your whole market with no keyword limits and no competitor limits. Dynamically monitoring your complete market landscape enables gap analysis with your main competitors and accurate Share of Voice trend reporting.

My role

I was brought on project to help with development of front end of the Adthena web application.

During my engagement on Adthena project I have, besides implementing a plethora of features, introduced a number of improvements to the architecture of the web application. Thus increasing stability, performance and development velocity for the front end application.

When I started my work on the project, front end was basically an extended prototype built using Backbone.js and jQuery. During the following six months I have introduced Marionette.js and abstracted away and DRY-ed up a lot of the often used functionalities of the application. I have also done away with the callbacks in the application and replaced them with a combination of jQuery Deferred functions and an event infrastructure for passing information between various application components.

Another important bit of infrastructure work is implementation of a GNU Gettext protocol for managing translations of text between different languages - this will save a lot of time and money that would otherwise be spent on supporting multiple languages.

Technologies used

On this project I used: Bootstrap, Grunt, SCSS, Handlebars.js, Backbone.js, Marionette.js, d3.js, Highcharts, jQuery, intecom.io and sinon.js

For localization stack I used: jsxgettext, po2json and jed.js, which allows Adthena to use standard GNU Gettext toolchain for managing translations.

Feedback

I found Janez a very able engineer, easy to work with and very communicative about implementation decisions.
-Shaun Russel, Adthena Product Manager




]]>
tag:www.janezstupar.com,2013:Post/718704 2014-07-25T18:56:54Z 2014-07-25T18:59:37Z Ralph & Russo


A
bout

Ralph & Russo (ralphandrusso.com) is a haute couture fashion house. The project I participated on is a new website for that is online since summer 2014.

My role

I implemented the single page application (SPA) portion of the website. To archive that  I implemented integration between Wordpress CMS  and Marionette.js based single page application.

Technologies used

I have built the single page application using Backbone.js, Marionette.js, Coffeescript, Jade, SCSS and HTML5. The application layout is based on Bootstrap 3.



]]>
tag:www.janezstupar.com,2013:Post/718703 2014-07-25T18:56:01Z 2014-07-25T18:56:01Z Buzzmove


About

BuzzMove.com is a British marketplace for removal companies and consumers seeking their services. The purpose of the site is to make the interaction between the removal company and the consumer as easy as possible.

My role

I was hired to help improve the fidelity of the Bacbkone.js based single page application for setting up the move and booking. And to help improve the site's user experience, since the existing team working on the project was more engineering focused.

I implemented some new user interfaces, introduced some Backbone.js best practices and refactored the key areas of existing code for better maintainability and to increase fidelity.

Technologies used

The application font end work I did was Java Server Pages (JSP) based, augmented with Backbone.js and SCSS.

Main application layout is Bootstrap 2 based.


]]>
tag:www.janezstupar.com,2013:Post/718702 2014-07-25T18:54:11Z 2014-07-25T18:54:11Z Epek


About

Epek (epek.co.uk) is an on-line marketplace with superior user experience expressed through: clean and simple design, user friendly worklfows, excellent performance and first class support for mobile devices.

My role

I was hired to help with the development of back end and to supply know how from the fields of Software Development Lifecycle (SDLC), Internationalization (i18n) and Localization(l10n).

I did a lot of code cleanup and refactoring to better accommodate automated testing and continuous integration process that Epek envisioned. I also worked with the front end team on implementing new features, for which I supplied backend REST API services. I also implemented PayPal Adaptive Payments integration.

Technologies used

The backend REST API services are Google App engine applications implemented using Python and Golang.

For testing we used Selenium and Nose.

For development workflow we used Git Flow and nvie's branching model (http://nvie.com/posts/a-successful-git-branching-model/).

For continuous Integration we used Travis CI.

]]>
tag:www.janezstupar.com,2013:Post/636903 2014-01-02T14:44:31Z 2014-01-02T14:44:31Z Online reservations system

About

Trilane online reservations is an on line booking system I have built. It features a simple user interface and workflow, users get SMS/email appointment reminders.

My role

I built and designed everything.

Technologies used

Front end is a JavaScript/AJAX application built using Backbone.js.

Back end services is a Django/Python application that is accessed exclusively using the REST API built with Tastypie.

Application dependencies and configurations are handled using Buildout, deployment and version management is handled with Fabric scripts.


]]>
tag:www.janezstupar.com,2013:Post/636896 2014-01-02T14:27:35Z 2014-01-02T14:27:36Z PyNMEA

About

PyNMEA is an Open Source library originally authored by Becky Lewis. Its purpose is to provide serialization and deserialization of NMEA statements into Python objects.

PyNMEA is used as a component of the Wemar Nautipad application.

My role

I have expanded and enhanced PyNMEA library. I have added support for SEATALK protocol (via Gadgetpool USB NMEA/SEATALK Interface) and TMQ flavour of NMEA.

]]>
tag:www.janezstupar.com,2013:Post/636887 2014-01-02T14:13:51Z 2014-01-02T14:13:51Z Visionect Geoffrey

About

Geoffrey is an innovative electronic menu and ordering system. Running on a proprietary EInk tablet developed by Visionect d.o.o.

It features a wholesome support for the restaurant/bar work flow life cycle. Browse the menu, add you selection to the cart and submit your order. Read news, check local events, see local weather forecast, review and request your bill. Everything is just a touch away.

Geoffrey's core features are tablet UI, business analytics module, integration with POS systems and a powerful WYSIWYG administration interface.

My role

I was the Senior Developer for the application part on this project. I either implemented or supervised implementation of all the functionalities of the system.

Technologies used

Front end is a JavaScript/AJAX application built using Backbone.js, CoffeeScript, SAAS and HAMLCoffee.

Back end services are Django/Python applications that are accessed exclusively using the REST API built with Tastypie.

POS system integrations are handled either via Geoffrey web services API or via proprietary middleware applications that bridge the POS system API and Geoffrey web services API.

Application dependencies and configurations are handled using Buildout, deployment and version management is handled with Fabric scripts.


]]>
tag:www.janezstupar.com,2013:Post/636891 2014-01-02T14:04:55Z 2014-01-02T14:05:33Z Wemar Nautipad

About

Wemar Nautipad is an innovative marine instrument and marine bus proxy server. Running on a proprietary EInk tablet developed by Visionect d.o.o.

UI component can be used to display information from existing instruments or to control them. It enables control of  the autopilot using the tablet interface.

The server component has support for NMEA and SEATALK protocols and can be used to either control the existing instrumentation using the Nautipad interface or it can be also used to proxy commands between NMEA and SEATALK devices.

My role

I was the sole implementor and architect of the application for the first version of this product.

Technologies used

Front end is a JavaScript/AJAX application built using Backbone.js framework.

Back end service is a collection of REST web services, comprised of a multithreaded Python application and a Tornado web server. For persistence SQLite database is used.
]]>
tag:www.janezstupar.com,2013:Post/627377 2013-12-06T14:07:41Z 2018-01-15T12:58:02Z About Me

My name is Janez Štupar and I am a Software Engineering consultant.

I have completed my bachelors degree in computer and infromation engineering from Fakulteta za Računalništvo in Informatiko in Ljubljana, Slovenia.


In short I would describe myself as mostly defined by passion and ambition coupled with strong sense of personal ethics. I am one of those people that would rather face total failure than harbor regrets that I never took a shot at my dreams.

In my spare time I am interested in sports, technology in general, philosophy, sociology, art and everything else that stimulates spirit and intelect.

Below you can access my Curriculum Vitae and contact information. If you want to know more about me, please send me a message.



]]>
tag:www.janezstupar.com,2013:Post/369444 2011-07-07T18:04:00Z 2013-12-07T10:44:22Z The best keyboard for programmers...

After IBM Model M that is. On that note - I could not bear the hideous sound of mechanical switches and there is no need for me to keep my poor neighbors up all night.

So without further ado - I present my trusty Thinkpad USB Keyboard With Trackpoint

I always loved my T60 keyboard, I am also one of those (few?) people who massively prefer Trackpoint over Trackpad. After my old keyboard started giving in to age, I was furiously searching for a replacement. I really wanted something compact, and possibly with Trackpoint, because this was key point why working on my T60 has been such a joy. Programming for extended periods of time, while constantly reaching for mouse was always painful for me.

I have been using this keyboard for past 4 months and after working out some driver issues (shame on You Lenovo!) this keyboard has been a blast to use. Previously there have been some reports about sticky shift key, which has been apparently worked out for a while (it was a driver issue). Also some people report this keyboard being flexy, there is some truth to that. Although Lenovo tried their best (there is even metal frame inside) since there is not a whole laptop computer beneath it, it feels flexier than original. However It does not bother me personally at all and can't really imagine going back to non Trackpoint keyboard for professional work.

There are some other keyboards with integrated sticks, but they are either not very good or have various support issues. So if you are like me, you might enjoy this keyboard.
]]>
tag:www.janezstupar.com,2013:Post/369445 2011-07-05T20:47:00Z 2013-12-06T14:16:09Z Google+ Search Integration

Here is something I noticed today while searching.

Google has started integrating G+ into search and it seems kinda cool and organic - like rest of the service.

If search hit is created by someone who has a G+ account - then her profile is displayed next to the result.


Not really sure if this is Cool or Spooky.]]>
tag:www.janezstupar.com,2013:Post/369446 2011-07-05T15:29:00Z 2013-12-06T14:16:47Z The Facebook Dilemma

The time has finally arrived.

Before our eyes drama unfolds. Mark Zuckerberg's Facebook is about to face an attempt to its hegemony in social space. Google's new offering Google+ appears to be tech giant's first real attempt into social space. Yes there was Buzz and there was Wave, but those were no different than your average Google experiment. Those projects were no more than little skirmishes in military terms. This time the effort is being led by Larry Page himself and for those of us, lucky enough to participate in the limited trial, it seems very clear that Google means its business this time. You can read all about features offered by G+ and comparisons with Facebook on other sites. Here I will indulge in some strategic speculation about what we are about to witness in following months.

Thus far, Facebook had been sailing uncharted but pretty still and clear waters. Indeed, it did meet MySpace and Friendster along the way. But both had too many problems with themselves and their old school industrial type management, who didn't really understand what was lying in front of them to react to this new threat. As with any successful business there was some inspiration, some luck and loads of brilliant execution. I will not go into depth, but I have to point out two brilliant features that Facebook had in 2004/2005. First was an introduction of peoples real identity to the Internet. Yes there have been people who used their real names or parts of real names for online identity before Facebook, but the phenomena was rare and mostly limited to people who rely on their public persona for a living. The second brilliant insight what that Facebook was offered to college students, who were both savvy and horny enough to adopt the service early. In those days Facebook was a very private matter - and getting access to someones profile would allow you to access their decadence and enable you to in turn share yours. Exclusivity of Harvard and Ivy league did play its part - but was more a consequence of where it all started. Everything else from then on was brilliant execution, culminating in 2010 with adoption peak and IPO preparations.

IMG_0265

In the mean time there have been many speculations (hype to be more exact) on how Facebook is going to be a Google killer. I have always found these analyses rather distasteful. Because to me it was always clear why that could not be the case, since Google has so many competitive advantages. First Google has more of everything, more talent, more infrastructure of all kinds, more revenue and enough cash on hand to almost buy the damn thing. Insane valuation notwithstanding. The second key point in this comparison is the fact that Google has services that offer actual value, while Facebook is used mostly for wasting precious time one has in life. Last point I would like to make is that there are two kinds of Facebook users, first are the ones who are ignorant of their privacy and implications that their actions may have in the future. Second group are the people who hate Facebook due to its absolutely abysmal record regarding respect for peoples lives. It's CEO is of no help here. If he has Asperger's or is an genuine asshole plays no part. There is also a third group who are various tech geeks that have completely forgotten about Microsoft due to their hate of Facebook.

So what I have lay out in front of you thus far is my view of the battlefield. And now I shall take a look into the crystal ball. Google's strategy seems clear: G+ is going to be the new hub for its services. Even now in its infancy - everything seems to fit together in a nice and organic fashion. It seems to be governed by the rule of least surprise for user. There is not much more to say about it, because there has and will be enough said on this topic. Except that everything is proceeding nice and Googly. On the Facebooks end however, I suspect many hardships. First - their feature set is kind of shallow in comparison to repainted Google's offering. There is nothing there beyond flash games and vanity. Facebook is already making its first move by releasing Skype video chat integration. This feature may have been in the works for awhile, but I believe that its release is being rushed a bit in response to G+ field test and imminent release. There have also been hints that Facebook has some awesome services waiting to be released anytime now. We can safely assume that both competitors are aware of each others roadmap for the next couple of months at this point. So what can we expect from Facebook in the future? It is very likely that they will try to cover their blind spots. That means they need some services that offer actual value. I believe we can expect Facebook integration with Office Live (Lite?) and further deepening of alliance with Microsoft. After that Facebook will have to strike some new alliances since it cannot afford to go about building missing services all on their own.

Trapped Inside

Herein lies true problem and a trap for Facebook. Since Google will be mostly busy vertically integrating their large horizontal portfolio, built in a relatively homogenous environment. Facebook will try to widen their vertical walled garden, to do this it will have to deepen its relationship with Microsoft or search for new partners. Also it will have to greatly stimulate partners like Zynga to prevent them from defecting or at least not sitting on two chairs. But a true problem probably lies on the mobile front, where Google has lately become a true juggernaut. I expect that Microsoft will expect some kind payback for its generous help here, while Mark will probably look more into general direction of iOS and Android. The biggest problem for Facebook in this scenario will be loss of agility and having to drag Microsoft along will probably spark some intense corporate politics that might ultimately endanger Facebook.

For the end I would like to offer some perspective how this all came to be. In my opinion this all started as Facebook more and more refused to be a good net citizen, by starting erecting walls and making various single sided decisions about protecting its hoarded data. This is completely understandable as they had to start making money somehow and decided to take Google head-on instead of searching for a way to coexist with it. From here on this will be a war of attrition and I believe that most likely scenario is that geeks and power users will lead flocks of users from Facebook to G+. After this exodus I foresee two equally likely scenarios. In first Google and Facebook coexist, since Facebook will start cooperating with Google. The other scenario means Google's dominance over Facebook. And in the very least likely scenario Facebook and Microsoft will beat Google into submission. In either case Facebook has just lost a lot of value.

]]>