Sounds wrong when taken out of context of the sentence, but to avoid confusion I edited the paragraph and linked further resources. Thanks for careful reading!

Milica Mihajlija | Stories by Milica Mihajlija on Medium | 2018-08-15 08:10:54

How to run native code in the browser, why would you do that, and what does it all mean for JavaScript and the future of web development

In every browser, whether you use Chrome, Firefox, Edge, or Safari, code is interpreted and executed by a JavaScript engine — which only runs JavaScript. Unfortunately, JavaScript is not ideal for every task we want to perform. That’s where WebAssembly steps in.

WebAssembly is a new type of code that can be run in modern browsers. It was created to get better performance on the web. It’s a low-level binary format that has a small size, so it’s fast to load and execute. You do not write WebAssembly, you compile other higher level languages to it.

Assembly typically refers to humanly readable languages that are similar to machine code. Machine code is what your processor understands, a bunch of numbers.

Assembly languages and machine code

Every high-level programming language gets translated down to machine code in order to run on the processor. Different kinds of processor architectures need different machine codes and different kinds of assembly for each of them.

Compiling source code for different processor architectures

Despite its name, WebAssembly is not quite an assembly language because it’s not meant for any specific machine. It’s for the browsers, and when you’re delivering code to be executed in the browser, you don’t know what kinds of machines will your code be running on.

WebAssembly as an intermediary compiler target

WebAssembly is a language for a conceptual machine that’s the least common denominator of the popular real world hardware. When the browser downloads the WebAssembly code it can quickly turn it to any machine’s assembly.

This is what WebAssembly looks like — it has a textual format that’s easy to read (.wat), but binary representation is what you actually deliver to the browser (.wasm).

WebAssembly textual and binary format

What WebAssembly enables you to do is to take things like C, C++ or Rust code and compile it into what is called a WebAssembly module. You can load that into your web application and call it from JavaScript.

It’s not a replacement for JavaScript, it works alongside JavaScript.

WebAssembly module in an application

Why we need WebAssembly

Think about the cases where you need to use software outside of the browser: video games, video editing, 3D rendering, or music production. These applications do a lot of calculations and require a high degree of performance. That kind of performance is hard to get from JavaScript.

JavaScript started as a simple scripting language meant to bring some interactivity to the web full of lightweight hypertext documents. It was designed to be easy to learn and write, but it wasn’t designed to be fast. Over the years, browsers added optimizations in the way they interpret JavaScript that brought major performance improvements.

As it got faster, the list of things that you could do in the browser started expanding. New APIs brought things like interactive graphics, video streaming, offline browsing and many more. In turn, more and more rich applications, that were previously native-only, started coming to the web. Today you can easily edit documents and send emails from a browser, but there are areas where JavaScript performance is still a struggle.

Video games are particularly challenging because they have to coordinate not only audio and video, but also often physics and artificial intelligence. Being able to reach the performance for running games on the web efficiently would open the doors to bringing many other applications to the web and that’s what WebAssembly set out to do.

Why is the web so attractive

The beauty of the web is that it’s like ✨magic ✨— it works anywhere. There is no download and no installation. In one click, web applications are delivered as soon as you need them. It’s safer than downloading and running a binary directly on a computer because browsers have established security properties that keep the code running in them from messing with your system. And sharing on the web is as easy as it gets — links are just clickable strings that you can put anywhere.

It is the only truly universal platform that makes your application accessible on any device. This also allows you to maintain a single code base, make the updates simple and be sure that every user can access your application.

Because of these built-in powers and the interactivity that the web offers, we went from hypertext and a small scripting language all the way to an incredibly powerful and popular platform filled with amazing applications and capabilities. But until now, it was still fundamentally powered by the same scripting language that was never really designed to do all of this in the first place.

What WebAssembly brings to the table

Here’s what makes WebAssembly special and such a good fit for the web:

  • speed
  • portability
  • flexibility

WebAssembly was designed for speed. Its binaries are much smaller than textual JavaScript files. Because of their size, they are faster to download and this is especially important on slow networks.

They are also faster to decode and execute. JavaScript is a dynamically typed language, variable types don’t have to be defined upfront and it doesn’t need to be compiled ahead. This makes it easy and fast to write, but it also means that the JavaScript engine has a lot more work to do. It has to parse, compile and optimize the code as it’s being executed on the page.

Parsing JavaScript involves transforming plain text to a data structure called abstract syntax tree (AST) and turning that into binary format. WebAssembly is delivered as binary and decoding it happens much faster. It’s statically typed so, unlike with JavaScript, the engine doesn’t need to speculate during compilation about what types will be used. Most of the optimization happens during the compilation of source code, before it even gets into the browser. Memory is managed manually, just like in languages like C and C++, so there’s no garbage collection either. All of this gives better and more reliable performance. The execution time of WASM binaries is just 20% slower than the execution of same native code.

Relative time spent processing WebAssembly in JavaScript engine

One of the main goals in designing WebAssembly was portability. To run an application on a device, it has to be compatible with the device’s processor architecture and operating system. That means compiling source code for every combination of operating system and CPU architecture that you want to support. With WebAssembly there is only one compilation step and your app will run in every modern browser.

Compiling native code to run on different platforms vs. compiling to WebAssembly

You can port not only your own applications to the web, but also the incredible wealth of C++ libraries and open source applications that exist out there. It is a language that is supported on practically every platform, including iOS and Android. With WebAssembly, it can be used as the common language across your web and mobile deployments.

The most exciting thing about WebAssembly is that it brings more flexibility in writing for the web. Until now, JavaScript has been the only fully supported language in web browsers. With WebAssembly, web developers will be able to choose other languages and more developers will be able to write code for the web. JavaScript will still be the best choice for most use cases but now there will be an option to drop down to a specialized language once in a while when you really need a boost. Parts like UI and app logic could be in JavaScript, with the core functionality in WebAssembly. When optimizing performance in existing JS apps, bottlenecks could be rewritten in a language that is better suited for the problem.

The current fully supported languages are C, C++ and Rust, but there are many others that are in the works, including Kotlin and .NET, both of which have already shipped experimental support.

How it works

You need a tool that will compile your source code to WebAssembly. One way is to use the seasoned modular compiler toolchain LLVM that can be set up to work with different languages. For compiling C and C++ you can use a simpler tool based on LLVM called Emscripten. Rust Nightly has it’s own compiler rustc that can output WebAssembly directly.

If you have a “Hello world” written in C, this Emscripten command will generate the files necessary to run it in the browser. What you get is a WebAssembly module along with HTML and JS files.

emcc hello.c -s WASM=1 -o hello.html
Compiling C/C++ code to WebAssembly with Emscripten

You need HTML and JS files because WebAssembly doesn’t have direct access to any platform APIs — the DOM, WebGL, WebAudio etc. To work with any of these, even to display the output of your WebAssembly code on a page, you have to go through JavaScript. Emscripten creates JS code that sets up your module and makes communicating with Web APIs possible. The HTML file loads that JS and displays WebAssembly output in a textarea or a canvas element.

You can think of WebAssembly binaries as regular app modules: the browser can fetch, load, and execute them. They have imports and exports that allow you to work with them the same way you work with JavaScript objects. You can call WebAssembly functions in JavaScript code and you can call JavaScript functions in WebAssembly modules.

It has only four primitive types and they are all numbers — integers and floats (i32, i64, f32 and f64). This means that passing more complex data types between JavaScript and WebAssembly is not straightforward. If you want to pass a string for example, you have to encode it into an array of numbers and then pass a pointer to it. It can only read and write from its own linear memory and it doesn’t have direct access to external JavaScript variables, unless they are copied into memory or passed through the call stack.

Right now making a lot of calls through JavaScript is not very fast, because the engine has to do some setup work each time. This will likely change in future, but for now good advice is to think of WebAssembly as a system that runs well in isolation and use it to offload big chunks of work.

If you want to try it out without any setup head over to or WebAssembly Explorer.

Can you use it?


It’s here and it’s real. WebAssembly support rolled out last year in all major browsers. It’s currently supported for 74.93% of all global users and even 82.92% of desktop users. As a fallback for older browsers you can use Emscripten to compile to asm.js — a subset of JavaScript that uses only numbers (no strings, objects, etc.). It is a format that directly led to creating WebAssembly and it’s used widely on the web, for example for image compression when uploading photos to Facebook and for image editing in Adobe’s Lightroom.

Browsers that support WebAssembly

There are already some very exciting examples of WebAssembly in the real world.

I mentioned video games as a big goal for WebAssembly and both Unity and Unreal Engine 4 already have working demos. You can play a game of Tanks! with WebAssembly running in the Unity engine and Epic has a short WebAssembly demo online.

Tanks! Demo - WebAssembly

Figma is an interface design tool that runs in the browser and allows designers to easily collaborate and share their work. It’s mostly written in C++ and has a 2D WebGL rendering engine that can handle very large documents. Initially they were using asm.js to compile their C++ code for the web. By switching to WebAssembly, their load time improved by more than 3x regardless of document size.

WebAssembly cut Figma’s load time by 3x

AutoCAD is design software which is mostly used in various engineering fields for making drawings such as floor plans, electrical circuits, piping designs etc. It’s written in C++ and it has been around for 35 years, longer than the web itself. Because of WebAssembly, it is now available as a web app without the need to rewrite such a huge code base in another language.

You can expect more and more applications to use WebAssembly and there are also some interesting demos online, like a video editor, raytracer and facial recognition algorithm running in the browser.

What’s to come

The browsers are already working on new features. Support for threading and garbage collection is coming, which will make WebAssembly a more suitable target for compiling languages like Java, C# and Go. One of the important goals is also creating debugging tools that support source maps which would allow developers to easily map WebAssembly to their source code.

JavaScript will still have its place in web development. It’s a great language, flexible enough to build almost anything and those few gaps that it can’t handle well can now be filled with WebAssembly. Compiling JavaScript to WebAssembly is not possible, and it really wouldn’t make much sense because browsers are already designed to work with JS directly and maximize its performance.

But even if you continue to work with JavaScript only, you can still benefit from WebAssembly and the speed boosts that it brings, through improved libraries and frameworks. Soon enough you’ll be able to download and import these modules like any other ECMAScript module using <script type='module'> and simply call their functions from JavaScript. As for the frameworks, Ember is already investigating WebAssembly implementation for its Glimmer VM and there’s potential for implementing some of the React features in WebAssembly too.

The future is here now and it looks fast and bright 🚀🌞

Plug: LogRocket, a DVR for web apps

LogRocket is a frontend logging tool that lets you replay problems as if they happened in your own browser. Instead of guessing why errors happen, or asking users for screenshots and log dumps, LogRocket lets you replay the session to quickly understand what went wrong. It works perfectly with any app, regardless of framework, and has plugins to log additional context from Redux, Vuex, and @ngrx/store.

In addition to logging Redux actions and state, LogRocket records console logs, JavaScript errors, stacktraces, network requests/responses with headers + bodies, browser metadata, and custom logs. It also instruments the DOM to record the HTML and CSS on the page, recreating pixel-perfect videos of even the most complex single page apps.

Try it for free.

WebAssembly: How and why was originally published in LogRocket on Medium, where people are continuing the conversation by highlighting and responding to this story.

Milica Mihajlija | Stories by Milica Mihajlija on Medium | 2018-08-15 07:57:22

Crazy genius panic at the Disco shirt

And if you were talked to or talked about in that manner you would be offended.Would you parents accept you saying things like that to…

Julia Lima | Thu thm t uy tn | 2018-08-15 07:25:41

Protocolbuffer Binary Format(.pbf) and Mapbox Vector Tiles(.mvt) are two popular formats for sharing map data. Prior to this GSoC project, the iD editor in OSM supported GPX data. GPX is an XML schema designed as a common GPS data format for software applications. It can be used to describe waypoints, tracks, and routes.

The main objective of the project was to add support for vector tile data to iD. MVT and PBF contain data of a particular tile. These files contain data in Protocolbuffer binary format and can have various sets of data like name of cities, or train stations etc. This data can be in the form of points, lines or polygons. A vector tile looks something like this :

The goal is to draw the data of these tile on iD and it should show up on the screen like this :

For implementing the feature the following steps were followed:

  1. Creating a new layer : A new mvt layer is created that would accept a pbf/mvt file. d3_request library is used to read the data in arraybuffer format.
  2. Converting data to GeoJSON : The arraybuffer data is converted to GeoJSON format before passing to the drawMvt function.
    For converting vector tile data to GeoJSON data, Mapbox provides with two libraries:
    1. vt2geojson
    2. vector-tile-js
    vt2geojson is great for changing vector tiles to GeoJSON from remote URLs or local system files but it works with Node.js only.
    For iD we have used mapbox’s vector-tile-js, it read Mapbox Vector Tiles and allows access to the layers and features, these features can be further converted to GeoJSON.
  3. MVT drawing : This GeoJSON data is pass directly to the D3 draw functions which renders the data. (iD uses D3 for all of our drawing already)

All the work related to the above steps is here.

4. Next step was writing the tests for the above code. Tests for the code are here.

Performance Testing

  1. Choosing data : The data which was used to create the vector tiles for testing is this :
    It is a dense data consisting of only points.
  2. Creating MVTs : Vector tiles were created using the above data using a tool called tippecanoe. Mapbox’s tippecanoe is used to build vector tilesets from large (or small) collections of GeoJSON, Geobuf, or CSV features.
  3. Tippecanoe converts GeoJSON data to mbtiles format, these files contain data for more than one tile. Mapbox/mbview was used to view these tiles in localhost and extract individual tiles from the network tab.

4. This URL when passed to iD draws the vector tile like this :

URL used :,mapbox.mapbox-streets-v7/12/1207/1541.vector.pbf?access_token= ‘pk.0000.1111’
# replace value with your mapbox public access token

Some More Interesting Stuff

There is much more that can be done with vector tiles. One thing is better styling of the drawings. A very next step is to provide different colors to different layers of the tile data.

For more discussion, you can follow here.
My earlier blogs can be found here.

Princi Vershwal | Stories by Princi Vershwal on Medium | 2018-08-13 08:10:59

Apologies for the long break between releases – we have been busy working on fixing an issue that many users were reporting with failed uploads, and we are thrilled to announce that we may have finally solved it! 🙂 Additionally, Wikidata integration is now complete, with uploads via Nearby Places automatically editing the p18 property of the associated Wikidata item. There are several other new features, including two recently-completed GSoC projects that we mentored – users can now browse other images on Commons, and view their achievements and upload statistics.

Please feel free to register for beta testing if you would like to help test v2.8. If you experience any bugs or crashes, or if you find any aspect of the new features to be unwieldy, please do let us know on GitHub.

Important bugfixes

Failed uploads

Over the last two months, we have attempted to debug and solve a problem reported by many users – that their uploads consistently fail. We had a lot of difficulty reproducing the problem, figuring out what caused it and obtaining the information needed to fix things, and we almost had to revert the new 2FA feature as a last resort. But we finally have a solution that fixes the problem for our testers (while still keeping 2FA intact), so we hope this works for everyone else too!

For those experiencing this issue, please register for beta testing and update to version 2.8, and let us know if it does not solve the problem for you.

Crashes during upload

We have also fixed a longstanding issue with users occasionally crashing halfway through an upload.

New features

Wikidata p18 edits via Nearby uploads

The “Nearby places that need pictures” feature works by searching for Wikidata items that are located within a certain radius of the user and are missing the p18 property. Now, when you upload an image to a pin on the Nearby map or list, the image will be automatically added to the p18 property of that Wikidata item. 🙂

To illustrate the workflow, we will again use the example of Queen Street Mall, a Wikidata item that lacks a photo:

  • I selected the “Queen Street Mall” pin on my Nearby map and tapped the camera button on the right side of the screen
  • I took a photo of the mall, and the title and description fields were automatically filled for me based on the properties of that Wikidata item
  • I tapped the arrow button on the upper right, and selected categories based on the suggestions given
  • After the upload completes, I check the Queen Street Mall page on Wikidata, and find that my image has been added to the “image” property
  • After refreshing the Nearby map, the Queen Street Mall pin is gone, because it now has a photo!

This feature is in its infancy, so we are keeping tabs on Wikidata edits that have been made via our app here.

Browse other images on Commons, including featured images, via “Explore”

The “Explore” feature is a GSoC project by Ujjwal Agrawal, mentored by Neslihan Turan and Nicolas Raoul. It builds on top of the “view featured images” feature that we had recently implemented, adding the search function to view other non-featured images. Featured images are displayed by default, but all images in Commons can be viewed by searching for a title or a category. More details about an image can be viewed by tapping on it.

View your achievements and upload statistics

The new “Achievements” feature is part of a GSoC project by Tanvi Dadu, mentored by Vivek Maskara and myself. Accessible by tapping on the “trophy” icon next to your username, you can view your images uploaded, % of images not deleted, and images used, all of which are used to calculate your level.


Quiz for users with high deletion rates

Also part of Tanvi’s GSoC project, this feature aims to help educate users who are found to have excessively high revert rates. A quiz will pop up for them in the app, and they can see the correct answer immediately after attempting a question.

First-run tutorial for Nearby Places

Based on feedback from new users, we have designed a short first-run tutorial explaining the Nearby Places feature.

Upload stats for 2018

We have a record high number of uploads via the app in 2018 Q2, with only a small fraction of them requiring deletion. \o/ Thank you all for your contributions! (Source: Commons app stats courtesy of Yusuke. 2018Q3 still in progress.)

Josephine Lim | cookies & code | 2018-08-09 12:08:50

Good insights, for sure starting out as a PM is really confusing. You and I should be friends :)

Cynthia Anyango | Stories by Cynthia Anyango on Medium | 2018-08-09 08:35:12

I changed the default English pronoun I use to they some time ago. For a long time I thought it impossible to incorporate a similar approach in my native language, until I realized I’ve been doing it all along.

Polish is a gendered language. Table is male, floor is female, while chair is of a third gender, similar to English it. I’m not sure there is logic behind these assignments, but the fact is it’s very hard to speak Polish without a gender in mind. Every noun, pronoun, verb and adjective have a gender and there is no agreed on way of being gender neutral, without using it that is somewhat dismissive or derogatory (at least when used for adults).

Yet I have been gender fluid in Polish all my life without fully realizing it. My first name, Alicja, I use with female grammar forms. My second name, Karolina, I usually abbreviate to the male Karol, and use it with male forms. It’s seamless for my loved ones, as they use both (though they usually have a preference, with my mom using my first name and my grandparents using Karol exclusively, unless they’re mad at me).

Thinking back, it’s suprising how easy it has been to use both my names without focusing on gender. If anyone had an issue with it, I’d just refer to it as a “personal choice” or a “family tradition”.

Alicja Raszkowska | Alicja Raszkowska | 2018-08-08 12:18:00

My journey as an iOS Developer started one year back. It has been nothing shorter than a roller-coaster ride. The internet is flooded with all kinds of learning resources, which at times can be a bit overwhelming. It can be difficult to know what to pick and where to start. The bottom line is that there is no ‘universal best’ path. As long as you are able to grasp the concepts, you are on the right path! The following resources helped me the most, so go ahead give them a shot and see for yourself if it works for you.

  1. Get exposure to iPhone/iPad and MacBook
    When I embarked on this journey I had no experience in using any of the apple products, forget development. So, if you are like me, definitely try your hands on iPhone and MacBook to get the feel of using them, before you start diving in code. You may want to go a step further and check Steve Jobs’ 2005 Stanford Commencement Address for a lasting impact.
  2. Learn Swift
    Swift is a powerful and intuitive programming language developed by Apple, for macOS, iOS, watchOS, and tvOS. Going through the officially documented book will definitely go a long way if you want to lay the foundation strong.
  3. Get your hands dirty by playing on the Xcode playground
    Xcode is Apple’s programming application for developers. So, you’re gonna need it to develop iOS apps. When you open Xcode, you’ll see an option to create a playground. Playgrounds are a great way to try some code and see the results quickly. So, don’t hesitate to try some of the stuff you just learned in Swift.
  4. Paul Hegarty’s course at Stanford for Developing iOS Apps
    Every quarter a new video lecture series is uploaded on iTunes.  The content is quite similar, so watching the latest one would keep you updated and informed. The only thing to note is that in each quarter Paul Hegarty’s spends a week on persistence choosing a topic he has not covered in depth before. Therefore, don’t miss checking out the session on Cloud Kit(iOS 9 lecture series), Core Data(iOS 10 lecture series) and Document Browser(iOS 11 lecture series).
  5. WWDC Videos
    The Apple Worldwide Developers Conference is held annually by Apple Inc. in San Jose, California. Apple uses the event to showcase its new software and technologies for software developers. You can watch the session videos of any of the current/previous years on a topic of your interest. Almost all regularly scheduled presentations are delivered by Apple employees so the content is noteworthy.
  6. Apple Developer Documentation
    Here you can browse the latest developer documentation including API reference, articles, and sample code. The only reason this is not further up the list is that for a newbie the terminologies might seem bit intimidating and definitions may not make complete sense unless you have the basics in place.
  7. Practice by making sample apps
    Well, this is why you started in the first place, so have fun building sample apps. This would definitely be a rewarding experience and make you more confident.
  8. Read and then read more
    Take a look at some of the most popular resources on learning iOS Development – raywenderlich, appcoda, and cocoacasts to name a few.

Stay tuned for more articles! smiley 2

Nisha Yadav | The Girl Next Door | 2018-08-08 05:12:21

It has been a wonderful GSoC 2018. I would like to thank my mentors Namratanehete, Saptarshi and Judy for giving me the opportunity to work with LibreHealth on this GSoC 2018.

Image result for gsoc librehealth

Project Objective

The main objective of this project is to research and develop component to work on FHIR analytic capabilities. FHIR(Fast Healthcare Interoperability Resources) is the latest standard to be developed under the HL7 organization. FHIR is targeting to overcome the limitations of HL7 and CDA standards. FHIR is becoming more and more popular. FHIR has more than thirty well defined resources which addresses several clinical domain objects. Patient, Observation, Encounter and MedicationRequest are some of main FHIR resources.

It’s a major requirement to work on the analytic capabilities of FHIR data to extract useful information. FHIR resources are designed to contain many information on single resource. When it come to analytic, it’s often required to combine multiple resources and query data. In this project I have used Bunsen along with Apache Spark to power the FHIR analytic. Bunsen is a open source library which provide encoders for FHIR resources which provide the facility to load FHIR data into Apache Spark. LibreHealth is developing new platform based on FHIR specification which uses Cassandra as the underline data source. Analytic module is using Cassandra as the data source. Analytic module will be park of the platform which allow users to exchange data via FHIR specification and perform FHIR analytic through this module.Here is the architecture of the module.

LibreHealth FHIR Analytics

FHIR Analytic Module Provide functionality query FHIR data through Spark SQL which is famous SQL like language query for Apache Spark. FHIR analytic module also provide user interface to perform analytic on resource wise for five main FHIR resources.

FHIR Analytic Using Spark SQL

LibreHealth FHIR Analytic Module Provide UI to execute Spark SQL against the data available in the system. For example if someone want’s to get the patients which have observations valueQuantity greater than 15. Then following Spark SQL will get the required data.

SELECT,, observation.subject, observation.valueQuantity FROM patient inner join observation where observation.subject.reference == and observation.valueQuantity.value > 15
Query Results

FHIR Resource Base Analytics

Someone might find difficulties in writing Spark SQL queries. Hence Analytic module provide simple UI for perform analytics on key FHIR Resources such as Patient, Encounter, Observation, DiagnosticReport and MedicationRequest. Here is the patient demographics based search UI. User can search for exact match or contains search by using contains checkbox. Also user can do a search with combine attributes or individual attributes.

Patient Query User Interface
Patient Query Results

Data Upload User Interface

FHIR Analytic Module provide functionality to upload data from file system. User can upload a FHIR Resource or a Bundle and perform analytic on top of this resource.

Data Upload User Interface

Project Discussion Forums

Project Code Base

Github User :

Files · master · Prashadi Bandara / librehealth-fhir-analytics

Blog Posts

Platform Module Integration

I have worked on integrating the platform module and analytic module together. Platform module is targeting to provide capability to perform CRUD operations on FHIR resources which powered by SprinD Data and Cassandra. Since this module is also a new GSoC project and it’s is developing by Yash who is a another GSoC student. Finally we need to merge these two modules together and use single data source to perform CRUD operations on FHIR resource and the analytic. I have worked on this task and integrate the code base of both of these modules. Currently I’m progressing on using single data source for both of the modules.

Next Tasks

  • Complete the task of using single data source for both platform and analytic module
  • Working on bug fixes


  • Improving the user interfaces and add more core FHIR resources
  • Improving the test coverage
  • Upgrading libraries to latest version

Final Note

It has been a great pleasure to work with LibreHealth during GSoC 2018. I have worked on completely new project which is started from the scratch. Even though GSoC is coming to a end, I’ll be continue to working on FHIR Analytic module and improve it. I have learn lot of new technologies which I haven’t worked before. It’s a great experience for me. Again I should thank my mentors Namratanehete, Saptarshi and Judy for continuously giving their suggestions and guidance to success this project. I should thank LibreHealth community for their support. Finally I thank Google for organizing GSoC and wish more and more success.

Kavindya Prashadi Bandara | Stories by Kavindya Peramune Rallage on Medium | 2018-08-07 13:39:02

Recently I was invited to give a talk on Mixed Reality. People were aware of Virtual reality(VR), but they had lots of confusion about what exactly is Augmented reality(AR) and Mixed reality(MR). So I thought of putting the definition of all three VR, AR and MR together here in this blog.


Virtual Reality

Virtual Reality completely immerses a user inside a synthetic environment. While immersed, the user cannot see the real world around him. So it’s kind of Virtual world!

In VR, you wear something on your head — that holds a screen in front of your eyes, which in turn is powered by a computer, gaming console or mobile phone.

Augmented Reality

Augmented reality brings the magic of the digital world to reality. With it, we can mix our wildest dreams with our view of reality to create entirely new experiences. The whole point of that ugly word, augmented, is that AR takes your view of the real world and adds digital information and/or data on top of it

AR is a field of computer research which deals with the combination of real-world and computer-generated data!

Augmented reality, or AR, is similar to VR in that it is often delivered through a sensor-packed wearable device, such as Google Glass.

Characteristics of AR

  • It combines real and virtual object in the real environment.
  • It is interactive in real-time.
  • Aligns real and virtual object with each other
  • Adding computer vision and object recognition

Mixed Reality

The key term for mixed reality, or MR, is flexibility.

Mixed reality lets the user see the real world (like AR) while also seeing believable, virtual objects (like VR). And then it anchors those virtual objects to a point in real space, making it possible to treat them as “real,”

With mixed reality, the illusion is harder to break. It tries to combine the best aspects of both VR and AR.

Note: Lot of People think Pokemon Go is an example of Mixed reality but it is not!

Pokémon Go update, characters seen in that game do not follow the rules of mixed reality, which some describe as “real” augmented reality. Once a Pokémon is encountered in the real world, its distance from the player does not change as that player’s phone moves around; in other words, the character appears to be on top of the real world when viewed through the phone, but it’s easy to break the illusion that it is in that real world.

When I was exploring MR, I was not able to find definitions of all three(VR, AR & MR) on the internet together. I hope putting all three definitions here will help more people to get an understanding of what MR is all about.

If you want to explore WebVR the best resource to get started is A-Frame school

Have a nice day Y’all.  See you around on web 🙂

Note: This hand-on workshop was organized by Mozilla representative Jyotsna, we had an awesome venue(Myntra Design office in Bangalore). We had good number of attendees too. The one demand we got from attendees was to have some live examples with the headset. I am sure we will have something like that in the upcoming events.

Rakhi Sharma | Atbrakhi | 2018-08-07 06:09:06

Congratulations Maryanne on the new job!

Cynthia Anyango | Stories by Cynthia Anyango on Medium | 2018-08-02 09:04:34

I recently listened to an episode of the 99% Invisible podcast on curb cuts and it made me pause to appreciate some of the curb cuts I experienced. One with the most profound impact on my life is the Internet.

Without it I wouldn’t be where I am. I wouldn’t have learned English well enough to be confident and fluent without all those hours binge-watching Bones and Grey’s Anatomy. I wouldn’t reignite my interest in programming without free MOOCs and open-source communities. I would never go to New York to join the Recurse Center, I wouldn’t go to meetups to make friends and find jobs, I finally wouldn’t meet my partner and move to Canada.

The Internet gave me opportunities and support I needed to take advantage of them. A space to explore, experiment and embarrass myself. A way to learn resilience and build up confidence by overcoming challenges, making mistakes and getting back on my feet.

It’s often a mixed bag, yet I can’t be anything but grateful.

Alicja Raszkowska | Alicja Raszkowska | 2018-07-27 18:52:00

This may be a weird article in a developer’s blog, but I think good quality sleep is fundamental when it comes to work that requires a lot of thinking and creativity.

I used to struggle with insomnia for quite a while. Besides that, I am a “night owl” — somebody who likes stay up late at night. I don’t think there is such thing as “night owls” and “early birds” though. I am convinced it’s a matter of habit, and modern life just calls for a “night owl” way. I know that because I have changed my sleeping habits numerous times in the course of my life. I also learned that insomnia can be fought successfully, too.

The first thing I discovered was that if you want to change your sleeping pattern, the most important thing to watch out for is the time when you get up. Not even wake up, but physically extract yourself from under your warm and cozy duvet. The time you went to bed isn’t as critical — in fact, if you stick to your desired getting up time, your body will adjust and regulate so that you’d be sleepy by the right time to get the right amount of sleep. Obviously, you would do well if you heed to your sleepiness :) Basically though, if you want to change your sleeping schedule, getting up time is the thing to change and track.

To help your body be sufficiently sleepy in the evening, you can use something like the Flux app, which will yellow your device’s screen at a certain time of night. Blue light that a typical screen emits tends to keep us awaken and alert. Besides, the app yellows your screen gradually, and at the peak time the screen becomes so dim and yellow that the device is barely usable. That would be your Q :) Often at night I would turn my computer off altogether and just read a book under a yellow lamp before going to bed. I found that to be the least disruptive for my sleep.

Physical activity is crucial as well; however, there is a danger of having too much of it, especially if you’re into weight training. Too much of physical or mental tiredness disrupt sleep for me. Everybody is different, and there is no certain answer as to how much exercise a week or how many hours of programming a day will induce insomnia for you. I actually kept a sleep journal for a while, where I tracked things like hours of mental work (including my hobbies and programming on the side), physical activity, eating habits, amount of coffee I had, stress etc. — everything that could affect my sleep.

On the same note as keeping a journal I can highly recommend meditation. I heard some research says it can have positive effects on sleep, but for me its primary benefit lies in its ability to teach you taking a note of yourself — how you feel, what happens to you, what affects you and so on. In other words, meditation teaches you to be present with your life (which we aren’t 90% of the time).

My last advice would be to resist as much as possible various aids like sleeping pills or ear plugs — those might make things even worse. Wearing ear plugs for a nearly a year aggravated my sensitivity and made my sleep really fragile. When ear plugs were not available, the tiniest noise would wake me up. Worried, I stopped using ear plugs altogether. After initial sleepless period, my body tuned its noise sensitivity down a bit, and everything was back to normal!

Irene Storozhko | Stories by Irene on Medium | 2018-07-23 20:37:17

6 tips you should pen down to ace a Community Hackathon!

Done > Perfect

This May, I got the opportunity to attend Wikimedia Hackathon organized at the Autonomous University of Barcelona. The focus areas of this Hackathon were Technology related to content translator, Documentation, WikiCite, Design and Structured Data on Wikimedia Commons. Along with technical sessions, mentors and mentee pairing sessions were also organized for new comers followed by many fun activities. More than 200 developers, designers, translators and many other Wikimedians gathered for 3 days to hack, collaborate and share knowledge.

Medha Bansal, Me and Petr Urbanec during Hackathon

Mentoring Experience

In this hackathon, me and Medha Bansal helped participants get started with the P&E Dashboard project. One such participant, Petr Urbanec was successful in making his first contribution. It was fun collaborating with Petr. Altogether, it was a good 1st time mentoring experience.

Poster Making — Mentors and Mentee matching session.

The Interview

On the 2nd day, something surprising happened, we got interviewed by the Catalan TV. Many Wikimedians got the opportunity to share their projects and ideas on such a big platform.

Barcelona acull la trobada anual de viquipedistes d'arreu del món

Okay! Here are the tips :

  1. Some Pre-hackathon preparation would take you a long way — There are many resources available to you before the Hackathon like the focus areas, expectations which you should use to your advantage. Remember, Hackathons are short spanned and a little pre-prep would get you some extra time which you can utilize to socialize or help others or create a presentation or capture the event using your photography skills.
  2. Keep a log — This would help you share your experiences by writing about it or creating a video later. Also, this would help in analysing your mistakes and gives you a clear idea of the project progress.
  3. Be curious about other projects — Even if you have a project in hand, you might find some other groups who are looking for someone with your skills. This way you get to explore teams which leads to future collaborations.
  4. Every small contribution counts —Hackathon is all about learning and sharing. Don’t hesitate in reaching out to anyone for help or starting new discussions.
  5. Take a break — Hours of hacking calls for a break and you should take it. There will be fun activities going around you which can help you to charge up for the next round of hacking. Looking at the same code with fresh eyes is a great way to realise silly mistakes.
  6. Last but not the least, Share your ideas — they are most welcomed!

Hackathon is basically a mix of brainstorming ideas and bringing them to reality. So go ahead and ace it!

Sejal Khatri | Stories by Sejal Khatri on Medium | 2018-07-22 10:52:08

I started exploring my browsing habits to better understand why certain websites grab my attention. As aware of UX dark patterns as I am, I grew tired of mindfully noticing when they want to “nudge” me into certain behaviors with vibrant colors and obscuring others by making them less visually appealing.

While I was trying to unsubscribe from yet another unwanted email marketing list, chasing for the “unsubscribe” link hidden in plain sight, I noticed that grayscale works well for techincally showing the information required of advertisers, yet obscuring it among the flashy colorful action calls.

My previous attempt at decreasing the time I spend on social media was leveraging Stylus to hide certain parts of websites, e.g. related videos and comments on YouTube. It manages user styles, with a simple checkbox menu for enabling and disabling them.

Since I use FireFox, switching to grayscale is fairly simple. I created a new stylesheet that applies to all websites and added a single property for body. (you can also add a filter in other browsers)

body {
  filter: grayscale(100%);

It’s easy to turn it off when I want to. And it encouraged me to fix minor annoyances on some websites. I stopped using AdBlock when I switched to FireFox and I now use targeted display: none on elements I find distracting.

A minor caveat of the extension is that it doesn’t work on all websites, because it’s a WebExtension. I found that it only makes me appreciate it more when I encouter a page that doesn’t apply my user styles.

One more surprising issue I encountered is that the grayscale filter sometimes breaks scrolling. I tried debugging it on my website, thinking it might be caused by some legacy code or a hidden Stylus property, but adding it directly to the body also changed scrolling behavior.

Alicja Raszkowska | Alicja Raszkowska | 2018-07-20 12:50:00


At LC3, attendees can expect to collaborate, share information and learn about the newest
 and most interesting open source technologies, including Linux, containers, cloud technologies, 
networking, microservices and more; in addition to gaining insight into how to navigate and
 lead in the open source community. Three conferences in one, this event is a technical conference
 for developers, operations experts (architects, sysadmins, develops), business, compliance and
 legal leadership and other professionals to come together in an informal setting to learn from
 open source experts, have fascinating discussions, collaborate with peers, and gain a competitive
 the advantage with innovative open solutions.

Sandhya Babanrao Bankar | Kernel Stuff | 2018-07-13 00:32:02

In my last post, I have discussed about the architecture of LibreHealth FHIR Analytic module. After that, I have worked on refining UIs to provide easy access for users to perform FHIR analytic. This is because, users of FHIR analytic module might not be experts in the Spark SQL. Hence we can’t expect every user will write Spark SQL queries to analyze the FHIR data available in the system. Here are the main resources that allow users to query data.

Patient Resource

Patient is a key resource defined in the FHIR specification. Hence users will require to search patients by their ID, Identifier and based on other patient attributes. Hence FHIR analytic module provides capability to search patients based on their attributes. The contains flag which is at each field can be use to perform a like query when user do not want to search for a exact match. Also by default, if user a filled a field, it perform a matching query of all specified fields. This mean only the patients who matched all the attributes specified in the UI will return as search results. But if user want to perform search which return patients who matches any of the specified attribute, then user can select the individual flag near the field.

Patient Search Form Using Demographics
Patient Search Form Using Patient Details

Observation Resource

Observation resources is a another key resource defined in the FHIR specification. Hence LibreHealth FHIR analytic module add the same capability as describe in the patient resource to search observations. Users presented with a form which contains key attributes of the observation where they can search for observations based on their preference.

Search Observation Form

Encounter Resource

FHIR Analytic module include Encounter Resource search support as it’s a well defined resource in FHIR Specification. All key fields are supported to search encounters.

Encounter Search Form

Medication Request Resource

Medication request is a another key resource defined in the FHIR specification which is similar to Drug Order in LibreHealth. This represents a medications with the dose and the time period that ordered by a doctor to a patient.

Medication Request Search Form

Diagnostic Report Resource

A diagnostic report is the set of details that is provided by a diagnostic service when investigations are complete. The report contains a mix of atomic results, text reports, images, and codes. This is another key resource when it come to identify history of a patient. FHIR Analytic module provide the capability to search diagnostic reports by its key attributes.

Diagnostic Report Search Form

This is my progress upto the second evaluation of the GSoC. My next target is to integrate this module with the FHIR Spring Data Integration project which I planning to complete in next few weeks. I’m currently fix issues and bugs of the current implementation.

Kavindya Prashadi Bandara | Stories by Kavindya Peramune Rallage on Medium | 2018-07-09 00:45:52

I like to maintain a log of things and here are my mid-year updates for 2018. The year has been going great, so far.


  • This time it was lot of Open Source coding as an Open Source Advocate
  • Release of Zalando’s first State of Open Source Report
  • Design, development and launch of Zalando’s Open Source website
  • Developed a Node.js application for pulling Zalando’s Github statistics into a database
  • Developed a Node.js CLI for creating and migrating Zalando’s Github projects
  • Co-author for the draft of Zalando Open Source Team’s strategy, OKRs and KPIs (internal document as of now)
  • More power to Open Source. My 2017 summer Outreachy project – Lightbeam is a finalist this year at



I am very happy about the progress made in writing content this year!


  • Wrangler for the Openness space at Mozilla Festival 2018
  • Diversity Scholarship jury for JSConfEU 2018
  • Co-organiser for the Intersectional tech meetup, Berlin


I am getting better and better with baking! 🎉🎉🎉



  • I deliberately stopped the OpenWorld initiative. The idea was to publish one piece of article related to Openness. I think I should continue this effort.
  • I was denied boarding at SFO while returning back to Berlin from O’Reilly FluentConf last month. Oh really, denied boarding is definitely a lifetime experience. You would never ever want to go through this! 🤷🤷🤷 (This wasn’t my fault and now I have filed a case against the airline).
  • I had to cancel speaking at two conferences – HolyJS 2018, Russia and FullStack 2018, London. My passport expires in 3 months and it isn’t ideal to travel without getting a new one.

Hope you enjoyed reading!

Princiya Marina Sequeira | P's Blog | 2018-07-01 18:29:40

I Spoke at Hong Kong Open Source Conference 2018 about my favorite topic: Browsers.

A big thanks to Women in tech fund, Because of them I was able to make it possible. They sponsored my travel to the conference.


HKOSCoN 2018 Edition took place in Hongkong Science park! They had around 300 attendees. The first day of the conference was all about open source, Block Chain, Haxe programming language and R. One of my favorite talk from Day 1 was Maintaining Open Source While Maintaining Your Sanity by Simon MacDonald, He is a developer advocate at Adobe! After his talk, I had detailed discussion with him about open source software, maintenance, and contributions! He came all the way from Canada to Hong Kong, it was so nice talking to him about open source.

Simon talking about Maintaining Open Source While Maintaining Your Sanity!

Later, I met Jason who talked about Haxe as a better JavaScript, I got a better understanding of Haxe after his talk. He introduced me to Kevin and Andy, who also are Haxe developers, later we talked about Haxe and Javascript over lunch. Day 1 ended with Martin Bähr talk and panel discussion on Blockchain.

Day 2 started with the talk on Run Multiple Isolated Web Applications on Containers with a Single IP in the Cloud by Jeremy ChengHeading to the New Stage of MySQL 8.0 by Ivan MaHsing-Yen Chen talked about Open Source of Agriculture which was a bit new and unique to me! I never thought of Open Source and agriculture relationships!

After Lunch, I had my talk scheduled, Which went pretty well.  The conference room was pretty much full.  This is me talking about Browser- Behind the scenes!


I got a lot of question later the talk and I was pretty much happy about it. Few people approached me after the talk and we talked about browsers in deep! This is me taking questions from the audience!


Day 2 ended with Gary’s talk on Practical JavaScript Fuzzing. Overall, I had an amazing experience at HKOSCoN. Slides of my talk are available here.

Finally, Kudos to Women in Tech fund team, for all the good work they are doing 🙂

Rakhi Sharma | Atbrakhi | 2018-07-01 13:56:20

Being an avid reader as a kid, I now regret not having explored science fiction. Of late, I have been indulging myself in a few landmark Sci-Fi novels, and I cannot be more thankful that this happened. I now truly appreciate the genre and hope to add many more to my list in the future! Here are reviews for seven books that I read. (The first one is unnecessarily long since I began recording each story as I read. The later ones are more concise.)

I, Robot by Isaac Asimov

This book was one of my favorites in the list. I absolutely admire the way Asimov seamlessly takes the reader into his world of robot rules and finally asks questions relating to a world of peaceful co-existence of humans and robots. Although one may call this wishful thinking, as we don’t quite know what form superintelligent AI could take, it comes as a relief to read a book that vouches for good-endings! This in part, is mentioned in the books’ introduction, where Asimov despises the Mephistopheles comparisons to AI (Mephistopheles was a monster in German mythology that destroyed the creator). The book compiles the recollections of Dr. Susan Calvin after her retirement from US Robots and Mechanical Men Inc. Below is a list of stories. They progressively make one familiar with everything that’s Asimov – positronic brains, three laws of robotics and of course, good endings.


The story revolves around a little girl who is attached to her robot baby sitter called Robbie. An apprehensive mom tries to separate the two but in the end realizes that the robot is not necessarily harmful for her daughter.


Two scientists stationed on Mercury need their erratic robot Speedy to bring them selenium to power the photo-cell banks that protect them from Mercury’s monstrous sun. But Speedy reaches an equilibrium of rules 2 and 3 of robotics and continually circles around the selenium pool without bringing it back. Powell and Donovan need to think quick and smart about how they’re going to save themselves and Speedy.


This story introduces a new kind of robot called QT that has the ability to reason out statements based on postulates. During a conversation with Powell and Donovan. It comes to the conclusion that it hasn’t been created by humans, and that there is no earth or stars but rather a single Master i.e the L-tube that it is programmed to ‘serve’. The robot goes into some kind of religious mania that the scientists cannot handle.

Catch the Rabbit

Powell and Donovan are now stationed in an asteroid to field test a mining robot that handles six subsidiary robots under it. They observe that the robot works perfectly well when they are around, but ends up ‘dancing’ with its subs when left on its own. They later figure out that it is because the personal initiative factor is most strained during emergencies in the absence of humans. They must now test their hypothesis.


Herbie is a mind reading robot, and scientists are desperately trying to find out what lead to this.

Little lost robot

A robot called Nestor 10 with a modified first law is stationed in the Hyper atomic Drive. He is subsequently ordered to “lose himself ” by his human master. In his drive to prove robot superiority, he tries to lose himself in a group of 62 identical robots. The crew need to find ways to spot him. This story, for the first time introduces the concept of a robot capable of harming humans.


US Robots have taken on the task of making their star robot, The Brain, build a space warp engine after their rival organisation, Consolidated, fails to do so. The trick is in preventing the Brain from entering a dilemma of human protection vs following human orders.


This story starts with a politician being accused of being a robot and the events that follow to test this hypothesis. On a broader level, it makes us wonder if in the future, humans could really have a peaceful co-existence with robots and treat one another respectfully, regardless of whether one is a human or a robot.

The Evitable Conflict

This story kind of sums of what Asimov hopes the human-AI relationship should be.

Rossum’s Universal Robots (R.U.R.) by Karel Capek

This is a play that’s set in a fictional era where artificial humans are manufactured. These robots look exactly like humans but lack what the author calls a ‘soul’. It deals with questions such as what the world would look like if robots replaced humans in every possible job and were just meant to serve us. Would they remain servants? What happens if the ingredient to create a ‘soul’ is added during their creation?
This play deals with the concept of soul, that Turing in his famous paper argues robots need not have. But an interesting question to ponder over is what would happen if we infuse emotions into an artificial being and whether there is a need for it at all.

Do Androids Dream of Electric Sheep by Philip K. Dick

This book was a psychological and philosophical roller-coaster. There are parts that I absolutely loved and others that I clearly despised. The story is set in a post nuclear apocalyptic earth that’s almost been reduced to dust. Most of the humans have migrated to other planets. The few that remain consist of ‘specials’ (low IQ humans), aged people and others who wished to stay back. The plot revolves around finding humanoids that have killed humans on Mars and escaped to earth posing as humans.

The book tries to answer questions such as how would one distinguish a human from a humanoid. Humans are assumed to have empathy which the other lacks. The book also develops a whole new notion of religion and class hierarchy (which depends on the animals owned by a person). The story as a whole is quite depressing and might not leave one very satisfied by the end of it, partly because it questions human identity (and I’m after all a human). Nevertheless, the effects are bound to stay much longer after having read the book and one might be left pondering over it for a much longer
time. This book left me quite overwhelmed.

Bicentennial Man by Isaac Asimov

This short story talks about a robot named Andrew that has somehow learnt to be creative like humans. It follow’s Andrew’s intellectual quest to be more human-like as time passes. It details a beautiful human-robot relationship between Andrew and ‘Little Miss’ and how the two of them support and care for each other at different stages. It explores concepts such as what it means to be truly free, have rights for oneself, etc. This story made for a good read.

Silently and Very Fast by Catherynne M. Valente

The story is about a virtual reality game-playing AI called Elefsis that’s created for kids in a family and how it evolves along with the girl in question. It begins to learn to speak, emulate human behaviour and starts ‘feeling’ emotions. Similar to Philip’s ‘Do Androids..’, this tale asks open questions about what it means to be alive.

This short novel is a very cleverly written, throught-provoking story. It is abound with an innumerable number of visual imageries and is a treat for the mind! It has a blend of intense emotions and ‘fairy-tale’ style writing that takes one into a different world, much like the ‘Inner World’ in the story.

Rest of the Robots by Isaac Asimov

I guess I couldn’t get enough of Asimov when I picked this one! This is another set of eight short stories on robots. It’s packed into four chapters that progressively explain the usage of robots. Quite a few stories have an abundance of humour in them, similar to ‘I Robot’. One of the stories deals with ideas of romance between humans and robots, and another one talks about the usage of robots in war. Unlike my previous Asimov review, for the purpose of brevity, I have refrained from penning my thoughts on each individual story.

Hitchhiker’s Guide to the Galaxy by Douglas Adams

I read the first book of the series and found it weird, insanely weird! The story starts off with an event that destroys Earth, and follows a man named Arthur Dent, who is saved by virtue of an alien friend Prefect. His adventures (and misadventures), and how he and Prefect manage to navigate their way around, forms the crux of the tale. This is an awfully humorous read, and I may get to reading the rest of the parts during summer break!

If there’s one line that sums up the first book it has to be this
Earthman, the planet you lived on was commissioned, paid for, and run by mice‘.
Dent’s humor and genius is refreshing!

This sums my Sci-Fi book reviews. I’ll definitely be actively hunting for more books from this genre hereafter!

Priyanka Mandikal | Priyanka Mandikal | 2018-06-29 22:38:05

I encountered a thread in a community group chat asking for advice on guiding someone through improving English skills. Some of the resources and ideas I shared were helpful, so I decided to write a longer blog post about it.

First, a few disclaimers:

  • I didn’t self-learn English - I had about 15 years of mandatory school courses and a fair share of instruction outside of the classroom

  • I had a heavy Polish accent until the second year of my undergrad, which disappeared by getting more comfortable with the language

  • I went to an English-speaking country for the first time when I was 25, so all my training was in Poland

These are some ideas that worked for me in the hope that they could be a good starting point for others to inspire their own explorations. Learning a language is like acquiring any other skill, it requires commitment and deliberate practice, with a lot of fun along the way.

Setting goals

It gets harder to set a goal the more comfortable one is with the language. Initially, my goal was to get good grades in school. Then I wanted to learn better English so I could read faster, because I had to sometimes rewatch parts of the subtitled movies.

Somebody spoiled the ending of the last Harry Potter book for me, because I was struggling through it for more than a week. Somebody else got praise for their beautiful accent and I was embarrassed about my hard Polish vowels. My Guild Wars team needed a translator for international runs. I wanted to go to New York for a few months to join a community of programmers.

My goals inflated as my confidence grew and I still see many ways I could improve: writing more American English, so my sentences are not Polish-long; flattening my too posh accent so people don’t think I’m trying to sound this way; using tenses and conditionals the way a native speaker would.

No matter where you are on your journey, try to set a goal that’s slightly outside of your reach and will motivate you to improve.

Switching to English

English classes were useful for learning the basics and making it a habit through homework and tests. What helped me get from being able to use the language to thinking in it was what I would do outside of the classroom.

I made sure to be surrounded by English through:

  • switching all my devices to English, especially since the Polish translations were often awkward

  • making sure to watch, read and listen only in English - binge watching “Grey’s Anatomy”, “Bones” and “Supernatural” helped, especially with English subtitles on and watching closely how people move their mouths when they speak, trying to mimic it

  • having conversations with myself - one of my friends phrased it better as having “mini presentations”, I’d sit in front of a mirror and answer questions in imaginary conversations out loud, talking about anything of interest (especially being one of the protagonists in a TV series I was hooked on)

  • memorizing standard sentences and learning how to replace certain words (a bit like Duolingo) - “I am eating cake” can easily become “I am eating pancakes”

  • learning about Polish grammar through English and Arabic studies - learning about the grammar of your own language or another language you know well helps with understanding grammar in general

  • writing more, even if I never posted it - especially short stories and programming tutorials, which require good structure and flow

  • interviewing people - talking to people on a daily basis while living in Poland, writing notes for the interviews and often rewatching parts of the recordings (which is super uncomfortable, but helpful)

  • moving to an English speaking country - I notice my brain being in English-mode more than half the time, even when I’m alone

Noticing patterns

English is notoriously irregular and hard to grasp. The pronunciation rules are often misleading, words have more synonyms than one could imagine and one can use it in a way that’s very hard to understand. (like this nightmare of a language test from South Korea)

When I encounter something new, I try to think of a pattern that can be a more general rule:

  • I noticed I’m using tenses differently than a native speaker would - one of my friends made me more mindful of the fact I use present perfect (have + past verb) more often; it was a revelation to me that the -ing continuous tense is more natural for native speakers than the present simple form

  • I realized at some point that in English you want to have something in front of your noun 99% of the time, be it a particle or an article, which is not something we even have a notion of in Polish

  • my pronunciation improved when I started noting down words someone would be confused about, e.g. I often pronounce spent and spend the same way, because in Polish we de-vocalize the last consonant and I was unknowingly doing it in other languages

Language learning is full of little “a-ha” moments and constant improvement. Looking for explanations and being more mindful of underlying patterns can help you get more comfortable.

Asking for feedback

It is hard and can initially be embarrassing to ask for feedback, especially if you’re surrounded by people who are more comfortable with English.

  1. Ask someone you’d be comfortable getting feedback from

    While still in school, your teacher is probably the best person to ask. It becomes tricky when you don’t have an instructor and have to ask your friends or coworkers to help you out. Make sure you’d be comfortable with them talking about your mistakes.

  2. Understand what kind of feedback you need

    Before I took my IELTS last year, I’d never think I needed to work on my speaking skills, but when I got a lower than expected score, I realized I was overconfident. Assess your skills as objectively as you can and think about which areas you’d need most help with. A good rule of thumb is looking for something you’re uncomfortable with. If you don’t like writing, maybe it’s time to start a blog and encourage yourself to write more.

  3. Set ground rules

    Helpful feedback is specific and focused on the issue - your English. Your friend might be a native speaker, a language teacher or just more comfortable with the language. For some reason they know something you don’t and you have a chance to learn from them. That’s great! Making mistakes is how you learn.

Some ideas that worked for me:

  • feedback is given in a way that’s not interrupting the flow of the conversation - otherwise it can make you feel uncomfortable

  • it should be focused on one aspect at a time - usually something that stands out the most, making the meaning unclear or inappropriate, e.g. don’t correct me on my particles if the tense I’m using makes everything confusing

  • the person giving feedback is open to explaining the issue in more detail - it’s not helpful to say “this is not right, you should say something different”

Example of good feedback

a friend, after I finished what I wanted to say: “By the way, you said you’d like feedback on your English. I noticed you are saying polish when you mean Polish. They sound nearly the same, but the difference is in the vowel - one is a long vowel.”

me, intrigued: “What’s this long vowel thing you are talking about? I have never heard about it!”

followed by a nice conversation about vowels in English

What was good about it:

  • they stated they’re giving me feedback I requested before to set up the context

  • they gave a specific example of what I was saying

  • they explained the more general context of the error

  • they were open to having a conversation afterwards, during which I learned more about the general rules and how native speakers perceive vowels in English

Example of bad feedback

during a longer conversation about buying books for learning Arabic

a classmate: “Well, I would never pronounce it [ah-ray-bick].”

me, after an awkward silence: “Uhm.”

What was bad about it:

  • they were only pointing out the mistake, not giving the wider context

  • they focused on setting themselves up as more knowledgeable

  • they made me uncomfortable, because it was meant to be a joke on my behalf

Life-long learning

Learning a language is hard at first, but as I got more comfortable, it became more natural and pleasurable. It’s not only useful, especially when you need it in a professional context, but also fun!

If you ever get discouraged, keep in mind that:

  • native speakers have the advantage of being surrounded by the language and thinking in it all the time - how comfortable are you in your mother language?

  • native speakers make mistakes - they omit particles, they use the wrong tense, they misremember a phrasal verb; I don’t know how many times I said wziąść in Polish even though the appropriate form is wziąć and I have been corrected on it countless times

  • the fact that you have a foreign accent and sometimes make mistakes means you are learning - and that’s amazing!


Most of the resources I use are in English, be it programming language documentation or news sites. There are a few I tend to use more often, but this is a subjective mix of links that I enjoy that might be useful.

Reading blogs and watching vlogs about English is fun and helpful:

General tools for longer reads:

  • Readlang is a browser extension you can use for websites that helps you look up words quickly
  • Pocket for saving longer articles
  • using a tablet/ebook reader to read ebooks, especially using the built-in dictionaries to not interrupt your reading (try to understand the context of the word before you look it up)

Writing tools:

  • Hemingway a writing app, it’s hard to adjust not only your understanding of the grammar, but also your style to English, e.g. shorter sentences, more repetitiveness, simpler structures
  • Grammarly for checking your grammar on the fly

Podcasts (any podcasting app will do):

Alicja Raszkowska | Alicja Raszkowska | 2018-06-29 22:30:00

I attended the Netfilter workshop in Berlin from 14th to 18th June 2018.  It was a small invite only workshop. Overall it was a fun and great learning experience. Through this workshop, I got an opportunity to interact with netfilter community members. It was nice to meet my mentor Pablo Neira Ayuso and past outreachy interns, Laura and Harsha.

On the first day Pablo talked about changes in netfilter since the last workshop. Phil Sutter gave updates on libnftables. I had contributed a few preparatory patches for libnftables. It was good to see the amount of work done on it, jointly by Phil and Eric Leblond. More information about libnftables can be checked from the man page written by Phil. It describes about the functions exported by libnftables. The last talk of the day was by Florian Wesphal on nftables performance issues.

Main discussions on day 2 were about moving from xtables to nftables. Florian Westphal and Arturo Borrero both gave talked about it. Arturo shared his plan in specific to Debian and his slides can be checked here. Jozsef Kadlecsik talked about nftables set and ipset compatibility. Laura Garcia gave an introduction about nftables load balancer and shared some interesting performance figures for both iptables and nftables with reptoline enabled  (slides).

Day 3 and 4: Pablo talked about flowtable offload infrastructure and recent developments on it. Harsha Sharma spoke about ct timeout support on which she is working during her gsoc internship. On the last day, I too gave a talk about my Outreachy contributions and shared my experience about  it.

This blogpost is just an overview of the netfilter workshop. There were other interesting talks too and they can be checked here. Arturo has also written a summary about the netfilter workshop in his blog.

PC: Arturo Borero

Varsha Rao | Varsha's Blog | 2018-06-28 05:56:16

Current data is populated from sample fhir data from Google

Going forward this will load data from LibreHealth cassandra data store.

Kavindya Prashadi Bandara | Stories by Kavindya Peramune Rallage on Medium | 2018-06-26 04:23:16

Finally I was able to execute Spark SQL on top of the FHIR data which store in Cassandra database. It’s a good learning curve to achieve this target which involved in learning different type of technologies such as Spark, Spark SQL, Cassandra, Bunsen, Spark Cassandra Connectors and Spring. Following diagram shows the overall architecture of this module.

LibreHealth FHIR Analytics

As shown in the above architecture diagram, module is loading data to spark from Cassandra via Cassandra Spark Connector which provided by the datastax. Then this data will be converted to spark data frames using Bunsen library. After that it allow users to query the data via Spark SQL. LibreHealth Analytic UI provide capability to execute Spark SQL against the FHIR data loaded into the Spark. Also this module provide UIs for key resources like patient, observation and encounter for easily query these resources via key attributes of each resource.

Bunsen is converting the FHIR resource to data frame which is compatible with Spark SQL. For example, here is the table view in Spark after converting FHIR Patient resource to data frame.

FHIR Analytic Using Spark SQL

LibreHealth FHIR Analytic Module Provide UI to execute Spark SQL against the data available in the system. For example if someone want’s to get the patients which have observations valueQuantity greater than 15. Then following Spark SQL will get the required data.

SELECT,, observation.subject, observation.valueQuantity FROM patient inner join observation where observation.subject.reference == and observation.valueQuantity.value > 15
Query Output

Likewise users can execute complex queries against the FHIR data available in the Cassandra.

FHIR Resource Base Analytics

Someone might find difficulties in writing Spark SQL queries. Hence this module provide simply UI for perform analytics on key FHIR Resources such as Patient.

Patient Attributes Base Analytics

As shown in above image (need to add good looking styles!), user want’s to find patients which have patient identifiers having system with ‘oid’. If user wants to do a exact match, then ‘Contains’ checkbox doesn’t need to be checked. If user checked ‘Contains’ checkbox, it will query patients who are having ‘oid’ term anywhere in the system value.

By default module executes combined search where all the attributes combined with AND. For example, if user filled family name and identifier system, then search will gives results which both matches family name and identifier system. If user wants all the data which either contain given family name or identifier system then he can checked the ‘Individual’ checkbox.

Search Results

After filling all necessary fields, user can obtain the query results in the bottom of the page. Now I’m currently working providing full support for patient search while making the user interface more cleaner.

Kavindya Prashadi Bandara | Stories by Kavindya Peramune Rallage on Medium | 2018-06-24 06:47:00

Oh really! I spoke at FluentConf last week in San Jose, California. Here are my slides. Here is the video.

Screen Shot 2018-06-22 at 12.53.17
Rebuilding a browser extension for Privacy

Here is the talk trailer. I spoke about web tracking, browser extensions, D3.js force layout,  Lightbeam and my Outreachy experience.

Screen Shot 2018-06-22 at 14.36.31


JavaScript – The Good Parts‘ has been my all time favourite book. My main motivation to speak at an O’Reilly conference comes from this book. When my talk submission was accepted, I was extremely happy. And there was Brendan Eich (creator of JavaScript) himself on stage!

Congratulations! Your proposal has been accepted for O’Reilly Fluent Conference in San Jose 2018

 At the conference

I was honoured to be a part of this conference, and I will let pictures speak on my behalf. More pictures here.


The speaker hotel
The EXPO Hall
The diversity lunch panel which was amazing
Lots of food in the evening at San Pedro Square Farmers’ Market
Maggie‘s keynote was so motivational
Seeing this trio together on stage was so much pleasure
Screen Shot 2018-06-22 at 13.00.45
FluentConf’s fempire
There was so much swag, but these pillows were my favourite

Some more pictures…

Click to view slideshow.



Princiya Marina Sequeira | P's Blog | 2018-06-22 16:21:50

So I’ve been working remotely for the Cloud Native Computing Foundation for the past 3 months. At the beginning of my tenure, I felt very full steam ahead! Lately, though, I’ve been feeling much more disengaged and lonely. To combat this malaise, I’ve found it helpful to watch some videos and find out what’s been happening in the community at large.

Since I’ve been on my own for the past 8 months, my understanding of and engagement with the open-source software community have evolved considerably. I’ve been working on a lot of longstanding personal challenges during this time, and every now and then I raise my head, look around, and remember: software (in all its forms) is a living, breathing thing. It is not a static, shiftless, flat, inert object, but rather a dynamic system with countless flowing parts, multiple actors, and multiple creators and collaborators.

Software is ultimately very human. I feel this acutely when I go to tech meetups and community conferences. There’s more to say on this subject and on the CNCF, but I’m going to snip this post here and relegate those additional words to another time and place. :)

Andrea Kao | andrea kao | 2018-06-19 00:00:00

As I discussed previously on my blog posts, LibreHealth is going to adopt FHIR specification to the LibreHealth platform. I’m researching on FHIR Analytics capabilities which we need to provide in the LibreHealth platform.

As my mentors suggest, I have research more on using Cassandra solely for FHIR analytics. Here I’m summarizing my findings about my research.

Cassandra is a NoSQL database which is different type of data storage when comparing to RDBMS databases. Cassandra is a write optimized database which doesn’t worry too much about the normalized data. According to Cassandra community, it’s totally fine to have redundant data in single table if it helps to speedup the data reads from the Cassandra.

According to article in[1], it’s required to carefully modeled the data into the Cassandra table. Because if proper indexes aren’t there, CQL will reject the execution of specified queries with WHERE clauses.

There are four different ways that single column can behave. If we take a single Cassandra table, it will consist of partition keys, clustering keys, secondary indexes and regular columns.

Partition columns : Partition columns are one or group of columns which used to identify the partition which particular data is reside in the cluster. When user executes a query with where clause, it will first look for the partition key to identify the partition which requested data is reside.The partition key columns support only two operators: = and IN

Clustering columns: Clustering columns are used to group data within a single partition. This key can form with single column or group of columns. Clustering key will be use to identify the clustered data sets within a partition which will speed up the filtering specified in WHERE clause of the statement. Clustering columns support the =, IN, >, >=, <=, <, CONTAINS and CONTAINS KEY operators in single-column restrictions and the =, IN, >, >=, <= and < operators in multi-column restrictions.

Secondary Indexes : Cassandra provide direct support for the searching on secondary indexed columns using =, CONTAINS or CONTAINS KEY only. If user wants to filter a regular column or secondary indexed column using =, >, >=, <= and <, CONTAINS and CONTAINS KEY operators, then ALLOW FILTERING OPTION should be specified. However ALLOW FILTERING should be carefully used as it can impact performance severely as in [2]. IN operator restrictions do not supported for secondary indexed queries.

Example Table:

CREATE TABLE numberOfRequests (
cluster text,
date text,
datacenter text,
hour int,
minute int,
numberOfRequests int,
PRIMARY KEY ((cluster, date), datacenter, hour, minute))
CREATE INDEX ON numberOfRequests (numberOfRequests);

In this table cluster and date columns used as a partition key

Columns after partition key which are datacenter, hour and minute used as clustering keys

Last it’s created a secondary indexed on column numberOfRequests.

According to my analysis, using CQL only for the FHIR analytics will require several columns to be indexed. Cassandra also not encourage to have large number of column indexes as it’s again affects to write performance. With CQL, dynamic query builder using FHIR resource attributes is highly challenging task.

FHIR resource is more of a self contain resource. But single FHIR resource constructed using complex type of sub elements. With our storing model, we are planning to store most of the sub elements as texts. For example, address in patient resource will be completely stored as text irrespective of it constructed using several fields. Hence with Cassandra it’s highly challenge to filter based on elements of address field.

Most of the big data forums and posts suggest, use Cassandra along with Spark which enable more flexible query options which operated on distributed manner[3]. With spark, user can map data into Spark model and use Spark SQL efficiently to filter and write many complex queries.

It’s always good to read about the things that are new to my knowledge. I’m really thankful for my mentors, LibreHealth and GSoC for this opportunity.





Kavindya Prashadi Bandara | Stories by Kavindya Peramune Rallage on Medium | 2018-06-11 20:21:49

Where to handle redirects when using Node and Vue

Recently I've been working on a web app that uses Node as its server and Vue.js in the front, and I found that I had a number of pages that needed their URL changed from something like to My first instinct was to take the easiest route (ha) and just add a bunch of redirects to the Vue router to have something like this:

const appRouter = new Router({
  mode: 'history',
  routes: [
    { path: '/a', redirect: '/a2' },
    { path: '/b', redirect: '/b2' },
    { path: '/c', redirect: '/c2' },

Though I had planned to have path and redirect mappings live in another file to keep my code looking neater, this still struck me as pretty hacky/inelegant. What if someone has JavaScript turned off? This would break the page redirect. Also is Vue really meant to handle the large number of granular redirects that comes from migrating a lot of pages to another URL pattern?

You got served

I got some good advice from the BostonJS Slack and StackOverflow (thank you everyone!), and realized that these redirects should live on the server. If the server handles the redirects before page loads, we can return a 301 Move Permanently status code, which is the best practice for moving the same resource to a new location. Also these redirects aren't part of the app's logic, so we should keep things tidy by only adding routes that are necessary for views in the app.

Let's never forget about this goofy guy

For the curious, this is how I set up the redirects on my Node server:


const redirectMappings = require('./redirects.js');

app.use( function redirects(req, res, next) {
  const urlPath = req.path.split('/');
  const legacyId = urlPath[ 1 ];

  if ( redirectMappings[ legacyId ] ) {
    return res.redirect(301, '/' + redirectMappings[ legacyId ].id );

  return next();


module.exports = {
  'a1': {
    name: 'Page A',
    id: 'a2'
  'b1': {
    name: 'Page B',
    id: 'b2'
  'c3': {
    name: 'Page C',
    id: 'c3'

Strictly speaking, I didn't need to have a name associated with each redirect entry, but it was helpful for me as a human when checking to see if I had added a redirect for a page yet or not.

Why even have client side routing?

All of this got me thinking, what is the use case for client-side routing? It's handy in apps for improving user experience for a few reasons:

  • You don't need a full refresh of the page when directing the user to a new location, which can make for a less disorienting transition.
  • It's more efficient and feels faster to only change the parts of the DOM you need to update, rather than downloading a whole new web page and its associated JS and CSS.
  • You can add stylish loading transitions between page changes.

Thinking existentially about client-side routing, it seems like going through the trouble to make the page update feel like a classic page redirect (like updating the URL in the browser, styling the DOM content to look like another page even if there is no hard refresh) , is just a convenience for the user to signal that they should think of themselves as visiting a new place now. I guess the inverse of this approach is those "load more posts" links you see on blogs that trigger adding more data (posts) to the page on click. Here the user isn't meant to feel like they're in another place, so they're not routed to another URL and the page doesn't change much. However, it's effectively the same thing when you fetch more data from the server and update the page asynchronously.

Client-side routing beyond the app

Typically you see client-side routing used for single page apps, but we also used it for recirculation on the new Harvard Gazette website. I used PJAX (the browser's pushState API + AJAX) to load the next story displayed at the bottom of an article page and change the URL in the browser when the visitor clicks on it. For example, take a look at this story and click the article that's promoted in the navbar or at the bottom of the page under "Up Next":

Our designer spent some time adding a nice slide transition, and I really like the effect. The next story starts loading as you scroll down the page, so it is ready to display as soon as the user clicks the article link. The fun transitions and snappy loading encourage user engagement and clicking through the next story. A big improvement over a full page refresh and waiting for data from the server!

Katie Broida | Ruminations on Coding and Crafting | 2018-06-10 19:17:21

During past two weeks, I’m working hard to get FHIR analytics to work with Apache Spark and Cassandra.

What is Cassandra?

Apache Cassandra is a free and open-source distributed wide column store NoSQL database management system designed to handle large amounts of data across many commodity servers, providing high availability with no single point of failure. Cassandra offers robust support for clusters spanning multiple datacenters,[1] with asynchronous masterless replication allowing low latency operations for all clients[1]. Cassandra is popular for it’s distributed nature. LibreHealth decided to use cassandra as the datastore for FHIR due to it’s scalable architecture.

Cassandra Query Language (CQL)

Like many other databases, cassandra also a support SQL like query language. CQL is a simple interface for accessing Cassandra, as an alternative to the traditional Structured Query Language (SQL). CQL adds an abstraction layer that hides implementation details of this structure and provides native syntaxes for collections and other common encodings. Language drivers are available for Java (JDBC), Python (DBAPI2), Node.JS (Helenus), Go (gocql) and C++. In Cassandra, database identified as a keyspace. Table identified as a column family. Following queries can be taken as a example which demonstrate the functionality of CQL.

WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 };

USE MyKeySpace;

CREATE COLUMNFAMILY students (id text, name text, mobileNo text, PRIMARY KEY(id));

INSERT INTO students (id, name, mobileNo) VALUES ('1', 'Doe', '123456');

SELECT * FROM students;

Datastax Java Driver for Apache Cassandra

In order to access cassandra database, it’s required to have a driver. Datastax provides a java driver which provide the support to access cassandra database from both native manner and using CQL.

Datastax Spark Cassandra Connector

Datastax provides spark cassandra connector which allow users to connect to cassandra with spark. This connector provide the capability to expose Cassandra tables as Spark RDDs, write Spark RDDs to Cassandra tables, and execute arbitrary CQL queries in your Spark applications.

I have used these libraries to connect my application to Spark and Cassandra. Librehealth is moving to adopt FHIR and casssandra will be the underline storage provider. In my application I have loaded the google FHIR data set to cassandra. This is for the demonstration purposes only. After that, data is loaded to spark RDDs using the spark cassandra connector.

JavaRDD<Patient> patientRDD = javaFunctions(sc).cassandraTable("librehealth", "patient")
.map((Function<CassandraRow, Patient>) cassandraRow -> {
FhirContext fhirCtx = FhirContext.forDstu3();
IParser parser = fhirCtx.newJsonParser().setPrettyPrint(true);
String patientSrt = cassandraRow.getString("value");
Patient patientOb = parser.parseResource(Patient.class, patientSrt);
return patientOb;

JavaRDD<Observation> observationRDD = javaFunctions(sc).cassandraTable("librehealth", "observation")
.map((Function<CassandraRow, Observation>) cassandraRow -> {
FhirContext fhirCtx = FhirContext.forDstu3();
IParser parser = fhirCtx.newJsonParser().setPrettyPrint(true);
String observationStr = cassandraRow.getString("value");
Observation observationOb = parser.parseResource(Observation.class, observationStr);
return observationOb;

After loading this to Spark RDD, I have used Bunsen encoders to convert these data in to dataset which allow users to run Spark SQL on top of the FHIR data.

FhirEncoders encoders = FhirEncoders.forStu3().getOrCreate();
Dataset<Patient> peopleDFq = sparkSession.createDataset(patientRDD.rdd(), encoders.of(Patient.class));
Dataset<Observation> observationDfq = sparkSession.createDataset(observationRDD.rdd(), encoders.of(Observation.class));

Bunsen Encoders?

Bunsen encodes FHIR data in Apache Spark by generating Spark Encoders from the FHIR resource definitions. The encoders convert the FHIR data model into a Spark schema on a field-by-field, type-by-type basis. At runtime, they automatically generate byte code that serialises FHIR objects as Spark Datasets, which are an efficient binary representation that can be analysed at petabyte scale. Those datasets can then be saved or manipulated like any other Spark data.

Ex : FHIR Observation Representation after convert using Bunsen Encoders

|-- id: string (nullable = true)
|-- meta: struct (nullable = true)
| |-- id: string (nullable = true)
| |-- versionId: string (nullable = true)
|-- status: string (nullable = true)
|-- category: array (nullable = true)
| |-- element: struct (containsNull = true)
| | |-- id: string (nullable = true)
| | |-- coding: array (nullable = true)
| | | |-- element: struct (containsNull = true)
| | | | |-- id: string (nullable = true)
| | | | |-- system: string (nullable = true)
| | | | |-- version: string (nullable = true)
| | | | |-- code: string (nullable = true)
| | | | |-- display: string (nullable = true)
| | | | |-- userSelected: boolean (nullable = true)
| | |-- text: string (nullable = true)
|-- code: struct (nullable = true)
| |-- id: string (nullable = true)
| |-- coding: array (nullable = true)
| | |-- element: struct (containsNull = true)
|-- valueDateTime: string (nullable = true)
|-- valueQuantity: struct (nullable = true)
| |-- id: string (nullable = true)
| |-- value: decimal(12,4) (nullable = true)
| |-- comparator: string (nullable = true)
| |-- unit: string (nullable = true)
| |-- system: string (nullable = true)
| |-- code: string (nullable = true)
|-- valueRatio: struct (nullable = true)
| |-- id: string (nullable = true)
| |-- numerator: struct (nullable = true)

At last loading FHIR data from Cassandra to Spark allowed me to run complex queries against the FHIR data.

Sample Query

SELECT * FROM patient inner join observation where observation.subject.reference == and gender='male'



Kavindya Prashadi Bandara | Stories by Kavindya Peramune Rallage on Medium | 2018-06-04 02:44:58

At my company, we have built quite a large single-page application using TypeScript, React and Redux. For routing, we are using react-router library by React Training. Everything works great except we had a hard time writing tests for routing (for testing, we use Enzyme with Jest). React is a very simple and rather minimalistic library, so once you have assembled your lego of various libraries, certain kinds of integration testing for your particular combination may get tricky. In this post, I will very briefly go over the routing testing solution I have come up with.

If your container makes decisions based on the react-router’s match object, you need to populate the container’s match with fixture data. This can be achieved in various ways, the simplest of which is to wrap the container in a Route element from react-router. If you feel adventurous, you can wrap your container in a simple mock parent container with something like Switch inside. You can also use the actual parent container, depending on the situation.

Redux store is passed into the above through the Provider component from the react-redux library (by Redux.js). All of this you can wrap in MemoryRouter —it allows for mocking history and navigation. You can set its initialEntries (sort of a navigation history mock) and initialIndex (this is a point in the navigation history where your test will start). To illustrate, this is the little helper function I wrote (the purpose of actionInterceptor is to test dispatching actions and/or custom middlewares, while we’re at it):

Pretty straightforward. Now, to assert on the location changes, you need to find your trigger element in the wrapper, simulate the event, and then either intercept your dispatched actions with a mock middleware, or examine the router’s location object.

Irene Storozhko | Stories by Irene on Medium | 2018-06-03 03:05:52

Stained glass has been with us for far more than a thousand many years. Folks are fascinated by the magnificence of light-weight which passes as a result of the artwork and the visible radiation of light-weight into a place. Most men and women feel of the regular cathedral and church windows.

Stained glass artwork was created to aid talk tales to the masses of men and women who could not read through. Textbooks and other published will work had been restricted for the several and had been not out there to the basic community. The artists assembled pieces of glass paintings which had been held alongside one another with direct to explain to spiritual tales or to depict religious beings.

Nowadays, stained glass kits are out there and there are a lot of textbooks about this subject. As an artist and craftsman you have the alternative of utilizing picked resources for smaller or substantial projects based on your talent stage and instrument choices.

There are a lot of projects which can be done with stained glass. Expenditures will be dependent on your variety.

Stained Glass Job Concepts:

    1. Glass doors


    1. Interior décor of residences and offices to compliment with light-weight, art, and color


    1. Exterior windows to allow for sunlight to stream as a result of artwork highlighting a place with light-weight, temper, and electrical power..


    1. Household decor – lamps, mirrors, panels, place dividers, and containers


    1. Home furnishings


    1. Jewelry


    1. Glassware and dinnerware


    1. Interior and exterior containers


    1. Wall hangings and other art pieces

Hand resources and electrical resources could be utilised. More usually than not hand resources are most usually utilised. If you make your mind up that this hobby could develop into a organization then electrical resources would be vital to speed creation.

There are some dangers operating with glass and if you desire to avoid this medium other resources could be substituted.

    1. Acrylic panels: Order a very clear acrylic sheet and transparent paints built for stained glass application. On completion of this venture its physical appearance will be extremely similar to glass. It will increase magnificence to the property inside, is significantly less high priced, will save time, and safer than true glass. Other resources could be vital based on the kind and sizing of the venture.


    1. Plexiglas: is also an acrylic but is produced much better and will cost far more than typical acrylic but it has a more time lifetime than true glass and not as expensive.


    1. Glass paint and fake primary: paints which can be utilised are enamel and formulated acrylic tints built for glass. Guide trimming is utilised in regular work. Faux primary is bogus and out there as a liquid or paste.


    1. Resin: Liquid acrylic ordinarily utilised for smaller projects and jewelry.


    1. Coloured tissue paper


    1. Melted pony beads


    1. Speak to paper


Roxana Necula | | 2018-05-31 14:28:11

Vedic Astrology is a aspect of Astronomy. It begins the place Astronomy finishes. The planets that revolve close to the sun generate a grave impression on the life of men and women on the earth as effectively.

For understanding an individual’s horoscope, the 9 zodiac planets variety the solitary most essential criteria. But it is dependent majorly upon the place these planets are placed in relation to every other.

Some of the incredibly essential issues in lifetime which are described by planets are

    • Happiness in an individual’s married lifetime


    • How quite a few kids would a pair have


    • What is the career that a man or woman would go after

Alternately, every of the planets also symbolizes some incredibly essential factors in lifetime.

Just as an illustration, Venus planet in astrology is the image of love and when effectively placed, it brings about love and happiness in a person’s lifetime. In the exact way, if the planet Venus is connected with malefic planets, or if it is placed in a residence which is not beneficial, some difficulties in one’s love lifetime are possible.

Allow us run as a result of some of the incredibly essential ways of figuring out planetary strength. These are by no signifies thorough but nonetheless would give us a great diploma of strategy concerning how a particular planet would influence us positively or negatively.

A host of other variables also appear into enjoy and these would include aspect and conjunction of other planets, and also the particular Nakshatra wherein the planet is placed.

But the next would be the essential ways of accessing the strength of a planet.


In a incredibly typical way, Moon, Venus, Jupiter and Mercury are regarded as benefic planets

Though Sunshine, Mars, Saturn, Rahu, and Ketu are regarded as as malefic planets

But every planet is possessed with its own attributes and becoming benefic and malefic has a great deal to do with the placement of the planet in one’s horoscope.


In Vedic Astrology, homes too are divided as favorable and unfavorable.

Planets placed in homes 1, two, four, 5, 7, 9, and ten are regarded as favorable.

Equally, planets placed in homes 6, 8, 12 are regarded as malefic.

The nearness of the planets, the typical character of the planet and the placement of the planet in a particular Dwelling of your Start Chart, jointly represent to its strength and weak point. Hence the planets on their own are not strong or weak and for that subject we can not position one planet to be the strongest among the all. If a particular planet is placed in the suitable residence, it may well boost your lifetime and deliver all the riches, fame, glory and the factors that imply the most to you, earning it a much better planet for you. In the exact way, it is”A person for Just about every”.

We will now determine a number of attribute characteristics of all the planets that are regarded as when researching Astrology. The planets have a particular specific characteristics of their own, having said that, when it is in conjunction with other planets it might also get influenced with the other planets. The placement of the planets is so of grave worth.

Sunshine: Sunshine is the atma (soul) of all planet and human beings as effectively. It is the King of all planets and so possesses many positive characteristics such as becoming a fatherly determine, has immense strength, holds self-respect, is just, and authoritative.

What the planet Sunshine overlooks is one’s actual physical wellness and vitality. So how an particular person assignments himself on to the entire world is definitely dependent on the planet sun.

When Sunshine is strong in one’s horoscope, the particular person is incredibly energetic, and Sunshine will make the particular person a centre of attraction.

But is the Sunshine is weak in an individual’s horoscope, the constitution could be weak and the man or woman operates the chance of becoming moi centric.

Moon: Moon is connected to the thoughts. It acts as the mom of all, and imparts love, peace of thoughts, positivity and emotions. Moon is money. It also signifies h2o and greenery. It is closest to the planet earth and so influences us a great deal.

The planet moon is the ruler of one’s looks and emotions. With the moon nicely placed, the particular person is delighted, and the moon brings about a larger diploma of social and actual physical attractiveness.

This in turn brings about achievement in lifetime, as a delighted man or woman would nicely combine with other people.

But this is in contrast with a moon which is not placed nicely, and could trigger nervousness or despair, or even hardship.

Mercury: Mercury depicts Intelligence. People with a strong placement of Mercury in their Start Chart are organization minded, have better grasping electric power, can assume logically, superior in math, are agile and warn. It also signifies speech and other organization connected to it.

Mercury is the quickest planet in the solar process. It procedures our intelligence and also influences our skill to communicate.

With Mercury nicely placed, an particular person is possessed with higher intelligence. Mercury also gives dexterity considering the fact that Mercury procedures one’s hands as effectively.

Some of the characteristics of men and women who have the planet mercury nicely placed include an aptitude speaking, crafting and training.

Even so, if the planet mercury is weak or stricken, this would negatively influence an individual’s qualities in these parts. This might even translate to a harsh speaking style at periods.

Venus: Venus depicts love marriage and organization. It enhances your sex lifetime, life-style, and deliver along money and prosperity of all type.

Though Venus is the planet of love, it also signifies women in typical. Venus symbolizes magnificence artwork and socializing, and the planet essentially stands for all superior factors in lifetime.

When Venus is strong in one’s horoscope, it augurs positive for one’s relationship as the pair finds contentedness in their lifetime and also develop an appreciation for arts.

But if the planet Venus in one’s horoscope is debilitated, it could direct some form of disharmony in associations. A person may well even deal with a problems in relating with other people.

Mars: Mars depicts braveness, bravely, specialized and scientific strength and self confidence. People with a strong Mars are great troopers, policemen, engineers, physicians and connected professions connected with it. It also signifies land and authentic estate.

The planet Mars is the planet of atheletes. It signifies action. And with the planet Mars, we could appear to know about how a lot initiative does an particular person actually have to deliver about improvements in their lifetime.

When Mars is strong, the particular person is possessed with an skill to outlast his opponents. He is definitely possessed with the skill to get up and go.

But when Mars is stricken, the man or woman might close up becoming the form of an particular person who fights too a lot.

Jupiter: Jupiter is identified as Expert – the trainer. People influenced by Jupiter are spiritually clever and proficient. Jupiter supports love, marriage, and journey. It depicts wisdom and instruction of the man or woman. A person is also inclined in the direction of executing effectively to mankind.

Jupiter is a great beneficiary, and it symbolizes wisdom, faith and expansion.

The planet Jupiter also tells us about how a lot wealth would a man or woman get paid in his life time.

With a strong Jupiter in his birthchart, the man or woman is possible to be a effectively educated man or woman who is effectively to do.

Often when the Jupiter is stricken, material prosperity fails to follow.

Saturn: Shani is a hermit and depicts time previous age, poverty and lifetime. It is a judgmental planet, and the man or woman with a strong Shani can do superior in politics, organization, and other such sectors that needs your self-self confidence. A person with a strong Shani is hardworking, self-empowered and thriving in lifetime.

Saturn is the planet of decline, but even so assists us fully grasp our constraints. It assists us realize the issues wherein we can not deliver about a modify.

Saturn is the ruler of self-control and challenging function. It is about duty, longevity and decline that Saturn teaches us.

When one is blessed with a strong Saturn in his birthchart, you could hope the particular person to be committed, and with a perseverance to procedures and traditions.

Even so an stricken Saturn could make one undisciplined, or even irresponsible.

Uranus: Uranus has all the characteristics of Mercury, having said that, it is a lot more forceful or critical. We can expression it as the increased version of Mercury. It denotes severe knowledge and intelligence, or severe improvements (drastic) that one can expertise. It also denotes modern know-how, hypnotism and black magic.

Uranus happens to be a mysterious planet, and signifies a phenomenon which is unpredictable or abnormal. When Uranus is outstanding in an individual’s start chart, he pays a deep regard to his originality and independence.

With the Uranus favorable, the intellect is sharp and the man or woman is possessed with a motivation to be unconventional.

Neptune: Neptune is the increased version of Venus. It denotes instinct, magnificence and social lifetime. It is also identified for building confusion in the residence it is placed in.

Neptune, in quite a few senses could be seen as the inverse of the planet Saturn, which is staunch and impassive. The planet is an idealist, but could close up becoming an escapist at periods.

If the planet Neptune is balanced, the particular person is renowned for his magnificence or public graphic. However a Neptune not effectively placed could deliver the man or woman nearer to illusions in lifetime. He or she may well even develop troubles with medication or alcohol.

Pluto: Pluto is effective on a mass scale. A person might come upon significant factors going on to them (both superior or lousy). It is a recently found out planet. It relates to mass, social and non secular lifetime, and political occasions.

The planet Pluto is identified to magnify the result of what ever planet it touches. Though Pluto is connected with electric power, it does so in a way which is whole or compulsive.

It is also identified that the planet Pluto operates beneath the surface.

When Pluto is effectively placed, one routines higher electric power around other people and enjoys higher wealth.

But a terribly aspected Pluto can trigger misery.

Rahu: Rahu depicts the ascending north node and influences the moon the most among the the planets. It deliver title and fame, unexpected improvements, overseas travels to title a number of. It also aids in therapeutic diseases.

Rahu is the astronomical position, the place the orbital path of the Sunshine intersects with the upper orbital path of the moon.

In typical, the planet Rahu is regarded as to be malefic.Even so when affiliated with benefic planets, the planet Rahu brings about achievement, and great riches as effectively. It could even pave way for refined arts or scientific discoveries.

But when Rahu is stricken, it could trigger malefic effects as effectively. This is vastly dependent on the planet it is most effectively linked to.

Ketu: Ketu depicts the descending south node and influences the sun the most. It is worshipped for spirituality and also is effective in favor of switching occasions, incidents and breaking associations.

Ketu, just opposite to the planet Rahu is the position the place in the orbit of the Sunshine intersects with the reduce orbital path of the moon.

Just like the planet Rahu, Ketu too is regarded as to be malefic. But it could supply a incredibly positive strengthen to an individual’s horoscope when it brings together with favorable planetary configurations.

Planet Ketu is possessed with abilities to deliver men and women to the around worldly realms

All zodiac planets have their own importance in astrology and can acquire a man or woman to Rags or to Riches based upon their placements, their conjunction, the Zodiac Indications and Nakshatras. However, one may well also lessen the unwell effects of the planets to a particular extent by implements particular solutions. A person may well appease the ruling deity and surrender and may well achieve love, wellness, wealth, prosperity, abundance, and all factors that imply a great deal to you.

Roxana Necula | | 2018-05-31 14:26:02

Have you ever viewed as, what might possibly, go improper, since of the actions, or failure to act, of our general public officials? The actuality of general public management, is, whilst, we generally blame and complain, about what, these leaders, do, the actual blame, must go, to the American citizens, and its willingness, to consider, the vacant claims, and rhetoric, instead than demanding the real truth, and appropriate, sustainable, practical solutions! In these days, of so many, fake information, 50 percent – truths, and populist, overly – simplistic rhetoric, our country threats, losing its establish, and its location, in the entire world, for symbolizing the finest, democratic, liberty, and flexibility – dependent, alternatives/ alternatives. With that in intellect, this report will briefly try to contemplate, critique and focus on, 5 rational fears, we all must have, since of the existing political atmosphere.

one. Why we elect, who we elect? The character of political leaders: Analyze, why we vote, for precise candidates? Heritage exhibits us, most voters elect and select, folks, dependent on their populist rhetoric, and claims, instead than kinds, who make claims, which feed, their particular agenda, biases, and prejudices! We must contemplate, and examine, the crucial character of an personal, their motives and motivations, and the very best way, our country, must continue!

2. Surroundings: Although the rest of the entire world, at the very least, acknowledges, the actuality of local climate alter, and how individuals influence our atmosphere, President Trump made the decision, to have the United States, clear away itself, from the Paris Accords (one of the only nations, to do so). He stated, this go, by diminishing the prevailing viewpoint of the vast the greater part of authorities, and making use of, cutting down restrictions, as one of the justifications. Sad to say, even so, as President Macron, of France, not too long ago stated, the entire world, does not have, a World B, since, the future and sustainability of our entire world, is at – hazard, since of the failure to make practical, sustainable solutions/ decisions, right now!

3. Electricity (oil and gasoline, etcetera): President Trump’s decision to reverse the gasoline financial system benchmarks, for vehicles, outlining it, in terms of economic decisions, etcetera, until/ until, we concentration on cutting down our dependence of fossil fuels, our atmosphere, power – independence, etcetera, is, at – hazard! Should not The united states be the chief, instead than trailing, most of the rest, of the formulated nations, of the entire world?

4. Social Plan: Why does it appear, Donald Trump, equates, earning The united states wonderful, all over again, to cutting down, our emphasis, on social justice, freedoms and liberties, we have emphasised, and fought for, for generations? The entire world has been emphasizing raising this emphasis, but we have been heading in the reverse course! What can make The united states, wonderful, until/ until, we concentration on what has, traditionally, made us, so?

5. Top quality of lifetime (liberty and flexibility): For generations, the rest of the entire world, has appeared, at the United States, to be a chief, in the struggle for liberty and flexibility! We have to have to re – concentration on this vital vision!

What might possibly, go improper, if we continue, as we have been, in these past sixteen months, or so? Foreseeable future generations will glimpse back, and how, will we demonstrate this?

Roxana Necula | | 2018-05-31 14:21:49

It is really not the butter-pecan ice product that is keeping you back from what would make a true lady, you know. How to be much more appealing is in fixing a Sure (and I am going to tell you how in a minute), that clears the way for miraculous alter and expansion.

How to look appealing and becoming the true, luminous you commences listed here (see and just take a peek!).

If you have ever necessary to get unstuck from a terrible position in your everyday living, this is the variety of compassionate, insightful, inspirational help you need for what would make a lady.

The True concerns that hold you back are NOT about too substantially food stuff (even sweets and junk food stuff!), your wrinkles, your bra size, or your economical circumstance.

You are heading to have to cease operating from people self-projected inner creatures in the dim, and start off staring them straight in the eyes and tell them WHO IS Actually IN Regulate.

Maintain in mind as you ponder my concept in this report what the Course in Miracles states about letting go of self-projected anxiety:.

” Young children understand horrifying ghosts and monsters and dragons, and they are terrified. If they question a person they trust for the which means of what they understand, and are prepared to let their own interpretations go in favor of truth, their anxiety goes with them.”.

How do you explore what would make a lady?

Clear up the Right challenge:

– Crippling anxiety desires to become vivid optimism and how to look appealing.

– Aggravation must change into knowledge and a fascinating lady.

– Sloppy behavior become legitimate inner-motivation.

– Doubts dissolve absent and you Finally see your aims commence to be reached!

If you have ever felt forgotten, unworthy, or disposable, and afraid of everyday living, you can study how to change that mistaken-minded, moi-dependent considering all over into correct-minded, spirited views and steps for what appeals to men to girls.

The Program in Miracles further states, “When a kid is assisted to translate her ‘ghost’ into a curtain, her ‘monster’ into a shadow, and her ‘dragon’ into a dream she is no for a longer period afraid, and laughs fortunately at her own anxiety.”.

You need a neighborhood of intelligent, loving girls with equivalent aims and struggles who are now fascinating girls.

There is certainly just no reason to NOT just take a look at what would make a lady!

Earlier I held a discussion on what is it about the Ladies Gentlemen Adore: and is there a mystery to trying to keep your guy from leaving?

It might be exactly the breakthrough your everyday living desires correct now!

It can be extremely tricky to come across a secure, Private position exactly where you can brazenly express your fears, self-doubt, and dreams devoid of experience judged or shamed.

You can come across other people who will enthusiastically supply the guidance you need to rework into the assured, got-it-together, radiant and stunning lady you are meant to be.

Obtain your THUMBS-UP tribe of girls and mentors friends, due to the fact you totally do should have this!

If you are significant about looking for self-expansion and personal transformation as a lady, you should not test to do it all by your self.

You need individuals who can correctly tutorial, advise and suggest and mentor you.

You will not likely think what is accessible on the internet now, but I guarantee you it is totally new, new, and innovative.

Almost everywhere you go, there always appears to be some horrible critic or toxic particular person waiting to tear you down and tell you that you might be no excellent.

Properly isn’t really it time that sufficient is sufficient?

Sure, I indicate it is up to you from inside of your self to go from “a disappointed and puzzled mess” to “incredibly gorgeous” all via you.

(Again, I must insert there many possibilities and insightful material on the net for a clearer knowledge of what’s heading on currently with interactions and men, and what men appreciate about girls.)

To the stunning you!

Roxana Necula | | 2018-05-31 14:18:49

Quite a few girls surprise when it will be the best time to start a loved ones. The truth of the matter is, you seriously can not just choose an age and figure out that it is the best age. This is just merely not the circumstance. There are lots of different aspects that go into choosing when it will be the best time to get started off getting little ones. This is a little something that will change from a person woman to a different. Positive, there are excellent ages, but none of them are going to be correct for anyone out there. This is due to the fact so lots of persons have different suggestions of what will make them completely ready to be a father or mother. These are all vital and legitimate things to consider.

There are lots of different arguments that say that persons should really start getting little ones in their early adulthoodlet’s say about the twenties. Properly, the persons that say this do have legitimate details, but it is merely not going to give you a textbook answer to the question. Most persons that say that setting up a loved ones at this age is a terrific strategy will give causes this kind of as the simple fact that they will be younger and be capable to preserve up with the little ones. They also feel that they will have a lot more power and will be capable to cope with dealing with a new child infant. Then you also consider that by the time they are in their late teens and early twenties, you will nevertheless have some youth left and be capable to reside a very little. These are all things that persons consider when getting little ones in their twenties.

Then you have the persons that believe that the thirties are the best a long time to start a loved ones. For these persons, they also have a legitimate argument on their hands. They say that by the time they are in their thirties they will be more secured in their professions and be better capable to assistance the loved ones financially. They also feel that they will have more worldly expertise and be capable to better increase the little ones. Next the expertise is tolerance, which is acquired in time. These are all terrific causes that they pick out to wait around right up until they are in their thirties.

Properly, then you have to glimpse at it from an general point of view as perfectly as a scientific point of view. For adult men, it does not seriously issue scientifically. They continue to be capable to reproduce much into their more mature everyday living. This is just a simple fact of everyday living and mother nature, and how the human system functions. For girls, it is a different tale. Females do have a biological clock that is ticking. This is due to the fact they only have a specific quantity of eggs in their ovaries. When these are long gone, then her probabilities of being capable to get pregnant and have a infant will be in excess of. This is not a little something that you should really seriously fear about that considerably while. Stressing in excess of a little something that does not generally transpire right up until mid forties to early fifties is just not simple. By this time, most girls would not aspiration of setting up a loved ones. They are at this level searching to settle down and appreciate everyday living – regardless of whether they are alone or with a companion.

When you glimpse at the general details of check out, you will have to have to just consider your person scenario. Do you see on your own completely ready and capable to have a infant? Are you completely ready to be up at night time with a new child? Are you responsible? Do you have a companion that will aid you with the infant? Do you feel that you will have to have a person if you do not? All of these are answers that persons might only be capable to answer for them selves. It is for this cause that no a person can give you a definitive answer on when the best time to start a loved ones is.

As you can see – deciding when to start a loved ones is completely up to you and your wife or husband, or companion. Permitting somebody else come to a decision for you, or having an invalid textbook answer is merely not simple. Just take the time to make confident that you are completely ready just before you get started off in the infant producing method.

Roxana Necula | | 2018-05-31 14:14:13

(Cross-posted from Windmill’s blog.)

At the end of April, Windmill (all five of us) trekked down to GothamGo to learn things, meet people, and pitch our product. As Silver Level sponsors, we had our very own little table on the first floor; it was the perfect chance to pitch our fledgling product, make connections, and figure out what developers might want from us. The only question was: how?

We’re a brand-new team, and GothamGo was a great excuse to do some important work. In preparation for the conference, we talked, we brainstormed, we aligned on our values and objectives and product goals; and then took the results of those conversations and ran with them, building our booth and our pitch from the bottom up.

The Booth (Objectives and Values)

The first order of business was: what was our booth going to look like? We asked this question of the team, and immediately realized that we first had to tackle our zeroth order of business: what were our objectives for the conference? In other words, what did we as a company hope to get out of GothamGo? Our answers would shape how we interacted with attendees, and how we decked out our booth to encourage those interactions.

We decided that the primary things we were looking to get out of this conference were:

  • A pulse on developer needs. (What are the pain points of people’s current dev tools? What do they want their magic dev tools solution to do for them?)
  • Product feedback. (Is our current incarnation of Windmill the right product to be building?)
  • Design partners. (These are larger organizations interested in adopting Windmill for their codebase, who will work with us to refine our product for them — and by extension, for other users.)

Additionally, though not our primary focus, nice-to-have conference benefits included:

  • Buzz around our product
  • Alpha users who would play with Windmill and give us feedback
  • Rad developers interested in joining our team

With a framework in mind, we then turned to booth design.

Last year at GothamGo, our founders went full science fair, with great success.

Nick and Dan at GothamGo ‘17

Nick and Dan at GothamGo ‘17

This year we wanted something with a similar vibe — not a big fancy banner with our company name on it, but something more personal and more interesting.

Instead of throwing ideas out into the void, though, we decided to focus our thinking. What did we like about last year’s booth that we were trying to replicate? What did we want this year’s booth to communicate? We brainstormed, and came up with some values that we wanted our booth to reflect:

  • DIY (“we got our hands dirty making this booth instead of just buying a pretty banner”)
  • Authentic (“we’re being our excitable, nerdy selves and we’re really psyched about dev tools, y’all!”)
  • Approachable
  • Sparks conversation
  • Communicates the stage of our startup (i.e. early. Very early.)
  • Empathetic

We started tossing out ideas for booth themes in keeping with these values, but the breakthrough actually came when we took a slightly different tack: rather than “what do we want our booth to be,” we considered, “how do we want our booth to hook passersby?” The very first idea that got proposed was: “let’s let people complain about their dev tools. People love complaining about their dev tools.” The team loved it, and from there, it was jut a hop, skip, and a jump to Lucy’s “Psychiatric Help 5¢” stall from Peanuts.

The final product!

The final product!

We spent some time spitballing ideas, and declared a sub-committee to come up with a more concrete proposal. (It turned out that this was a key move — brainstorming is great for generating high-level ideas, but trying to make specific decisions in a committee of 5+ is a recipe for disaster.) With the fruits of this meeting in mind, our sub-committee set out to decide exactly what the booth would look like, and what swag/shiny things/interactive bits we would have to spark conversation and move towards our objectives.

Keeping It Lean

Our sub-committee brought back a booth proposal with a bunch of neat stuff, including:

  • a “tip jar” where people could optionally put their 5¢ for donation to Women Who Go
  • a monitor with a screencast of our alpha product in use
  • a “make your own T-shirt” station
  • an iPad and keyboard for folks to fill out a contact form (okay, maybe this one is par for the course)

…and more! In the end though, we decided to strike almost all of their proposals.

The initial booth proposal. Note a handful of things already crossed out.

The initial booth proposal. Note a handful of things already crossed out.

Any of the things suggested would be great booth components and conversation starters in their own right; but all together, it was just too much! If someone came up to our booth, we didn’t want to overwhelm them with choice; instead, we wanted a booth that funneled visitors into our desired modes of interaction. In the end, we opted to keep our booth lean, with only three major components: the psychiatry booth sign itself (“Dev Tools Help 5¢”); the screencast of Windmill Alpha in action; and a handout asking people for dev tools horror stories and directing them to our contact form.

The Pitch

The product we’re trying to build is a little new and a little amorphous. Given that, and the fact that 40% of our team had joined within the previous months, we took GothamGo as an opportunity to align on our vision of Windmill and to practice pitching our product.

To kick off our practice session, our co-founders (by far our most experienced pitches) shared some of their one-sentence product hooks. (We don’t have a clean-cut “Windmill is like {Uber} for {cats}”, but there are a handful of pithy phrases that work well to explain our product and spur further conversation.) Armed with these one-liners, we all role-played pitching Windmill to a conference attendee, with the rest of the team giving feedback. Here are some useful guideposts that emerged from this exercise:

  • Your opening line can be brief. I had previously bent over backwards trying to explain Windmill in one sentence, but to my surprise, the best pitch-starters were the shortest: say, “Windmill makes development tools that give you faster answers to better questions.” The purpose of the opening line was not to explain our entire product in one go; it was to catch interest and spark discussion.

  • Let the pitch-ee steer the pitch. If you’re talking to a real containers nerd, of course you want to seize the opportunity to brag about your container magic. And conversely, if you’re talking to someone whose biggest pain point is iOS integration testing, if you spend 5 minutes talking to them about deploying to Kubernetes, you’re wasting their time. However, if you take their signals and talk about the things they seem most interested in, you hold their interest better and have a greater chance of getting their buy-in. And in order to customize your pitch, you probably want to…

  • Ask your pitch-ee questions about their situation/use case. This is by far the best way to make sure you’re pitching to someone and holding their interest, instead of rambling about generic stuff that’s not of interest to them.

  • Corollary point: probe to get at their concerns and reservations, and address them directly. If you’re feeling resistance to your pitch, figure out why — either you can address your pitch-ee’s concerns and explain how your product is in fact right for them, or you come away with a new growth area for your product.

We came away from our practice session more comfortable in our pitch, and more unified in our product vision. And because of our thorough prep work — for pitch, booth, and conference objectives alike — we were able to go into GothamGo prepared, aligned, and ready to make some new friends on behalf of Windmill.

Want to see the fruits of our pitch-practicing? Luckily, it’s easy to get a first-hand demonstration: hit us up at @windmill_eng or drop us an email!

Maia Remez McCormick | Maia McCormick | 2018-05-29 20:29:12

for PyCon 2018 in Cleveland, the city of my birth. It was wonderful! So many great people... and Saturday night Cleveland's Terminal Tower was lit in Python blue and gold... and Sunday my small donation to the Python Software Foundation turned into a chance to have lunch, along with several other lucky donors, with Guido van Rossum.

In case you missed it, PyCon 2018 talks are online, and so, too, now are photos from the poster session.

More later...

Barbara Miller | galgeek - galgeek | 2018-05-28 00:00:00

As the General Data Protection Regulation compliance deadline has arrived today, I have removed all tracking scripts from my website.

I did it to protect myself, as being self-employed implies I’m a legal entity. I never collected any data beyond user visits, be it personal information or passwords.

I have only used two tracking scripts, both external:

  • Google Analytics for getting info on the website traffic - removed completely

  • Recurse Center script for referrals - I removed the script and now only use a static link for referrals (even the RC logo animation is in pure CSS)

Since this website is being hosted on GitHub pages, some data is still being tracked by GitHub servers for providing the service. I don’t have control over what GitHub might be tracking, but I don’t provide any additional data to them. Any data GitHub might have on users after visiting this website is what they willfully provide by browsing the Internet.

I might add a new tracking script to this website in the future, after I make sure I understand if and how Google Analytics is compliant with GDPR.

Alicja Raszkowska | Alicja Raszkowska | 2018-05-25 15:30:00

<Pictures, Slides, URLS will be added on Monday>

I wrote a post on all my travels during May. One of my trips was to Tirana, Albania for OSCAL conference organized by Open Labs.I feel lucky to be given the opportunity to be a part of the experience – not just as a speaker but also a learner.

Open Labs is fuelling the open source movement in Albania starting from building a community from the grassroots in Tirana, Albania – and they have done an awesome job at it! The Open Labs community is warm, welcoming, inclusive and inquisitive (and women are the majority! Yaay, fem power!).

I learnt a lot of things about open source, hardware, different projects and communities and got to meet people behind them. I was representing the Fedora community and doing outreach and spreading awareness about our project, our community with a primary focus on getting more women into Fedora and open source. The audience at OSCAL is unique in the sense that a lot of them are female (about 70 percent of open lab members are female) and are university students or recent graduates.

I had three sessions at OSCAL – a community meetup for ‘ Women in Open Source’ and their supporters, a presentation on ‘How to get paid to do open source?’ and a workshop on Machine Learning. We also had a Fedora community meetup and Fedora 28 release party! It was definitely a packed conference for me. Thankfully, Renata and I were doing the meetup and presentation together!

We had a lot of participants in community meetup for ‘ Women in Open Source’ – from different walks in their open source journey. Some were newcomers and wanted to get involved while others wanted to learn how their companies or projects could shift and collaborate with other open source communities. There was a lot of buzz around different open source projects and especially Fedora! We even had a few high school students as attendees and people were promoting open positions at their companies! The time was not enough and in the end, we were both being asked questions about internships and contributing to open source! Also, it was not just all girls and I was glad to see our male allies there too! Did I mention the chairwoman of The Document Foundation, Marina Latini was there? It feels so awesome to meet one of your role models in real – and the meet up was a pathway to that for me – and I hope I could do it for others too!

During our talk on ‘How to get paid to contribute to open source’, Renata and I talked about different paid opportunities including internships, fellowships, project grants and job offers and how to search and apply for them! Personally, I always feel like I find such awesome opportunities after their deadline is over and I hoped our talk would avoid that for others. If you are interested, you can find our slides online. While prepping for the talk, I myself learnt about a lot of new opportunities. Also, we used the opportunity to highlight the importance of subscribing to different mailing lists and job boards – especially, if you are a women or from other underrepresented community! My personal advice:

Open source has a lot of paid opportunities too –  Don’t be shy! Don’t doubt yourself! There are a lot of resource and support for you out there! Take advantage of them!

On the afternoon on the same day (yes, I know!), I had my Machine Learning workshop. I talked about different machine learning applications and taught the fundamentals of some basic algorithms. The audience was very engaged and I hope they learnt or atleast became interested in Machine Learning after. I also talked about Open source in machine learning world and how different FOSS communities are using machine learning. We wanted to try and implement a small algorithm during the session but the time was less and attendees didnt know Python – so it was a dead end! However, I showed them one of my notebooks, introduced them to common ML libraries like numpy, pandas and scikit learn and how to use them and pointed them towards learning resources for both Machine Learning and Python!

When I was not presenting, I was at the booth with the Fedorator! There were a lot of people dropping by who used Windows and I spent a lot of time discussing about advantages of Linux distros like Fedora. Few people asked us for the CD and how to install – but we had the Fedorator to save the day! There were also some intense discussions on modularity in Fedora, Fedora spins and on getting involved with the community! Since the OSCAL venue was a public heritage site just open for the conference, a lot of tourists and locals who didn’t know about open source dropped by and hopefully, learnt about open source from us! This was also the first time we tried to have a hack challenge at Fedora booth during the conference. We had a poster and promoted this hack challenge at booth and meetups. People who contributed during OSCAL could get an OSCAL attendee badge. Easy contributions which were promoted for hack challenge:

* Translate strings from english to albanian in zanata

* Fedora easyfix issues

* Tagging packages

* testing bodhi kernel/ updates

A lot of people were interested in the and easyfix issues website. However, I don’t know of anyone who actually contributed during the conference and a lot of people also said that they might not be able to because of the different talks/ workshops going on simultaneously. However, most of them expressed concern about difficulty in starting to contribute as a newcomer and having this challenge helped us show the low barriers to entry to Fedora community. I am positive this helped them get a foot in the door to start contributing after the conference. The hack challenge also helped create a lot of buzz around Fedora.

The Fedora community meetup was also another event where we engaged with attendees and other community members. Justin talked about the project and how to get involved. We also had a small release party – and there was cake! Not just our FCAIC, Brian Exelbird but also delicious blue Fedora cake – It was so good, I still want some more 😦

We also managed to sneak in a few hours to work on diversity team tasks since all of us were together after so long. Hopefully, you will get to see some of our work during FLOCK soon. Till then, see our pagure repo or hang out in our IRC/Telegram channel or subscribe to our mailing list to know more about what we do and if you want to get involved. (Btw FLOCK registration is out!)

It wasn’t all just work. We also hung out together in the evenings – had icecream with Bex and got the cake badge instead :P, had awesome sea food in Tirana where we celebrated Justin’s birthday (more cake!) and went around lovely city of Tirana. I even managed to sneak in some shopping :)Albania reminded me so much of India – the culture, the weather, the traffic 😛 and I fell in love with the city. Hopefully, I will be able to come back soon.



Bhagyashree Padalkar | networks for data | 2018-05-25 14:51:23

This past month (of May) has been a whirlwind for me – I have been hopping continents a lot, meeting new people, having new experiences, exploring, learning, growing but mainly (re) evaluating what it means to be me.

I did check off quite a few items off my bucket list like

  • Doing a road trip in US (We didn’t get to go through a drive through – till next time IHOP!) and part of it while it was raining!
  • Have a lot of cakes – cake for breakfast, cake for when you are hungry, cake for getting high (on life, duh!), cakes I don’t like.
  • I went through an all American car wash
  • Had unworldly amounts of salt and sugar dumped into everything I had – it was either too sweet or too salty but completely normal if you are an American – and I survived.
  • Found my new drunk food for NYC – Pastrami and pickles from Katz Deli, it is!
  • Made someone break their <rule?>
  • Got a parking ticket in a zone where you could park (it’s NYC baby!)
  • Got pictures with fearless girl on Wall Street
  • Made punctual people late ( – I give up! -)
  • I was IN UNICEF!! Ahhh, UNICEF!! Ah, met people at UNICEF!!
  • experienced the New York subway (Chicago, I love you more!)
  • Talked with Mel, danced with Toshio and did I mention I was at UNICEF – talking to people at UNICEF – about UNICEF?
  • Saw an Amish family in person and no they didn’t ride a horse cart – also saw Niagra falls!
  • Went to Albania and Open Labs, had Raki and lazy breakfasts – loved it completely!
  • Made a shopping record – 1 skirt for 100 leks – less than a euro! It’s not even that cheap in India.
  • Fell sick – I have to fall sick atleast once on every trip

and added a few more stories to my ‘I-will-tell-this-at-parties’ list

  • I dropped my mobile phone in the toilet as soon as I landed in US! or if this were a party, I would say I did the ‘no phones for a week in a completely new land’ challenge and I came out exactly the same.
  • I got drunk on Coffee toffees (yes, it happened!)
  • Found the best possible comic store with every possible comic – and it didn’t have ‘Heart and Brain’ in stock – whatttt?!!
  • Felt the divide between NYC and NJ – I felt like a slave crossing over
  • Had COSTCO experience (COSTCO is for giants?) and then had Walmart experience (I want to buy everything!)
  • Went to supermarket  5 times in less than 48 hours
  • Was scared by a seagull at an american lake ( Americans are crazy with their dimensions – it’s definitely a sea and not a lake!)
  • Talked for 3 hours straight
  • Realized decause was going to be presenting at conference. I was finally going to meet him. Missed meeting decause him because he couldn’t attend. How does this happen to me – everytime?
  • Had donuts and beer – brewnuts!
  • Had a fear of dogs, Lived with 5  huge dogs out of which a few who constantly barked at me like I was a robber – and survived!
  • Then went on to live with 2 cats who didnt bark (or mew), had automated kitty food and`kitty litter and lived a more comfortable life than me (What have I come to – I am jealous of cats!)
  • Got back from US and on to flight to Albania within 2 days – and worked for those 2 days at Siemens – whaaat? How am I so productive?
  • Realized Albania is like India and traffic is crazier, had major missing home feelings
  • Had tzaziki lays, coconut cookies like home
  • Wore a winter coat in 30 degrees heat – and I felt cold!

and I still have the trip to Malta left!

Bhagyashree Padalkar | networks for data | 2018-05-25 14:02:40

Review Fortnite Scar Tank Top

Besides, there’s a global list right. Last time I checked, I didn’t see any of these popular streamers at the top.

Julia Lima | Thu thm t uy tn | 2018-05-23 16:12:17

Scary Terry Celtics Sweater

Cavs are going to get a lot of home-officiating today. The NBA doesn’t want the series over too soon, and they want Lebron in the Finals. There is going to be a HUGE disparity in fouls (3 to 1, maybe) that are called.

As much as I want Boston to win, I know the chances of that are SLIM.

As a bonus prediction, Lebron gets to the line 14 times. Eehhhh. Everyone said the same thing about game 2…

View On WordPress

Julia Lima | Thu thm t uy tn | 2018-05-20 10:11:31

During this Google Summer of Code, I’m working on FHIR Analytic capabilities using Apache Spark. I’m researching on Bunsen which built on top Apache Spark to provide FHIR Analytic capabilities via a Java and Python API.

Using Bunsen, it currently provides the functionality to load the FHIR Bundles to Spark which allows users to use Spark SQL or underline Java/Python APIs to perform queries on loaded data.

After loading data to Spark using Bunsen, it maps FHIR Resource to Java Object structure using HAPI FHIR library. For example, if Observations loaded to system, user can user Spark SQL in following manner to query data.

spark.sql("""select subject.reference,effectiveDateTime,valueQuantity.value from observations where in_valueset(code, "heart_rate") limit 5 """).show()
| reference|effectiveDateTime| value|
|Patient/9995679| 2006-12-27|54.0000|
|Patient/9995679| 2007-04-18|60.0000|

Bunsen also provide rich Java API to perform FHIR analytics capabilities. Bunsen make FHIR analytics easier by using FHIREncoders. With encoders, user can use JAVA API in following manner to analyze FHIR data.

FhirEncoders encoders = FhirEncoders.forStu3().getOrCreate();

List<Condition> conditionList = // A list of org.hl7.fhir.dstu3.model.Condition objects.

Dataset<Condition> conditions = spark.createDataset(conditionList,

// Query for conditions based on arbitrary Spark SQL expressions
Dataset<Condition> activeConditions = conditions
.where("clinicalStatus == 'active' and verificationStatus == 'confirmed'");

// Count the query results
long activeConditionCount = activeConditions.count();

// Convert the results back into a list of org.hl7.fhir.dstu3.model.Condition objects.
List<Condition> retrievedConditions = activeConditions.collectAsList();

Bunsen also allow users to load data via JSON or XML using spark map functions.

// Created as a static field to avoid creation costs on each invocation.
private static final FhirContext ctx = FhirContext.forDstu3();

// <snip>

FhirEncoders encoders = FhirEncoders.forStu3().getOrCreate();

Dataset<String> conditionJsons = // A Dataset of FHIR conditions in JSON form.

Dataset<Condition> conditions =
(MapFunction<String,Condition>) conditionString -> {
return (Condition) ctx.newJsonParser().parseResource(conditionString);

// Arbitrary queries or further transformations the the conditions Dataset goes here.

Currently I’m researching on integrating Bunsen with Cassandra via loading data from Cassandra database. Datastax provide Cassandra spark connector which allow users to load data directly from Cassandra database to spark models. Following is a sample a JAVA API which provided by the spark Cassandra Datastax driver to Spark structure.

JavaRDD<SampleBean> cassandraRdd = CassandraJavaUtil.javaFunctions(sc)
.cassandraTable("simple_ks", "simple_cf", mapColumnTo(SampleBean.class)).select("value");

I’m researching more on integrating Bunsen to load data from Cassandra. Also according to my research, Bunsen accepts FHIR bundles. But I’m looking for the capability to load data to Spark via Bunsen using FHIR resources it self.

It’s very interesting to learn about these technologies.

Kavindya Prashadi Bandara | Stories by Kavindya Peramune Rallage on Medium | 2018-05-16 12:58:54

Fortnite Nike V Neck Shirt For Ladies

My schedule has been crazy, but I’ve been watching on YouTube since I haven’t been able to make the FB streams. My schedule has been crazy, but I’ve been watching on YouTube since I haven’t been able to make the FB streams. Why do I️ always gotta stand so close to open chest and ammo anyone else have that prob I️ literally have to stand on top of I️t lol I️ have tap to hold on though. I’m gonna…

View On WordPress

Julia Lima | Thu thm t uy tn | 2018-05-14 13:08:51

This post is long overdue, but I have been so busy lately that I didn't have the time to sit down and write it in the past few weeks. What have I been busy with? Let's start with this event, that happened back in March:

Debian Women meeting in Curitiba (March 10th, 2018)

The eight women who attended the meeting gathered together in front of a tv with the Debian Women logo

At MiniDebConf Curitiba last year, few women attended. And, as I mentioned on a previous post, there was not even a single women speaking at MiniDebConf last year.

I didn't want MiniDebConf Curitiba 2018 to be a repeat of last year. Why? In part, because I have involved in other tech communities and I know it doesn't have to be like that (unless, of course, the community insists in being mysoginistic...).

So I came up with the idea of having a meeting for women in Curitiba one month before MiniDebConf. The main goal was to create a good enviroment for women to talk about Debian, whether they had used GNU/Linux before or not, whether they were programmers or not.

Miriam and Kira, two other women from the state of Parana interested in Debian, came along and helped out with planning. We used a collaborative pad to organize the tasks and activities and to create the text for the folder about Debian we had printed (based on Debian's documentation).

For the final version of the folder, it's important to acknowledge the help Luciana gave us, all the way from Minas Gerais. She collaborated with the translations, reviewed the texts and fixed the layout.

A pile with folded Debian Women folders. The writings are in Portuguese and it's possible to see a QR code.

The final odg file, in Portuguese, can be downloaded here: folder_debian_30cm.odg

Very quickly, because we had so little time (we settled on a date and a place a little over one month before the meeting), I created a web page and put it online the only way I could at that moment, using Github Pages.

We used Mate Hackers' instance of to register for the meeting, simply because we had to plan accordingly. This was the address for registration:

Through the Training Center, a Brazilian tech community, we got to Lucio, who works at Pipefy and offered us the space so we could hold the meeting. Thank you, Lucio, Training Center and Pipefy!

Pipefy logo

Because Miriam and I weren't in Curitiba, we had to focus the promotion of this meeting online. Not the ideal when someone wants to be truly inclusive, but we worked with the resources we had. We reached out to TechLadies and invited them - as we did with many other groups.

This was our schedule:


09:00 - Welcome coffee

10:00 - What is Free Software? Copyright, licenses, sharing

10:30 - What is Debian?

12:00 - Lunch Break


14:30 - Internships with Debian - Outreachy and Google Summer of Code

15:00 - Install fest / helping with users issues

16:00 - Editing the Debian wiki to register this meeting

17:30 - Wrap up

Take outs from the meeting:

  • Because we knew more or less how many people would attend, we were able to buy the food accordingly right before the meeting - and ended up spending much less than if we had ordered some kind of catering.

  • Sadly, it would be almost as expensive to print a dozen of folders than it would be to print out hundred of them. So we ended up printing 100 folders (which was expensive enough). The good part is that we would end up handing them out during MiniDebConf Curitiba.

  • We attempted a live stream of the meeting using Jitsi, but I don't think we were very successful, because we didn't have a microphone for the speakers.

  • Most of our public ended up being women who, in fact, already knew and/or used Debian, but weren't actively involved with the community.

  • It was during this meeting that the need for a mailing list in Portuguese for women interested in Debian came up. Because, yes, in a country where English is taught so poorly in the schools, the language can still be a barrier. We also wanted to keep in touch and share information about the Brazilian community and what we are doing. We want next years' DebConf to have a lot of women, specially Brazilian women who are interested and/or who are users and/or contribute to Debian. The request for this mailing list would be put through by Helen during MiniDebConf, using the bug report system. If you can, please support us:

Pictures from the meeting:

The breakfast table with food

Our breakfast table!

Miriam telling the women about Free Software, six women listening

Miriam's talk: What is Free Software? Copyright, licenses, sharing

Renata and Miriam talking about What is Debian a tv among them shows the title of the talk

Miriam and Renata's talk: What is Debian?

Renata talking about internships with Debian

Renata talking about internships with Debian

Thank you to all the women who participated!

The participants with the two men who helped with the meeting.

And to our lovely staff. Thank you, Lucio, for getting us the space and thank you, Pipefy!

This has been partly documented at Debian Wiki (DebianWomen/History) because the very next day after this meeting, Debian Wiki completely blocked ProtonVPN from even accessing the Wiki. Awesome. If anyone is able to, feel free to copy/paste any of this text there.

Renata D'Avila | Renata's blog | 2018-05-13 20:49:00

Fortnite Just Play It Long Sleeve T Shirt

Do the same and let Epic do the work. Holden Mahorney, isn’t that what happens whenever anyone dies.  I ain’t like the rest of these fan boys. I have a lot of wins in every mode. The thing that bothers me most is my bullets not going where my crosshairs are pointing due to the ugly bloom on here. I’m getting to the point where I would rather play COD or D2 or any other shooter for that matter.…

View On WordPress

Julia Lima | Thu thm t uy tn | 2018-05-12 14:27:43

Review Weight Lifting Gym Unicorn T Shirt

Calling out all Tar Heel fans be there be loud be proud! There is more than one great sport at UNC support them all! Go heels….just do you own damn work and take normal classes we can’t afford another scandal right now IJS. Geez I cant remember the last time we got ranked and then won the next game…somethin tells me that streak’s comin to an end Aug. 30 baby!! GO HEELS!!!!! Way to go Heels I seen…

View On WordPress

Julia Lima | Thu thm t uy tn | 2018-05-11 01:53:45

Some Geek Feminism folks will be at the following conferences and conventions in the United States over the next several weeks, in case contributors and readers would like to have some informal get-togethers to reminisce and chat about inheritors of the GF legacy:

If you’re interested, feel free to comment below, and to take on the step of initiating open space/programming/session organizing!

Geek Feminism | Geek Feminism Blog | 2018-05-09 18:25:32

Great Indian Developer Summit is India’s longest running, independent polyglot conference series for the software practitioner. It took place from 24-28th April this year in Banglore.

I attended the conference on 27th April. The track for the day was GIDS.DEVOPS & ARCHITECTURE, aimed at deepeing one’s knowledge on DevOps, Reactive Architecture Patterns, Getting Things Done (GTD), Evolutionary Architecture, Agile Design, Functional Design, Serverless, FaaS, Machine Learning, TensorFlow, TLS, Encryption, Docker DSL, Git, Gradle, Jenkins, Value Driven Development, Pipelines as a Code, Continuous Delivery, Containers, Microservices, and much more.

The day started at 8:20 AM with the welcome note as the main hall swell up with developers. The first session was by Mark Richards on “The Move towards Architectural Modularity”. Following it we had Siddharth Roy and Ashish Atre. I attended the session of Neal Ford on “Stories Every Developer Should Know”, “Serverless? Not so FasA!” by Matt Stine, “Supporting Constant Change” by Neal Ford, “Reactive Architecture Patters – Part 1” by March Richards, “The Architecture of Universal Design: All Devices, All Users” by Scott Davis and “Why Containers Will Take Over the World” by Elton Stoneman.

8:30 – 9:30
“The Move towards Architectural Modularity” – Mark Richards
The drivers of modularity are:
1. Agility
2. Testability
3. Deployability
4. Scalability
5. Avalaibility
Distributed modular architecture has 3 methods.
1. Microservices
2. Service-based
3. Event Driven
Modularity is a must, though not every portiion of producation has to be a microservice. Microservices need collaboration instead of communication and only when there are one or more drivers present should one make use of microservies.

10:45 – 11:45
“Stories Every Developer Should Know” – Neal Ford
One who doesn’t remember history
I am sharing some of the stories that he talked about in the session and the cause of the unfortunate event:
Debugging in production
Too little infrastructure
TOo much infrastructure
Don’t reuse when cleanup needed
Meta work > work

Most of the stories had one common mistake, reusing the code.

11:55 – 12:25
“Serverless? Not so FasA!” – Matt Stine

Lunch and Food

13:50 – 14:50
“Supporting Constant Change” – Neal Ford

15:00 – 16:30
“Reactive Architecture Patters – Part 1” – March Richards

16:10 – 17:10
“The Architecture of Universal Design: All Devices, All Users” – Scott Davis

17:30 – 18:30
“Why Containers Will Take Over the World” – Elton Stoneman

Sonali Gupta | It's About Writing | 2018-05-09 12:19:12