tag:blogger.com,1999:blog-51873000185343156562023-12-11T18:41:29.086+01:00Technology ThoughtsYarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.comBlogger21125tag:blogger.com,1999:blog-5187300018534315656.post-32225839773855928372022-10-14T22:15:00.003+02:002022-12-15T19:51:23.274+01:00Technology Thoughts 2.0 - "the next episode"<h1 style="text-align: left;">R301: Moved to Medium.com!</h1><p>I will continue writing about SaaS, DevOps, agile development practices, software architecture, cars, and technology in general. My goal is to stick to a weekly cadence and publish the articles on <a href="https://medium.com/@jaroslavgergic">https://medium.com/@jaroslavgergic</a> so you can follow me there if that's your preferred <i>Medium.</i></p><p>Well and of course, you can always find me on Twitter (<a href="https://twitter.com/jgergic">https://twitter.com/jgergic</a>) and LinkedIn (<a href="https://www.linkedin.com/in/jaroslavgergic/">https://www.linkedin.com/in/jaroslavgergic/</a>).</p><p><i>Note: Updated on Dec 15, 2022, to reflect on the fact that Twitter is <a href="https://www.getrevue.co/app/offboard" target="_blank">killing Revue newsletter service</a>. </i></p>Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-50707479618176967452022-09-21T19:34:00.002+02:002022-09-21T19:34:26.812+02:00ECSA 2022 Keynote: Software Architecture in the age of Cloud Computing<p style="text-align: left;">The presentation below was delivered as an industrial keynote at the 16th European Conference on Software Architecture (ECSA) held in Prague on 19 – 23 September 2022. For more information please refer to the <a href="https://conf.researchr.org/home/ecsa-2022" target="_blank">ECSA 2022 website</a>.</p>
<iframe frameborder="0" height="600" marginheight="0" marginwidth="0" scrolling="no" src="https://www.slideshare.net/slideshow/embed_code/key/cWsehTmsCKYFCb?hostedIn=slideshare&page=upload" width="800"></iframe>
<h2 style="text-align: left;">Abstract</h2><p style="text-align: left;">The age of cloud computing presents software architects with a unique set of opportunities as well as a unique set of challenges. Designing, building, and operating applications at cloud scale has changed the very nature of software architecture discipline to accommodate a much larger set of objectives and skills. Prior to the cloud era, software architecture was primarily about fulfilling functional requirements while maintaining code modularity and meeting a narrow set of non-functional requirements, such as performance. The cloud-era architect needs to accommodate not only functional requirements and customer-defined throughput and performance requirements, but also a large set of non-functional requirements related to cyber security, compliance, and most notably also the financial/cost characteristics, which at cloud scale can make or break a software-as-a-service company. The whole discipline of software architecture just became not only wider to accommodate all the above aspects, but also deeper as cloud-scale architecture spans all layers of software all the way down to operating system kernel tuning and in the case of private cloud also requires hardware know-how and hardware assembly design closely aligned with high-level application workload requirements to achieve reasonable performance and economics at cloud scale.</p>
Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-68569597135923495302020-04-09T15:43:00.000+02:002020-04-09T15:43:05.581+02:00Cybersecurity Lessons for the COVID-19 Pandemic<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCDQ8AnIgwhIYmOvCk5WIaLugcCLojIqU3W4YzHE9gR382ny3TcRQXZ7TNLfRKRVu1BTZ8DySvmgC8mRQIgHWM5OkB6w_qwy8UFraOxoVXHTLGbCrORjF8so30jg6IYe_pRGsDJqk68RXj/s1600/ThreatGRID-figure-2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="321" data-original-width="1117" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCDQ8AnIgwhIYmOvCk5WIaLugcCLojIqU3W4YzHE9gR382ny3TcRQXZ7TNLfRKRVu1BTZ8DySvmgC8mRQIgHWM5OkB6w_qwy8UFraOxoVXHTLGbCrORjF8so30jg6IYe_pRGsDJqk68RXj/s640/ThreatGRID-figure-2.jpg" width="640" /></a></div>
<br />
In this short study, we attempt to draw a parallel between a comprehensive cybersecurity approach to detecting and mitigating cyber threats as implemented by many modern enterprises, and the public officials’ response to the COVID-19 pandemic. The goal was to adjust the current policies so that they become sustainable over a longer period. We identified potential improvements in our society’s response to the pandemic by drawing inspiration from the cybersecurity domain. We performed this mental exercise in the context of the Czech Republic, and the below recommendations need to be interpreted in that context:<br />
<ol>
<li>Routine periodical testing of a targeted subset of the population, which requires10x increase in testing capacity.</li>
<li>Implement Segregation Policies based on Adaptive Segmentation.</li>
<li>Deploy High-precision Smart Quarantine Tools in Controlled Environments</li>
<li>Relax the Constraints Applied on General Public, enabled due to the smart targeted policies.</li>
</ol>
Written by <a href="https://www.linkedin.com/in/jaroslavgergic/">Jaroslav Gergic</a> with contributions from <a href="https://www.linkedin.com/in/michal-svoboda-583882113/">Michal Svoboda</a>, <a href="https://www.linkedin.com/in/jan-brabec-3298333b/">Jan Brabec</a>, <a href="https://www.linkedin.com/in/lukas-bajer/">Lukas Bajer</a>, and <a href="http://cs.felk.cvut.cz/en/people/sislakd">David Sislak</a> in Prague on April 5 – 7, 2020.<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="768" src="https://www.linkedin.com/embed/feed/update/urn:li:ugcPost:6653326185868722176" title="Embedded post" width="650"></iframe><br />
<br />
Full copy available at <a href="https://www.linkedin.com/posts/jaroslavgergic_cybersecurity-lessons-for-the-covid-19-pandemic-activity-6653326186955046912-0KSB">https://www.linkedin.com/posts/jaroslavgergic_cybersecurity-lessons-for-the-covid-19-pandemic-activity-6653326186955046912-0KSB</a>.Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-9677365541723175042018-05-06T20:01:00.000+02:002018-05-06T20:01:15.440+02:00Coasting Like a PRORoughly three months into driving 225xe, it seems about right time come back to revisit the <a href="https://jgergic-tech.blogspot.com/2018/03/first-month-of-active-touring.html">initial impressions</a> and see how the car fares in long-term usage. In this post, I want to focus on the 225xe driving modes of which the car offers aplenty. First, there are the three traditional BMW Driving Experience modes: COMFORT, SPORT, and ECO PRO, which come fitted on non-hybrid powertrains as well. Then there are the eDrive modes: AUTO eDrive, MAX eDrive, and SAVE BATTERY. To complicate this even further, moving the gear stick to the left at any time switches the automatic gearbox to the sports mode, so there are two gearbox modes: Drive and Sport/Manual which allows sequential gear shifts.<br />
<br />
So in theory, there are 3 x 3 x 2 = 18 combinations, in practice, some of the combinations are mutually exclusive, so it is not so extreme as it seems. What is apparent though is that BMW keeps adding new options while maintaining the legacy options as well without thinking about consolidation. This makes for a perfect geek car: if you like, you can play with the options according to your driving mood and road conditions as much as you want. Sometimes, given all the displays and indicators, one may feel like piloting a spaceship rather than driving a little a family MPV.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGdjS1iuZhBCazhSv3mwJ1fasMv_PcaNkYisH3ipipmSB10m5NBV8A_vjcGphDt0rallyhwzYcRDY6hotr_Jmb6W34HEcF8npIzFHJlnKTltRsGks5c5fAoHxy5lDZAX8xCVHCIAUOOFl/s1600/DSC_1014.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1349" data-original-width="1600" height="269" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSGdjS1iuZhBCazhSv3mwJ1fasMv_PcaNkYisH3ipipmSB10m5NBV8A_vjcGphDt0rallyhwzYcRDY6hotr_Jmb6W34HEcF8npIzFHJlnKTltRsGks5c5fAoHxy5lDZAX8xCVHCIAUOOFl/s320/DSC_1014.JPG" width="320" /></a></div>
<div style="text-align: center;">
<i>The COMFORT mode display the battery status, and ePower / charging indicators.</i></div>
<br />
There is good news for those scared of the complexity though, the default driving modes, which are COMFORT + AUTO eDrive, are very well tuned for normal driving conditions and if you are happy with them, you don't need to fiddle with any other options. While driving in the COMFORT mode with a charged battery, the car uses electric motor most of the time at speeds up to 80 km/hour. Whenever you hit the accelerator pedal too much or exceed 80 km/hour, the gasoline engine kicks in to help. It also starts the engine when ascending steep slopes. Whenever you release the accelerator pedal, the car begins recuperative breaking and slows down quite naturally, simulating the traditional engine braking very well. As mentioned above, at most times it is all you need. Sometimes, it is useful to move the gear shift lever to the left to switch gearbox to the SPORT mode. Regardless of the driving mode, moving the gearstick to the left immediately starts the gasoline engine and puts it at higher revs, which is great when preparing for overtaking - it helps to start accelerating faster than using just a kick-down which depending on a driving mode has shorter or longer lag.<br />
<br />
Owning a plug-in hybrid one tries to showcase its fuel economy of course. To achieve that, there are two modes which can help: MAX eDrive, which attempts to use the electric engine as much as possible and allows electric-only driving at speeds up to 125 km/hour. However, the battery depletes very quickly at higher speeds, and I found out that even MAX eDrive mode does not prevent the gasoline engine from starting when getting out of my garage on a steep driveway. The gasoline engine more often kicks in when ascending the garage entrance on the reverse, so I suspect the car stability system overrides the driving mode and whenever DSC detects the rear wheels slipping, it enforces 4x4 mode by calling the internal combustion engine to the rescue. To sum it up: I don't find the MAX eDrive mode very useful, except for very short trips around town, when I am sure, the battery will last for the entire trip.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCsQmL3tZPtdllEXUFkgGG-W6OeFk30Ao4MjIdMHPgp-QTm7XFU5UA7hewtnWkI6MpnknjC5rQdEpiyCsrBACHtC0u5cG7d2an9o73Z_-dx6xphCqcWynuqTsgm0P-LbFmOrKqt_Lte_1Q/s1600/DSC_1013.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1352" data-original-width="1600" height="270" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCsQmL3tZPtdllEXUFkgGG-W6OeFk30Ao4MjIdMHPgp-QTm7XFU5UA7hewtnWkI6MpnknjC5rQdEpiyCsrBACHtC0u5cG7d2an9o73Z_-dx6xphCqcWynuqTsgm0P-LbFmOrKqt_Lte_1Q/s320/DSC_1013.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<i>ECO PRO display - glaring blue as shown above if driving economically, it turns silver when driving too aggressively or too fast.</i></div>
<br />
The second helper to achieve the best fuel economy is the ECO PRO mode, which I most often combine with the AUTO eDrive and with built-in navigation. The integrated navigation helps the car to plan the battery usage according to the intended route by using gasoline more on open roads and saving battery for the city driving. When turning on the ECO PRO mode, the first thing you notice is the lack of regenerative breaking at most conditions - the car is set to the <i>coasting </i>mode. Whenever you release the accelerator pedal, the car just sails effortlessly as far as it can, turning off the gasoline engine at speeds below 80km/h or idling it below 1000 rpm at freeway speeds. I continue to be amazed how much momentum the car has and how far and fast it can go, without burning any fuel and or using any battery power when coasting. To complement the experience, the built-in car navigation has an option to use ECO PRO routes, which are great for weekend getaways, when in no rush. Using the ECO PRO routes allowed me to discover some beautiful places in the countryside I never visited before. The fuel economy during these trips stayed consistently below 4.5 l/100 km.<br />
<br />
There are however practical limitations to the ECO PRO mode: you can only use coasting if you can set your pace. In heavy city traffic with traffic lights and impatient drivers wanting to accelerate quickly at lights and reach the next lights as fast as possible (typical Prague driving style, think of Italy if you have not been to Prague before), you can't set your pace without disrupting the traffic flow. The default COMFORT mode with its automatic regenerative braking really fulfills its name, and it is much more comfortable to drive the car in COMFORT mode than trying to repeatedly slow down by gently pressing the brake pedal to recuperate manually in the ECO PRO mode.<br />
<br />
Last but not least, let's get the update on fuel economy. Having roughly 4000 km driven and refueling the tank seven times, my average fuel economy is 5.38 l/100 km (52.5 MPG). Comparing to the benchmarks mentioned in <a href="https://jgergic-tech.blogspot.com/2018/03/first-month-of-active-touring.html">the last blog post</a>, this is yielding 25% better fuel economy compared to the same engine cars, and 36% better fuel economy compared to the cars with similar horsepower. The chart below shows the fuel economy statistics for all the fuel tank refills.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFidNp-vM4xFErZa13LLnK0hXXKRYdszEf2mGnJ4Hp2Vs8nA7wZPqTBCJt3MCU-GA5-8o9WF6SMbFpIXpScWPkIAR8U8s_9th4qO5ilN3v8lDHU4iPSumtOr2mo-bCWWybFhAU3SMWHZfd/s1600/Screen+Shot+2018-05-05+at+7.59.09+PM.png" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="970" data-original-width="1600" height="388" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFidNp-vM4xFErZa13LLnK0hXXKRYdszEf2mGnJ4Hp2Vs8nA7wZPqTBCJt3MCU-GA5-8o9WF6SMbFpIXpScWPkIAR8U8s_9th4qO5ilN3v8lDHU4iPSumtOr2mo-bCWWybFhAU3SMWHZfd/s640/Screen+Shot+2018-05-05+at+7.59.09+PM.png" width="640" /></a></div>
<br />
Well, and what about the SPORT driving experience mode? BMW Owner's Manual recommends keeping the engine revs below 4500 rpms until reaching the first 2000 km. Given a significant amount of electric-only driving, I spared the car of excesses until we reached roughly 3000 km. Stay tuned for the next issue to learn what happens when you wake up the beast hiding in 225xe...Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-22193273427294241902018-03-13T15:07:00.001+01:002018-03-13T15:07:22.270+01:00Version 2.0 Syndrome - Why the Software Architecture Matters<i>"Guys you will never have a chance to build the version 2.0, you have to get it right from the get-go, or keep suffering from your mistakes for the lifetime of the product."</i> - Jiri Karpeta, my boss at LCS International, used to say. It was back in 1995, and while LCS's bread and butter were Helios, an ERP for the SMB segment, we were busy building Noris - the future LCS's flagship ERP for larger enterprises. Of course, given the above philosophy, LCS was quite heavily invested in CASE tools to support our software design efforts. That's where I learned the first time that software modeling matters.<br />
<br />
But back to the original statement above that you <i>"never get a chance to build the version 2.0"</i>. It may sound too harsh, too fatalistic. Well, you may be right, there are always exceptions to the rule. While I don't have exact statistics at hand, my experience shows that the statement is more often correct than not. I have interviewed hundreds of software developers throughout my career and quite often when asked <i>"Why are you considering to leave your current company?"</i> a story like this unfolds:<br />
<br />
<i>"We have an old legacy system. It is difficult to extend, and some features are almost impossible to add because it was poorly designed. We decided to write a new system to replace the old one. We spun off a separate team to drive the effort and kept the rest of the team to cater to the existing customers and maintain the legacy system."</i><br />
<i><br /></i>
Now the story usually breaks into two buckets, depending on where the developer being interviewed resides:<br />
<br />
<i>"Unfortunately, I am working on the legacy product. The other team has all the fun building the new stuff, and we are stuck with the old codebase. It was supposed to be a 6-month project, but we are 18 months into it, and there is no light at the end of the tunnel. I am getting tired of waiting until I will be able to switch to the new framework."</i><br />
<i><br /></i>
Or:<br />
<br />
<i>"I am working on the next-gen product. We are a small team which was supposed to be dedicated to building it. Things got a bit more complicated than we anticipated at the beginning and our management lost patience, my peers and I are frequently pulled away from the new project helping to develop feature requests to the legacy product for our key customers. This slows down the new product development, and I am not sure that the leadership is still really committed to building it. I am tired of having to fight for resources."</i><br />
<br />
I listened to the above story too many times to dismiss it easily. Most companies, who like LCS need to continually deliver value to its customers to earn their living, can hardly afford major product rewrites. It takes enormous energy, effort, and discipline to pull this off and only a few companies can actually afford it without threatening their very existence.<br />
<h4>
Future-proof Architecture</h4>
But you never get everything right on the first attempt, do you? The answer to the problem is not to do everything right in the software architecture. The answer is to understand the product domain and problem space well enough to get the basic foundations right (the backbone) while making the architecture <i>modular</i>, with <i>clearly defined interfaces</i> and <i>contracts</i> between components and layers, so that you can adjust and refactor the product incrementally, piece by piece, rather than having to throw in the towel and start aiming at 2.0 while sitting on a heap of spaghetti code, where everything depends on everything.<br />
<br />
A great example of the importance of getting the fundamental's right is the GoodData architecture. It was devised back in 2007 by a small group of people led by Michal Dovrtel, company's co-founder, and it laid a very modular foundation for the GoodData platform. Throughout the years, we rewrote pretty much everything - the middleware infrastructure, the central configuration, and directory database (C3), the web layer. We replaced the database backend several times going from MySQL to PostgreSQL to Vertica. We even rewrote the heart of the system - the analytical query engine (AQE) itself.Yet the architecture fundamentals remain intact until present days. All the above happened while serving the customers and growing the platform. The key to success was precisely the fact that we were able to rewrite all the components <i>per partes</i> - a component by component - while not having to change the underlying principles of the platform architecture. The team involved in the original design had a profound understanding of the problem domain and was thus able to come up with the right abstractions which remain valid even after ten years since inception.<br />
<br />
So let me rephrase the opening differently: <i>"Guys you will seldom have a chance to build the version 2.0, you rather get it right from the get-go, or most likely keep suffering from your mistakes for the lifetime of the product."</i><br />
<i><br /></i>
<span style="font-size: x-small;">Check out the previous post in the series <a href="http://jgergic-tech.blogspot.nl/2018/02/agile-on-overdrive.html">Agile on Overdrive</a>.</span>Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-48455939430038569982018-03-02T23:47:00.001+01:002018-03-12T08:53:36.414+01:00First Month of Active TouringPutting my money where my mouth is, I took on the adventure of buying a plug-in hybrid. A few years back, I used to drive a car only for weekend getaways, so an SUV seemed to be a logical choice. At only fifteen thousand kilometers driven annually, the fuel economy was not a significant issue, the driving experience was the main thing.<br />
<br />
During the past few years with family and small kids, the car usage became more spread out throughout the week. With that said, I noticed we maintain two very distinct driving patterns: many short trips around Prague during the week to get kids to school and sports and then longer trips, roughly 100 miles each direction, during the weekends. With short distances and many cold starts due to the city driving on the workdays, the already poor fuel economy of an SUV deteriorated further.<br />
<br />
I realized when our car was up for renewal that it was almost as if we needed two different vehicles for two different use cases - an electric vehicle for city driving and a family all-wheel-drive for the weekends. But I never wanted to maintain two cars, so, fitting these disparate use cases into a single car required some kind of a hybrid - a plug-in hybrid.<br />
<br />
A month ago, I picked up our new BMW Active Tourer 225xe. I may dedicate one of the future posts to describe how I did arrive at this choice, but briefly, it ticked all the boxes: fits the family of four (occasionally five), no diesel (I hate diesel), all-wheel-drive capabilities, pure electric driving for short distances, no range anxiety for longer trips, more than adequate power with great fuel economy and all this the while it does not scream "tree hugger".<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj5yDaKZ1bnZiBJoxGyufHdN1iwcZSTFgRP-Ge9Z-hWzmw02179Il9YKe6C9_88w9bb8jV64j9aMvI2dpsPRQ7i9Ua4sQ4i5As5F5T_xz5tOYzWzwvq4zze55WXkRID0EC_zWtmNEdL7xE/s1600/DSC_0831.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="900" data-original-width="1600" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjj5yDaKZ1bnZiBJoxGyufHdN1iwcZSTFgRP-Ge9Z-hWzmw02179Il9YKe6C9_88w9bb8jV64j9aMvI2dpsPRQ7i9Ua4sQ4i5As5F5T_xz5tOYzWzwvq4zze55WXkRID0EC_zWtmNEdL7xE/s400/DSC_0831.JPG" width="400" /></a></div>
<br />
<br />
So how is it going after the first month and roughly 1000 miles driven? So far so good. Even though the cold winter decreases the EV-only range, it is still decent (20 - 25 km), and we manage most of our trips around Prague on purely electric power. And the EV mode is not only about zero local emissions and lower costs, but it is also about the driving experience: the immediate torque of the electric engine turns out to be <a href="http://www.bmwblog.com/2018/01/31/many-new-ev-bmw-customers-wont-go-back-gasoline/">truly addictive</a>. Many times, I wish the car was able to run on EV all the time. The electric engine powers the rear wheels, which improves maneuverability in the city traffic and makes turns truly enjoyable.<br />
<br />
Outside of the city, the electric engine in the rear works hand in hand with the turbocharged gasoline engine powering the front wheels, the combination of both engines providing an instant response by overcoming the turbo lag of the gasoline engine by the instant force of the electric one. At freeway speeds above 120km/h, the turbocharged 3-cylinder engine takes over, and the car remains front wheel only, which for me is an acceptable compromise.<br />
<br />
So, enough soft impressions and let's throw some hard numbers in. BMW claims combined fuel economy of 2.0 l/100 km. Honestly, I was not expecting to achieve that, these normative figures are broken by design. Checking <a href="https://www.spritmonitor.de/en/">spritmonitor.de</a> prior the purchase, I saw 225xe averaging at around 4.7 l/100 km. My first results for a new car are as follows (always filling the tank full):<br />
<br />
<ol>
<li>5.67 l/100 km (41 mpg)<span style="white-space: pre;"> </span>- Winter tires, Natural 95, 4 people + luggage</li>
<li>5.60 l/100 km (42 mpg)<span style="white-space: pre;"> </span>- Winter tires, Natural 95, 4 people + luggage</li>
<li>6.71 l/100 km (35 mpg) - Winter tires, Natural 95, 5 people + luggage, roof box - skiing trip to the mountains</li>
</ol>
Where I am coming from, the <a href="http://www.mitsubishiclub.cz/vozidlo/mitsubishi-outlander-i-7917">2005 Mitsubishi Outlander</a> with the fuel economy of 11 l/100 km (21 mpg), the 225xe's fuel economy is twice as good. Comparing the 225xe to the other <a href="https://en.wikipedia.org/wiki/BMW_2_Series_Active_Tourer">Tourers</a> with the same 1.5L <a href="https://en.wikipedia.org/wiki/BMW_B38">B38</a> engine, those average at 7.20 l/100 km on spritmonitor.de, i.e., 225xe shows 17% fuel economy improvement compared to the gasoline version. Further down, comparing apples to apples - i.e., 225xe to 225i with similar power output, 225i averages at 8.5 l/100 km on spritmonitor.de - so we are getting 30% better fuel economy thanks to the hybrid powertrain. I will see how the fuel economy progresses with more miles driven, warmer temperatures and summer tires. Will keep you posted.<br />
<br />
So far positive review - are there any negatives? The most significant drawback of a plug-in hybrid concept I see is the very need to plug it in: it is a chore. I am considering to buy a wall box to make the experience a bit more convenient, but have not made my mind yet. I can totally see the value in wireless charging technology because unlike gasoline refueling, plugging-in is a daily activity.<br />
<br />
Yet the biggest issue I have found to date with our 225xe is related to the cup holders in the central console: my favorite 16 oz Starbucks mug does not fit in! What the hell were the German engineers drinking, if it was not a big mug of coffee from a standard 16 oz mug? Or are these Bavarian cars engineered while drinking little Italian espressos? 😉<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1rAKuoK_7e6ng_NQPClfLij-O-ZTESPG_fzA4XCvRQU79y7Te0jsuY-2twjjfveezrt90jOYpqoos4LmCCfkT-H8aPfIQp4j5i8EOt9LP4Nx4p-aWjL1DYMSUFWodBJdx9gOjZ2Rx9aHU/s1600/DSC_0874.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="900" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1rAKuoK_7e6ng_NQPClfLij-O-ZTESPG_fzA4XCvRQU79y7Te0jsuY-2twjjfveezrt90jOYpqoos4LmCCfkT-H8aPfIQp4j5i8EOt9LP4Nx4p-aWjL1DYMSUFWodBJdx9gOjZ2Rx9aHU/s320/DSC_0874.JPG" width="180" /></a></div>
<br />
<br />
More experiences to follow, please take this post as "first impressions". So far I quite enjoy this little family carrier which turns out to be both practical and fun to drive.Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-33808827843037951932018-02-28T15:31:00.001+01:002018-03-07T15:52:14.382+01:00Agile on Overdrive<span style="font-family: inherit;">It may sound old-fashioned and laughable these days when techniques like </span><a href="http://www.uml.org/" style="font-family: inherit;">UML</a><span style="font-family: inherit;"> are so unsexy, but I can still remember the days back at IBM T.J. Watson in the early 2000's when we were working on a prototype of a new </span><a href="http://www.voicexml.org/" style="font-family: inherit;">VoiceXML</a><span style="font-family: inherit;"> browser to inform IBM's standardization efforts in the space. (The language was supposed to be VoiceXML 3.0, and we abbreviated the research project to "V-3" - pronounced "fau drai" in reference to the German </span><a href="https://en.wikipedia.org/wiki/V-2_rocket" style="font-family: inherit;">V-2 rocket</a><span style="font-family: inherit;">.) We took VoiceXML 2.0 as a foundation but added full </span><a href="https://www.w3.org/DOM/" style="font-family: inherit;">DOM</a><span style="font-family: inherit;"> and </span><a href="https://www.w3.org/TR/DOM-Level-2-Events/events.html" style="font-family: inherit;">DOM Events</a><span style="font-family: inherit;"> support together with </span><a href="https://www.w3.org/MarkUp/Forms/" style="font-family: inherit;">XForms</a><span style="font-family: inherit;"> as the data model representation.</span><br />
<span style="font-family: inherit;"><br /></span> <span style="font-family: inherit;">It was shortly after IBM's acquisition of <a href="https://en.wikipedia.org/wiki/Rational_Software">Rational Software</a>, so we took advantage of that deal and got our hands dirty with <a href="https://en.wikipedia.org/wiki/IBM_Rational_Rose_XDE">Rational Rose</a>. While one of our colleagues kept pushing us to start coding and iterate towards the result in the agile fashion, given the incomplete specs and many open questions stemming from the combination of so many complex technologies in one piece, we prevailed and kept debugging the design in UML for roughly six weeks. It helped us to uncover and resolve many ambiguities and arrive at the detailed understanding of expected behavior before we wrote a single line of code. Then we sat down and wrote the complete V3 prototype in about three weeks. Afterward, we just fixed few remaining bugs here and there during the evaluation, and we were done - on time according to the original schedule as the whole V-3 prototype work was expected to take roughly 3 months.</span><br />
<span style="font-family: inherit;"><br /></span> <span style="font-family: inherit;">I am not going to dispute the overall positive benefits of using iterative software development methodologies, particularly agile methodologies such as Scrum and Kanban. I hope nobody wants to go back to the software waterfalls, at least I don't. That being said, I still want to highlight some problems faced by the R&D teams implementing agile in naïve or kind of fundamentalist fashion.</span><br />
<h3>
<span style="font-family: inherit;">The Problem of Product Increment</span></h3>
<span style="font-family: inherit;">The concept of </span><i style="font-family: inherit;">product increment</i><span style="font-family: inherit;"> - an artifact of each and every product iteration - is the </span>cornerstone<span style="font-family: inherit;"> of Scrum and its kin. It is a great idea, having a presentable and deployable outcome after each iteration. But what to do when there is no product in the first place? What if you are in a green field development situation? What if you are re-architecting and refactoring a substantial portion of your application? To paraphrase <a href="https://en.wikipedia.org/wiki/Peter_Thiel">Peter Thiel</a>'s idea from his book <a href="https://en.wikipedia.org/wiki/Zero_to_One">Zero to One</a>: what if we want to create something where there is nothing?</span><br />
<span style="font-family: inherit;"><br /></span> <span style="font-family: inherit;">The agile iterations don't help with that very much because they tend to be too short to build an entire production foundation in a single iteration. Some techniques such as <a href="https://jpattonassociates.com/user-story-mapping/">story mapping</a> remediate this problem by the concept of a scaffolding or a walking skeleton, but even a working skeleton usually takes at least several iterations to build. On top of that, when building a walking skeleton, you need to know in which direction you want it to start walking as soon as it is built - i.e., you need to build a product vision. Unfortunately, agile methodologies won't help you with that.</span><br />
<span style="font-family: inherit;"><br /></span> <span style="font-family: inherit;">Agile teams trying to iterate from "ground zero" to the "first floor" often suffer from </span>short-sightedness<span style="font-family: inherit;"> and endless rework, because each new iteration is expanding the set of requirements so substantially that the foundations need to be redone from scratch each time. To put it simply, iterating blindly from "zero to one" quickly becomes an enormous waste.</span><br />
<h3>
<span style="font-family: inherit;">Curse of Product Owner</span></h3>
<span style="font-family: inherit;">Another great agile tool - the <i>product owner</i> - while being instrumental in building product increments often compounds the problems outlined above. Why do I think so? Because the role of the product owner is sometimes giving too much comfort to the engineering teams - the PO represents the customer and has the domain knowledge, so more junior teams can have a tendency to completely outsource the domain knowledge to the PO and just blindly implement the requirements as they come. </span><span style="font-family: inherit;">"</span><i style="font-family: inherit;">This was not in the original set of requirements, we have to refactor the database schema.</i><span style="font-family: inherit;">" is what you can often hear at later stages of product development, when the engineering team fails to build deep domain knowledge and with it the ability to generalize away from the PO's requirements and anticipate the additional use cases which are naturally part of the problem domain but were not explicitly stated by the PO in the original requirements.</span><br />
<h3>
<span style="font-family: inherit;">Outside of the Box</span></h3>
<span style="font-family: inherit;">So according to my experience, a successful strategy to climb to the first floor from "ground zero" is to assemble a small team of smartest people you have on staff and let them formulate the vision, layout the architectural foundations and devise a longer-term implementation plan outside of the regular iterative development process. There are no shortcuts, and no amount of iterations can replace the deep understanding of the problem domain and holistic approach to architecture and data modeling, addressing the entire <i>classes</i> of domain's use cases rather than a few granular user stories taken out from the top of the backlog. So don't be so "<i>keyboard happy</i>" - eagerly starting coding before taking time to think.</span><br />
<span style="font-family: inherit;"><br /></span> <i><span style="font-family: inherit;">To be continued...</span></i><br />
<div>
<br /></div>
Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-45993277712191476402016-02-13T12:39:00.004+01:002016-02-13T12:40:27.246+01:00Has The Era Of Mobile Web Apps Finally Come?<div style="text-align: justify;">
It has long been a subject of an argument, essentially since the advent of the mobile web itself more than ten years ago: the anticipation of mobile web taking over the native mobile apps - repeating the success of desktop web on mobile devices - has been just that - the anticipation.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The beauty of "write once, run everywhere" was once again challenged by the realities of computing power and user experience compromises, as it was back in 90s when Java was created with the same promise only to fail delivering on it.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
No matter which year is printed on the calendar, the verdict has always been the same: "mobile web apps are promising, but not quite there yet, but wait, they are just around the corner".</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
At the same time, the times of one-man-show stunts making big $$ by developing mobile apps are over. The industry has increasingly professionalized and the need to support three major mobile platforms (iOS, Android, Windows) is heavily taxing native app development and raising the bar for entry.</div>
<div style="text-align: justify;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8k0l1Bs7kWIhhuNV2YpHVRafJ1xThap7wQ44KAubH6KE1qi5sPkuNT_rmEVuedkVfu-xEQj47DewedN8VpuOGJBiXHnLjH150lkmoc0JNO95CWjET-a9th9SXdpHosFNmoA1ani0tpgR0/s1600/QuickMemo%252B_2016-01-28-08-48-45.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8k0l1Bs7kWIhhuNV2YpHVRafJ1xThap7wQ44KAubH6KE1qi5sPkuNT_rmEVuedkVfu-xEQj47DewedN8VpuOGJBiXHnLjH150lkmoc0JNO95CWjET-a9th9SXdpHosFNmoA1ani0tpgR0/s640/QuickMemo%252B_2016-01-28-08-48-45.png" width="384" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Recent apps on my phone - guess which are native<span style="font-size: 12.8px;"> vs. web apps.</span></td></tr>
</tbody></table>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
However, I have seen two interesting developments in the past year, which should make you reconsider the mobile app strategy:</div>
<div style="text-align: justify;">
</div>
<ol>
<li>Since Android 5.0, mobile Chrome browser supports the "Marge tabs and apps" feature, which makes web applications such as Facebook or Twitter look like native apps when presented in the recent apps carousel on Android.</li>
<li>With the support of push notifications in Chrome and other mobile browsers, the ability of mobile web apps to catch user's attention and bring her back to the app, many times the primary reason for developing the native app, has become almost obsolete as well.</li>
</ol>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisoehbRlQiejjE4khRFKp0Ntp594_rdkjwbvMJsL4gK8T3KwTBJ5DA0e8N_rWv-hSOa_H2O-mQ6CBs5l008koA_84Zcj6RAvku_gjc3g-VLDFhfHtdsJBTO6UqO0mSdnjwtGPnYes11Fgg/s1600/QuickMemo%252B_2016-01-28-08-51-00.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisoehbRlQiejjE4khRFKp0Ntp594_rdkjwbvMJsL4gK8T3KwTBJ5DA0e8N_rWv-hSOa_H2O-mQ6CBs5l008koA_84Zcj6RAvku_gjc3g-VLDFhfHtdsJBTO6UqO0mSdnjwtGPnYes11Fgg/s400/QuickMemo%252B_2016-01-28-08-51-00.png" width="351" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">"Merge tabs and apps" feature in Chrome</td></tr>
</tbody></table>
<div>
It is indisputable, that the user experience of native apps still beats mobile web apps, so for apps I use every day, I prefer native apps. However, for less frequented apps, the situation changes dramatically in my eyes: I hesitate to install apps on my phone just to try them out or use them once or occasionally. My primary concern is privacy & security, but besides that it is also a matter of convenience - the bloat some apps cause, the precious space consumed by them and ironically even the frequent app updates: a rarely used native app may consume more battery by frequent updates from the app store than actually running on the phone. It has been long time ago I uninstall Facebook from my phone and I am completely happy to use the mobile web version for the occasional visits.</div>
<br />
<div style="text-align: justify;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0jI7ukOt22be9lWBNS6UTAmFpky4mPVEMGL7NdzRslXVLS4_cdV3BhZxgu2dFdkZV8UX9aAnS1w8gocdbKddr7KhpBWolNjBuy45VT0j00vaRPA7-EZSjHOs7YKbdOsRX-R9FNuVpE0Xp/s1600/QuickMemo%252B_2016-01-28-08-51-20.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0jI7ukOt22be9lWBNS6UTAmFpky4mPVEMGL7NdzRslXVLS4_cdV3BhZxgu2dFdkZV8UX9aAnS1w8gocdbKddr7KhpBWolNjBuy45VT0j00vaRPA7-EZSjHOs7YKbdOsRX-R9FNuVpE0Xp/s320/QuickMemo%252B_2016-01-28-08-51-20.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Web push notifications settings.</td></tr>
</tbody></table>
<div style="text-align: justify;">
Given my experience above, I believe the mobile web apps should seriously be considered for use cases where you are not aiming at daily usage. Good examples would be various reservation systems, ticketing apps for buying cultural events tickets, travel booking apps, loyalty programs and others. In these cases, a mobile web app removes the friction - no need to install a native app - while still providing decent user experience. Last but last not least - the development and maintenance cost are likely to be much lower than for native apps for multiple platforms and a lot of the infrastructure can be shared between the mobile web app and the desktop web version of the service.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<i>So think twice before you launch that job postings for Android, iOS and Windows mobile developers for your next project - it may well be the case the mobile web can expedite your journey to the customers and save you $$, if your application is intended for occasional transactional use.</i></div>
<div style="text-align: justify;">
<br /></div>
Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-88876534597059477582014-11-21T21:04:00.002+01:002022-10-05T10:17:40.127+02:00Big Data Pipeline for Analytics at Scale at FIT CVUT 2014The recent boom in big data processing and democratization of the big data space has been enabled by the fact that most of the concepts originated in the research labs of companies such as Google, Amazon, Yahoo and Facebook are now available as open source. Technologies such as Hadoop, Cassandra let businesses around the world to become more data driven and tap into their massive data feeds to mine valuable insights.<br />
<br />
At the same time, we are still at a certain stage of the maturity curve of these new big data technologies and of the entire big data technology stack. Many of the technologies originated from a particular use case and attempts to apply them in a more generic fashion are hitting the limits of their technological foundations. In some areas, there are several competing technologies for the same set of use cases, which increases risks and costs of big data implementations.<br />
<br />
We will show how GoodData solves the entire big data pipeline today, starting from raw data feeds all the way up to actionable business insights. All this provided as a hosted multi-tenant environment letting its customers to solve their particular analytical use case or many analytical use cases for thousands of their customers all using the same platform and tools while abstracting them away from the technological details of the big data stack.<br />
<br />
<iframe src="//www.slideshare.net/slideshow/embed_code/key/KJCZV5q3LjlEgT" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/jgergic/big-data-pipeline-for-analytics-at-scale-fit-cvut-2014" title="Big Data Pipeline for Analytics at Scale @ FIT CVUT 2014" target="_blank">Big Data Pipeline for Analytics at Scale @ FIT CVUT 2014</a> </strong> from <strong><a href="//www.slideshare.net/jgergic" target="_blank">Jaroslav Gergic</a></strong> </div>Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-47090678828619153292014-03-11T20:37:00.000+01:002017-12-13T13:35:42.758+01:00Bringing GoodData Platform to the Next LevelBack in 2007 <a href="http://en.wikipedia.org/wiki/Marc_Andreessen">Marc Andreessen</a>, founder of <a href="http://en.wikipedia.org/wiki/Netscape">Netscape Communications</a> and an <a href="http://a16z.com/">investor</a> in <a href="http://www.gooddata.com/">GoodData</a>, wrote his legendary blog post entitled “<a href="http://blog.jedchristiansen.com/pmarcaarchive/the-three-kinds-of-platforms-you-meet-on-the-0">The three kinds of platforms you meet on the Internet</a>”. He defined the following three levels of a platform as follows:<br />
<ul>
<li><strong>Level 1 - “Access API”:</strong> “platform’s apps run
elsewhere, and call into the platform via a web services API to draw on
data and services – this is how Flickr does it.”</li>
</ul>
<ul>
<li>
<strong>Level 2 - “Plug-In API”:</strong> “platform’s apps run elsewhere, but inject functionality into the platform via a plug-in API – this is how Facebook does it.”</li>
</ul>
<ul>
<li>
<strong>Level 3 - “Runtime Environment”:</strong> “platform’s apps run
inside the platform itself – the platform provides the “runtime
environment” within which the app’s code runs.”</li>
</ul>
In the same year, <a href="http://www.gooddata.com/">GoodData</a> was founded by serial entrepreneur <a href="https://twitter.com/RomanStanek">Roman Stanek</a>
to take on the calcified world of Business Intelligence (BI). Unlike
other BI vendors, we chose a radically different approach. We did not
try to build yet another closed BI tool with its inherent strengths and
unavoidable weaknesses. We were determined to build an open BI platform.
Last week, after years of continuous innovation from over 150 engineers
who powered nearly 100 major platform releases, we officially unveiled
our next generation, end-to-end Open Analytics Platform.<br />
<br />
Continue reading at <a href="https://web.archive.org/web/20141012140336/https://developer.gooddata.com/blog/gooddata-open-analytics-platform">https://web.archive.org/web/20141012140336/https://developer.gooddata.com/blog/gooddata-open-analytics-platform</a>...Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-45134263934329420432014-01-08T21:35:00.000+01:002014-05-06T21:36:39.886+02:00Partnering with StartupYard to Turbocharge European Startups"Our thinking behind the StartupYard partnership was this: if you want to innovate in the BI space, why try to replicate what GoodData has already done in the past six years? Why not focus on your core competency and let GoodData to take care of the rest? Amazon Web Services (AWS) has spurred innovation by lowering the barrier to entry for new software startups as new companies no longer need to buy hardware and run their own datacenter. In a similar fashion, GoodData is changing the domain of BI. If you want to innovate in the Data and Analytics space in 2014, there is no need to start from scratch."
- See more at: <a href="http://www.gooddata.com/blog/gooddata-platform-turbocharging-european-startups/">http://www.gooddata.com/blog/gooddata-platform-turbocharging-european-startups/</a>Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-83745660070463943042013-10-16T21:29:00.001+02:002022-10-05T10:16:46.808+02:00GoodData: The DevOps Story @ FIT CVUT October 16 2013Presentation was a part of FIT CVUT / MI-AIT (Případové studie aplikace a řízení IT).
We compare the traditional organization model of separate teams for engineering, QA and operations to the DevOps model using autonomous cross-functional teams. The presentation uses GoodData as a case study.
<iframe src="//www.slideshare.net/slideshow/embed_code/key/zO91ISh9kfPHzN" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/jgergic/fit-cvut-october-16-2013" title="GoodData: The DevOps Story @ FIT CVUT October 16 2013" target="_blank">GoodData: The DevOps Story @ FIT CVUT October 16 2013</a> </strong> from <strong><a href="//www.slideshare.net/jgergic" target="_blank">Jaroslav Gergic</a></strong> </div>Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-83227834837325023352013-08-07T21:21:00.001+02:002022-10-05T10:12:33.466+02:00Software Engineering in the Age of SaaS and Cloud Computing - SERA 2013 - MFF UK - August 2013Cloud computing is accelerating the pace of migration from on-premise behind-the-firewall software deployment to Software as a Service (SaaS) subscription based delivery model. While accelerated innovation cycle and reduced time to value enabled by the above paradigm shift are well recognized due to their direct business impact, it is often overlooked how the new delivery model is affecting software engineering itself in terms of tools, processes as well as of its theoretical arsenal needed to develop cloud applications.
<b>Updated GoodData platform statistics as of Q2 2013!</b>
<iframe src="//www.slideshare.net/slideshow/embed_code/key/nhoI79AmXIczAP" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/jgergic/sera-2013-keynote-mff-uk-august-2013" title="Software Engineering in the Age of SaaS and Cloud Computing - SERA 2013 - MFF UK - August 2013" target="_blank">Software Engineering in the Age of SaaS and Cloud Computing - SERA 2013 - MFF UK - August 2013</a> </strong> from <strong><a href="//www.slideshare.net/jgergic" target="_blank">Jaroslav Gergic</a></strong> </div>Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-19810060978956909022013-05-11T16:24:00.005+02:002022-10-05T10:13:45.137+02:00GoodData case study at "Nápad roku 2013" - "Jak vybudovat úspěšný globální startup" - May 2 2013<a href="http://www.napadroku.cz/">Napad roku</a> is a competition for young entrepreneurs in Czech Republic. I was asked to present GoodData as a 15 min case study of a successful global startup with Czech founder and R&D in Czech Republic.
<iframe src="//www.slideshare.net/slideshow/embed_code/key/c9gJz17FYFiOWq" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/jgergic/cvut-napad-roku-jak-vybudovat-uspesny-globalni-startup-may-2-2013" title="GoodData case study at "Nápad roku 2013" - "Jak vybudovat úspěšný globální startup" - May 2 2013" target="_blank">GoodData case study at "Nápad roku 2013" - "Jak vybudovat úspěšný globální startup" - May 2 2013</a> </strong> from <strong><a href="//www.slideshare.net/jgergic" target="_blank">Jaroslav Gergic</a></strong> </div>Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-16005979225449347092013-04-12T19:20:00.001+02:002022-10-05T10:14:36.120+02:00eClub CVUT - How to organize work in a small startup?Presentation held as a part of eClub @ Czech Technical University in Prague.<br />
<br />
<br />
<iframe src="//www.slideshare.net/slideshow/embed_code/key/eaZMrJdFO3P1jK" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/jgergic/e-club-cvut-prague-april-11-2013" title="eClub CVUT - How to organize work in a small startup? - Prague - April 11 2013" target="_blank">eClub CVUT - How to organize work in a small startup? - Prague - April 11 2013</a> </strong> from <strong><a href="//www.slideshare.net/jgergic" target="_blank">Jaroslav Gergic</a></strong> </div>Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-31701347503897749752013-03-13T11:38:00.001+01:002022-10-05T10:15:22.284+02:00SaaS - Software as a Service - Charles University - Prague - March 2013<p>A presentation about what it takes to deliver a SaaS product as opposed to the traditional software engineering. Delivered to the students of computer science at Charles University, Prague on March 6 2013 as part of the Commercial Workshop series.</p>
<iframe src="//www.slideshare.net/slideshow/embed_code/key/EvmOo7OGIbdLs9" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen> </iframe> <div style="margin-bottom:5px"> <strong> <a href="//www.slideshare.net/jgergic/saa-s-software-as-a-service-mff-uk-march-2013" title="SaaS - Software as a Service - Charles University - Prague - March 2013" target="_blank">SaaS - Software as a Service - Charles University - Prague - March 2013</a> </strong> from <strong><a href="//www.slideshare.net/jgergic" target="_blank">Jaroslav Gergic</a></strong> </div>Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-44800859056969258992011-04-20T20:32:00.000+02:002011-04-20T20:32:02.473+02:00GoodData Innovation MachineOn Tuesday April 12, coincidentally on the 50th anniversary of the first human space flight, <a href="http://www.gooddata.com/">GoodData</a> have launched <a href="http://support.gooddata.com/entries/20018677-release-50-notes-tuesday-april-12-2011">Release 50</a> featuring <i>GoodData Sales Analytics for Salesforce</i>. I took this special opportunity to look back and recap the journey from the "<i>R1</i>" as we call it internally to the latest "<i>R50</i>". Continue reading <a href="http://developer.gooddata.com/blog/2011/04/20/gooddata-turned-50-in-just-32-months/">GoodData turned 50 in just 32 months!</a> on our <a href="http://developer.gooddata.com/blog/">developer blog</a>.Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-91278905404887849322011-04-03T13:35:00.000+02:002011-04-03T14:07:00.274+02:00One Week on FroyoLate March 2011 Motorola has finally begun to roll out <a href="http://supportforums.motorola.com/community/manager/softwareupgrades">Froyo</a> for <a href="http://en.wikipedia.org/wiki/Motorola_Droid">Milestone</a> in Europe. Yesterday, it's been a week since I upgraded my <span style="font-style: italic;">Milestone</span> from <span style="font-style:italic;">Eclair</span> to <span style="font-style:italic;">Froyo</span>, so here comes a list of first impressions:<br /><br /><span style="font-weight:bold;">The Good Stuff (Pros)</span><br /><ul><li><span style="font-style: italic;">Move to SD</span> is great stuff, I have been fighting with insufficient space on internal drive for most of the last six months.</li><li>New breed of Google Apps including <span style="font-style: italic;">Gmail</span> with <span style="font-style: italic;">Priority Inbox</span> and <span style="font-style: italic;">Calendar</span> with enhanced sync for multiple Google accounts represents a big productivity boost for me.</li><li>Overall, many apps with <span style="font-style: italic;">Froyo-only</span> features such as <span style="font-style: italic;">push-sync</span> in <a href="http://www.rememberthemilk.com/"><span style="font-style: italic;">RememberTheMilk</span></a> or SHOUTcast radio support in <span style="font-style: italic;">WinAmp</span> make the phone much more up-to-date.</li><li>The switching back and forth between <span style="font-style: italic;">Flight Mode</span> and normal mode is reliable in <span style="font-style: italic;">Froyo</span> (this has been <span style="font-style: italic;">huge </span>annoyance in <span style="font-style: italic;">Eclair</span>)</li><li>I have not experienced a single spontaneous restart during the past week.<br /></li><li>The <span style="font-style: italic;">Flash </span>support in the Browser also comes handy - no more websites with the annoying blue missing plug-in logo.</li></ul><span style="font-weight: bold;">Not so Good Stuff (Cons)<br /></span><ul><li>Something is clearly broken in the <span style="font-style: italic;">Home</span> screen applet - going back forces the whole screen to refresh, which is <span style="font-style: italic;">very slow </span>and can take several seconds to complete. Probably as a result of this, the dedicated <span style="font-style: italic;">Home</span> button sometimes does not seem to react at all. I usually <span style="font-style: italic;">press-and-hold </span>the button to get straight to the list of the last 8 apps to switch quickly between the apps. I use the Home screen as last resort only.</li><li>The dedicated <span style="font-style: italic;">Search</span> button is even worse - it seems that it registers clicks at about 50% of occasions. If I hold it a little bit longer, the <span style="font-style: italic;">Voice Search </span>pops-up instead, which is pretty annoying.</li><li>The phone hangs for couple of seconds from time to time, but then resorts to normal operation. I suspect, there is some memory issue in <span style="font-style: italic;">Froyo</span>, causing the operating system to keep closing and re-launching apps much more often than it used to be in <span style="font-style: italic;">Eclair</span></li><li><span>I disabled all window animations in <span style="font-style: italic;">Settings</span> and disabled live wallpaper on the <span style="font-style: italic;">Home</span> screen which somewhat improved the speed of re-draw but still has not solved the problem so far.</span><span style=" font-style: italic;"><br /></span></li></ul><span style="font-weight: bold;">Summary</span><p>So far so good. I am glad Motorola has finally made it, because I am afraid that otherwise the Milestone would not last much longer - the amount of <span style="font-style: italic;">Froyo-only </span>and <span style="font-style: italic;">Froyo-enhanced</span> apps and the severe internal drive limitation were basically killing the device. The new release (Android 2.2.1) packaged together by Motorola is definitely usable even though it has its flaws.<br /></p>Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-24083588338065462922011-02-06T16:12:00.000+01:002011-02-06T16:28:40.996+01:00Android - Alternative Keyboards Shootout<style type="text/css">.nobr br { display: none }</style><br /><p align="center"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_ZW-DFEVKQTgyriJ1W7QeLXsYYXVomqy83LgVJ5Ge5IaqLmBb7srLFkudh_6ETMhowriGgF5N5HLZKbK7X5B-Q0B-Otze_U9o7Es_WHDJtMxG5I6m-F_UHLqDjezKh5vU9qjqcn3Oi0OS/s1600/Motorola-milestone-wikipedia.jpg"><img style="cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_ZW-DFEVKQTgyriJ1W7QeLXsYYXVomqy83LgVJ5Ge5IaqLmBb7srLFkudh_6ETMhowriGgF5N5HLZKbK7X5B-Q0B-Otze_U9o7Es_WHDJtMxG5I6m-F_UHLqDjezKh5vU9qjqcn3Oi0OS/s400/Motorola-milestone-wikipedia.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5570595049746224754" /></a><br /><em>The Motorola Milestone picture, courtesy of <a href="http://en.wikipedia.org/wiki/File:Motorola-milestone-wikipedia.jpg">Wikipedia</a>.</em></p><p>Most of the time, I stick to the hardware slide-out keyboard of the <a href="http://en.wikipedia.org/wiki/Motorola_Droid">Motorola Milestone</a>. Indeed, the presence of the hardware keyboard was one of the main reasons I chose this device over the other in the first place. However, there are occasions, when I just need to quickly reply to a text message or an email, often while on the go having only one hand available to operate the device. I use the stock Android soft-keyboard in these cases, but I remain unhappy with the perceived high number of typos and errors. Many times I start typing on the soft-keyboard and eventually frustrated with the typos I slide out the hardware keyboard, rotate the device to the landscape mode and finish the text on the hardware keyboard. The problem with this solution is, that switching takes time: applications need to react to the screen orientation change and redraw the user interface. Some apps are fast, but for some of them, this change takes one or two seconds and the user experience suffers.</p><p>As <a href="http://swypeinc.com/">Swype</a> keyboard was not available for the first generation <em>Droid</em> / <em>Milestone</em> I tried <a href="http://www.mobiletextinput.com/">SlideIT</a> which is based on a similar concept, but after a short trial I turned back to the stock: I need to frequently switch back and forth between <em>Czech</em> and <em>English</em>, sometimes even using words from both languages in one message which makes all keyboards relying on a dictionary unsuitable for my use case.</p><p align="center"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiva-grcU4Zp-1ZD2qXinulxMmTVK-QdkdUeyYZ6a6YZ88KYIDiHR_TnkkrEtdJ8vBtnIjUtBnhPuZ0Ks8naXt6cbegQH6rPoM91HWWIqYFjKr7nlbua1VzCEUkeXLcjT1IOqqAaq19IeqY/s1600/8pen.jpg"><img style="cursor:pointer; cursor:hand;width: 225px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiva-grcU4Zp-1ZD2qXinulxMmTVK-QdkdUeyYZ6a6YZ88KYIDiHR_TnkkrEtdJ8vBtnIjUtBnhPuZ0Ks8naXt6cbegQH6rPoM91HWWIqYFjKr7nlbua1VzCEUkeXLcjT1IOqqAaq19IeqY/s400/8pen.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5570595570142969602" /></a> <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFi_RbWklKsQDeiBQoB8Je5X4zdipfsqXv6BU5QLDqG2G5kYsNyeulze3nQKDLOrlhNfZ-YnfJY0AvHLhBrXu9EKYyZh1X5Pk-Tix8oMEkvI0eL_g4SYhh8mfjzMIMnVReqX-_CGkd6T9g/s1600/MessagEase.jpg"><img style="cursor:pointer; cursor:hand;width: 224px; height: 336px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFi_RbWklKsQDeiBQoB8Je5X4zdipfsqXv6BU5QLDqG2G5kYsNyeulze3nQKDLOrlhNfZ-YnfJY0AvHLhBrXu9EKYyZh1X5Pk-Tix8oMEkvI0eL_g4SYhh8mfjzMIMnVReqX-_CGkd6T9g/s400/MessagEase.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5570595273953091650" /></a><br/><em>Note: The keyboard pictures above were taken from the Android Market</em></p><p>In the fall 2010, I registered an interesting newcomer to the alternative Android keyboards race the <a href="http://www.the8pen.com/">8pen</a> keyboard (<a href="https://market.android.com/details?id=com.threequbits.android.eightpen">Android Market</a>). I decided to give it spin. During the approximately two week test drive, <a href="http://www.exideas.com/ME/ProductsMEOK.html">MessagEase</a>, a soft keyboard which has its roots on the <em>Palm OS</em> platform, was released to the <a href="https://market.android.com/details?id=com.exideas.mekb">Android Market</a> so I included it in the competition. I installed <a href="http://sites.google.com/site/mydroidsoft/mytextspeed">myTextSpeed</a>, available on the <a href="https://market.android.com/details?id=com.mydroidsoft.mytextspeed">Market</a> to establish a leveled playing field and tried to compare both newcomers <em>8pen</em> and <em>MessagEase</em> with the incumbents - the <em>hardware keyboard</em> and the <em>stock Android keyboard</em>. You can see the best scores I recorded in <em>myTextSpeed</em> for all the four keyboards in two different races, typing two classic books texts.</p><div class="nobr"><table class="jg" border="1" cellspacing="0"><br /> <tr><br /> <th> </th><br /> <th>Moby Dick</th><br /> <th>The Odyssey</th><br /> <th>Note</th><br /> </tr><br /> <tr><br /> <th>Droid HW keyboard</th><br /> <td>166 CPM / 30 WPM / 100% accuracy</td><br /> <td>166 CPM / 34 WPM / 100% accuracy</td><br /> <td>landscape mode, thumb-typing, both hands</td><br /> </tr><br /> <tr><br /> <th>Stock Android 2.1</th><br /> <td>115 CPM / 19 WPM / 100% accuracy</td><br /> <td>112 CPM / 24 WPM / 100% accuracy</td><br /> <td>portrait mode, thumb-typing, one hand</td><br /> </tr><br /> <tr><br /> <th>MessagEase</th><br /> <td>87 CPM / 15 WPM / 100% accuracy</td><br /> <td>91 CPM / 19 WPM / 100% accuracy</td><br /> <td>portrait mode, thumb-typing, one hand</td><br /> </tr><br /> <tr><br /> <th>8pen</th><br /> <td>62 CPM / 12 WPM / 100% accuracy</td><br /> <td>54 CPM / 11 WPM / 100% accuracy</td><br /> <td>portrait mode, thumb-typing, one hand</td><br /> </tr><br /></table></div><p><em>Note: The 100% accuracy means, that any time I made a typo, I corrected the typo before proceeding further.</em></p><p>The fact that the hardware keyboard comes out as a winner is not a big surprise to me. This confirms the tests I did on the HP <a href="http://d3s.mff.cuni.cz/~gergic/ogo_page/omnigo.html">OmniGo</a> palmtop many years ago. I was about 2x as fast thumb-typing on its calculator-like qwerty keyboard than using the <a href="http://en.wikipedia.org/wiki/Graffiti_(Palm_OS)">Graffiti</a> handwriting recognition. What comes as a surprise, is the fact that the stock Android soft-keyboard fared better the alternatives, even though the perception during the regular usage tells otherwise. Between <em>8pen</em> and <em>MessagEase</em>, the later one fared batter. <em>MessagEase</em> is also faster to learn: after just one day trial, I could already type faster on it than after one week on <em>8pen</em>. The bad thing about <em>MessagEase</em> though is that it does not work well with the hardware keyboard in the landscape mode. Ideally, I would like to use the built-in keyboard driver in the landscape mode and restrict <em>MessagEase</em> to portrait mode only, which is not currently possible.</p>Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-61679563624483718512011-02-03T17:20:00.000+01:002011-02-03T08:01:42.607+01:00Why SaaS and Cloud Computing make IT fun again<p>If you had asked me five or even three years ago what I thought of IT, I would probably replied that I had enough of IT for the rest of my life. Computers were fun in 90's when I was a <a href="http://d3s.mff.cuni.cz/~gergic/">student</a>, but after the year 2000, with the increasing industrialization and maturity of the IT industry, things were starting to become boring for me. IT was no longer that exciting mix of science and art. This was especially the case of the enterprise IT as low cost country outsourcing turned the software development and enterprise integration into a full blown industrial process with lack of creativity: Armies of anonymous software engineers implementing endless customizations of a questionable business value, all this driven by multi-month waterfall projects and roll outs. Well, I exaggerate here a bit, I agree. ;-)</p><p>It was the rise of Software as a Service (SaaS) which changed the rules of the game. By running a single multi-tenant instance of a service on top of a hardware and software stack of their own choice, SaaS vendors are able to completely avoid the costs of supporting a <em>platform matrix</em> - multiple hardware architectures, operating systems, database engines and middleware platforms. They save additional resources by actively supporting only one version of their software at a time. By preferring <em>configuration over customization</em>, the ability to let customers implement limited changes while still maintaining a single code base and a single physical instance of a service , the costs of implementation and maintenance - especially upgrades - are also significantly reduced. Overall, SaaS allows to focus much more resources towards productive use as opposed to unproductive technicalities which plague the traditional behind-the-firewall implementations and ISVs.</p><p>The above productivity gains together the <em>centralization</em> brought about by running a single instance of a SaaS app caused another indirect change though: Armies of software engineers are no longer needed or desired. When building a SaaS application, you need a small <em>SWAT</em> team of engineers of exceptional qualities rather then a large infantry of average coders. The reason is that you need to move very fast and be extremely flexible in order to react to changing circumstances. Sure, managing a team of exceptional individuals brings difficulties of its own kind: strong opinions, clashing egos, flame wars over programming languages and architectural approaches. One has to work hard to keep the team together as opposed to ending up with a bunch of eccentric individuals. But I still prefer dealing with these problems and work once again in an environment, where creativity and smarts of a small team can win over a much larger and well equipped competitor.</p><p>What do <em>public clouds</em> and <em>Platform as a Service</em> (PaaS) such as <a href="http://aws.amazon.com/">AWS</a> bring on top of SaaS? I believe the key features are <em>democratization</em>, <em>elasticity</em> and <em>raised level of abstraction</em>. By democratization I mean the fact, that in the age cloud, everybody, even a small startup, can afford to run its service on a world-class infrastructure. Elasticity of public clouds brings the ability to grow and shrink capacity in matter of minutes - at <a href="http://www.gooddata.com/">GoodData</a> we grow our platform month-on-month at double-digit rate since summer of 2008. Capacity planning in case we had to procure and provision physical hardware would become a nightmare. And last but not least, raising the level of abstraction, realized by utilizing higher-level platform services and management APIs, allows cloud-hosted SaaS vendors to focus yet more energy towards their core competencies, rather than developing and maintaining the low level platform stack.</p><p>Eventually, I am glad that I did not succeed departing the IT industry five years ago, because I would miss the paradigm shift which is changing the whole landscape of IT these days. I am glad to be a part of that seismic shift.</p>Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0tag:blogger.com,1999:blog-5187300018534315656.post-5149327414614941832010-12-12T16:40:00.000+01:002010-12-12T17:22:58.306+01:00Introduction to Technology Thoughts SeriesThe <a href="http://jardaonthego.blogspot.com/">travel blog</a> I started back in <a href="http://jardaonthego.blogspot.com/2008/03/p1i-blogger-test.html">Spring 2008</a> was in fact a coincidence. I bought the<a href="http://en.wikipedia.org/wiki/Sony_Ericsson_P1"> Sony Ericsson P1i</a> smartphone at the time and it came with a native <span style="font-style: italic;">Blogger</span> client app. It was not about any serious blogging though: the app was limited to entering a <span style="font-style: italic;">title</span>, choosing a <span style="font-style: italic;">photo</span>, adding a <span style="font-style: italic;">description</span> and hitting the <span style="font-style: italic;">Publish</span> button. I started using the app on the road as I was carrying the P1i everywhere and as an <a href="http://www.ariba.com/">Ariba</a> consultant, I was traveling quite a lot to different places around Europe.<br /><br />I keep using the same schema since then to maintain what I would call a "<span style="font-style: italic;">travel log</span>" - a stream of postcards from places I am vising. May be, one day in a distant future, over a cup of good coffee, I will be recalling my memories by scrolling through the travel blog and reminding myself of the past adventures. You know - these nostalgic moments. ;-)<br /><br />Coming back to today and to all the hot stuff happening around me, I realized I feel an urgent need to start a real blog to capture my thoughts on my professional life at <a href="http://www.gooddata.com/">GoodData</a> as well as technology related hobbies and interests like mobile devices which I follow for <a href="http://d3s.mff.cuni.cz/%7Egergic/ogo_page/omnigo.html">almost 15 years</a>. Let's hope this blog to be a valuable addition to the blogosphere - both inspiring and sparking discussions in the target communities.Yarda Ghttp://www.blogger.com/profile/10209571022416409636noreply@blogger.com0