Dinker Charak's Blog, page 7

March 28, 2020

Irreversible Disassembly – Logitech K780 Multi-Device Wireless Keyboard

I bought 2 Logitech K780 around 7-8 months ago. One day, for no apparent reason, they stopped working. They were 5-star while they worked. But now bricked, I thought lets open it up.


This is an irreversible disassembly. You can not put it back, so do not try on a keyboard you want to keep.



The post Irreversible Disassembly – Logitech K780 Multi-Device Wireless Keyboard appeared first on Dinker Charak.

 •  0 comments  •  flag
Share on Twitter
Published on March 28, 2020 14:27

March 11, 2020

Running Windows Programs on Mac OS X Using WineHQ

I wanted to run a Windows machine on my Mac OS X. So obvious choice was using WineHQ. Ideally, it should have been 1/ Download, 2/ Install and 3/ Run. However, it is never that simple, isn’t it!?


Configuration of iMac

macOS Cataline (10.15.1)

iMac (21.5-inch, Late 2102)


Standard Instructions

1. Downloaded WineHQ pkg for MacOS X from https://dl.winehq.org/wine-builds/macosx/download.html


2. It asked to me have the latest XQuartz installed. So I downloaded XQuartz 2.7.7 dmg from https://www.xquartz.org/releases/XQuartz-2.7.7.html. It installed successfully.


3. I tried reinstalling Wine again and it moved ahead this time. I chose 64-bit support (optional) while installing.


4. However, when I ran it from the Applications folder, I for an error that it needs to be updated and lead me to this page: https://support.apple.com/en-us/HT208436


Making WineHQ Work on MacOS Catalina

1. I followed instructions from https://wiki.winehq.org/MacOS/Building and downloaded version 5.3 from https://dl.winehq.org/wine/source/5.x/


$ brew install bison flex mingw-w64 pkgconfig
$ cd wine-5.3
$ ./configure CC="clang" CXX="clang++" CFLAGS="-std=gnu89 -g"
configure: error: Cannot build a 32-bit program, you need to install 32-bit development libraries.

2. I found this link and started following instructions: https://apple.stackexchange.com/questions/373851/how-to-get-wine-working-on-catalina. So I updated the command:


$ ./configure -enable-win64
configure: error: Your bison version is too old. Please install bison version 3.0 or newer.
$ which bison
/usr/bin/bison

3. I wanted to use HomeBrew, so I ran this command from https://brew.sh/.


$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Hom...)"

4. From https://stackoverflow.com/questions/10778905/why-does-my-mac-os-x-10-7-3-have-an-old-version-2-3-of-gnu-bison/30844621#30844621 I realised that Mac has older version and thus upgraded it.


$ brew install bison
$ brew link bison --force

5. I updated ~/vi .bash_profile and added


$ export PATH=/usr/local/Cellar/bison/3.5.3/bin:$PATH

6. Opened a new window which had the path updated


$ which bison
/usr/local/Cellar/bison/3.5.3/bin/bison

7. I ran configure again successfully


$ ./configure -enable-win64
$ make
$ sudo make install

Took a while, but was successful


$ ll /usr/
total 0
lrwxr-xr-x 1 root wheel 25 Nov 6 15:21 X11@ -> ../private/var/select/X11
$ cd /private/var/select/
$ sudo ln -s /opt/X11 .

8. Moment of truth


$ wine64 ../npp.7.bin.x64/notepad++.exe
Segmentation fault: 11

Whaaaaaa ……..


11. Seems like this is a known bug https://bugs.winehq.org/show_bug.cgi?id=48689 and the fix has been provided here: https://source.winehq.org/git/wine.git/blobdiff/76606eaea034c51a73190aac92e75d8b20e82164..35c223850e1bc9e8f97bfaf403bfabca69db3447:/dlls/ntdll/locale.c


12. Edited wine-5.3/dlls/ntdll/locale.c accordingly (though the line numbers did not match), deleted locale.o and restarted


$ ./configure -enable-win64
$ make
$ sudo make install

13. Phew! No Segmentation faults. However, there are more hurdles. After waiting for a while, I got 2 issues.


$ wine64 npp.7.bin.x64/notepad++.exe
0019:err:environ:run_wineboot boot event wait timed out
Wine cannot find the FreeType font library. To enable Wine to
use TrueType fonts please install a version of FreeType greater than
or equal to 2.0.5.
http://www.freetype.org

and via a Mac OS X pop-up:


“notepad++.exe” cannot be opened because the developer cannot be verified.
macOS cannot verify that this app is free from malware.

14. I went to System Preferences and allowed the executable by clicking “Allow Anyway”


Security Issue Running Windows Programs-on-mac-os-x-using-winehq


15. Then I installed FreeType using HomeBrew


brew install freetype

15. Tried again and had to repeat the step-14 multiple times for various DLLs. I had to export another env variable in ~/.bash_profile


export DYLD_FALLBACK_LIBRARY_PATH=/usr/X11/lib:/usr/local/lib:/usr/local/libpng

Finally, NotePad++ worked!


The post Running Windows Programs on Mac OS X Using WineHQ appeared first on Dinker Charak.

 •  0 comments  •  flag
Share on Twitter
Published on March 11, 2020 21:16

December 5, 2019

Digital Transformation: An Easy* Four-Step Tech Driven Strategy

Digital Transformation Strategies often fail to cross the chasm between a CDO/CIO’s Transformational vision and the long tail of ‘Business As Usual’. This can be averted by adopting a pragmatic strategy that connects the vision to ground-level actions.


Digital Transformation fails because the teams that define the strategy and the teams that implement are often disconnected. More than often the teams do not participate in each other’s planning sessions. Almost always, the technologists are expected to hurry to code and start implementing the ask.


This leads to three issues:



Wrong KPI get used to define the usefulness of software and systems developed
What was built does not match the aim of the strategist
This leads to a loss of trust between the business and technology

Crucial Four Steps Towards Digital Transformation

Any organization on an ambitious digital transformation journey need to take these distinct steps:



Identify clear organizational priorities (vision, business goals, etc)
Identify a prioritization approach for ordering business processes that will be transformed
Identify a tech approach for transformation of the legacy, business process by business process
Identify an approach to retire the legacy

Step 1: Identifying Organizational Priorities for Digital Transformation

Any organization on an ambitious digital transformation journey need to identify clear priorities.


These three make sense to me:



Knowing the Client: A Customer 360o is a common approach to accomplish this
Being Client Centricity: For organizations serving individuals, Service Personalization and obsession with Quality are common approaches to accomplish this
Build Systems that Connect: Two approaches are gaining popularity. API based approach to connect to internal-to-internal and internal-to-external systems. Kafka based messaging bus to connect mostly internal-to-internal systems. OpenAPIs are becoming popular across industries.

Step 2: Identifying Prioritization Approach for Ordering Business Processes for Digital Transformation

It is important to identify technical systems that support various businesses and functions that need to be transformed.


Consider these two methods :


Shu-Ha-Ri + Hour-Glass Model for Platform MVP

This approach recommends a Learn – Digress – Transform approach.


In this approach, the transformation teams become part of the system. The team identifies the first ‘strand’ using the hour-glass model for platform MVP, a business process that connects the client, the user interface they use, the backend systems. This ‘strand’ is then transformed, strangulate and then slowly transform the whole.


This method works were:



the org is ready for change, so there won’t be deep resistance to change, and
there are structures that can be isolated and transformed.

Read these posts for more details about ShuHaRi and Hour-Glass Model for Platform MVP.


Inverse Shu-Ha-Ri or Outside-In + Hour-Glass Model for Platform MVP

This approach recommends an inverse of the Learn – Digress – Transform approach.


This is where the innovative system is built outside the system, merged into the legacy to replace an existing system.


In this approach, the transformation teams stay outside the system rather than be part of the system. The team identifies the first ‘strand’ using the hour-glass model for platform MVP, a business process that connects the client, the user interface they use, the backend systems. This ‘strand’ is then merged to strangulate the existing one and so slowly transform the whole.


This method works were:



the org was not ready for change, so there was deep resistance to change, and
there are powerful power centers that would suck the oxygen out of any transformation by using complexities, matrix reporting, and control functions (Legal, Finance, Regulations, etc).

Apple is possibly a more famous example where it did an Inverse Shu-Ha-Ri with Apple II to create Macintosh because the org was so steeped in Apple II culture that it would have sucked Macintosh dry. This was repeated again when the iMac was created.


Read these posts for more details about Inverse Shu Ha Ri – An Alt Approach to Transformation and Hour-Glass Model for Platform MVP.


Step 3: Identifying Tech Approach

These are the common ones that get called out in most programs I have been part of:



Identify systems that support various business processes.
Encapsulate the whole system as a Microservice
Expose the relevant business function as an API based on API specs per TM Forum’s specifications
Use backend connectors (DB change trackers like Golden Gate) to feel data from legacy system to the new modern system over a Kafka like messaging bus
Build new modern UIs on top of the new modern backends
Refactor each Microservice to replace the legacy system to allow all incoming data moving to the new modern backends directly
Use ELK (ElasticSearch, Logstash, Kibana) to monitor systems
Retire old UIs
Repeat for the next system

Step 4: Identify Approach to Retire the Legacy

An ideal approach to retire legacy is to change all interface code to return errors. This will stop systems for feeding or reading from it. But the legacy data and its integrity are retained for any analysis or warehousing to WORM storage.


Attribution

Featured Image is adapted from @RobCottingham image shared under (CC BY-NC 2.0).


The post Digital Transformation: An Easy* Four-Step Tech Driven Strategy appeared first on Dinker Charak.

 •  0 comments  •  flag
Share on Twitter
Published on December 05, 2019 19:34

November 29, 2019

Inverse Shu Ha Ri – An Alt Approach to Transformation

For the past few years, I am working with a banking client to build a transformative Data Platform. It was very clear from the beginning that this platform will take time to build and the new Data Platform and the Legacy Systems will co-exist. As we reach a logical milestone, I look back at the journey till now. As I abstract out the experience, there are two distinct paradigms that emerge. One was a deliberate choice and one an interesting revelation.


Inspired by Martin Fowler’s Strangler Approach: StranglerFigApplication,  we sought out to identify strands of Business Processes that we will onboard tot his platform one by one. Eventually, transforming the entire legacy system.


Paradigm 1: Hour Glass Approach for Prioritization

Hour-Glass Model for Platform MVP


I have discussed this in a previous blog post: Hour-Glass Model for Platform MVP


Paradigm 2: Inverse Shu Ha Ri

Shu Ha Ri is an interesting concept a co-worker (and a friend) introduced to me over a dinner conversation in Shibuya. We had just delivered a Realtime Code Patching technology for NetBSD to a large customer. This was my first product as a tech leader. I was in awe of the senior executive on the customer’s side and how he was transforming the organization. During the conversation with my friend, I wondered being such a senior executive, why didn’t the customer just order the whole organization to move to new systems. My friend explained to me how transformation can not be brought about by force, but step by step. He talked about Shu Ha Ri.


Later I found a blog by Martin Fowler on ShuHaRi. It helped me understand how this can be applied to software development.


Shu-Ha-Ri or Inside-Out

This approach recommends a Learn – Digress – Transform approach.


Adapting this principle to transformation, the transformation teams become part of the legacy system. Then the team identifies the first ‘strand’: a business process that connects the client, the user interface they use, the backend systems. This ‘strand’ is then transformed and the old strand strangulated. Slowly, strand by strand, the whole legacy system is transformed.


(Note: More in my blog Shuhari – Learn – Digress – Transcend.)


This approach works when:



the org is ready for change, so there won’t be deep resistance to change, and
there are systems that can be isolated and transformed.

Inverse Shu-Ha-Ri or Outside-In

This approach, is a way, inverses the Learn – Digress – Transform approach. This is where a transformative strand is built outside the system, merged into the legacy to replace an existing strand and strand by strand, finally transforming the entire system.


In this approach, the transformation teams start outside the system rather than be part of the system. In fact, rather be part of the system (Shu), the teams stay at a distance from the legacy. The team identifies the first ‘strand’: a business process that connects the client, the user interface they use, the backend systems.


ShuHaRi Shu Ha Ri Dinker Charak
Step 1

This strand is developed as independently and as isolated as possible. This allows the development to not be bogged down by legacy systems, legacy designs, out of date controls and policies that do not make sense in the new world. This also acts as a reference system for future strands and the legacy teams. This gives the new system the space to do develop differently. A legacy-bogged-down-system runs the risk of creating something that is just an incremental design, rather than a transformative design.


Step 2

Once completed, this ‘strand’ is then merged to strangulate the existing legacy system. This is when the complexity of legacy systems, of the organizations and various controls will hit the new strand. So merge is not just a technical merge but also a systemic merge. Transformative teams should expect some extra work to comply with organization controls. However, these are now being applied to a fully functional system that can not be choked by the legacy system.


Step 3

Slowly, strand by strand, the whole legacy system is transformed.


This approach works when:



the org is not ready for change, so there is deep resistance to change, and
there are powerful power centers that would suck the oxygen out of any transformation by using systemic complexities, matrix reporting, and control functions (Legal, Finance, Regulations, etc).

Apple is possibly the most famous example where it did an Inverse Shu-Ha-Ri with Apple II to create Macintosh. The org was so steeped in Apple II culture, that it would have sucked Macintosh initiative dry. This was repeated again when the iMac was created.


The post Inverse Shu Ha Ri – An Alt Approach to Transformation appeared first on Dinker Charak.

 •  0 comments  •  flag
Share on Twitter
Published on November 29, 2019 15:07

November 23, 2019

Experiment Canvas: Tool for Articulating & Shaping Product Experiments

Why Experiment Canvas?

An idea is based on a hypothesis that came about based on some research, an opportunity, a threat or a serendipitous moment. However, it is important to validate it step by step. And thus, it is important to craft experiments to validate the assumptions and prove the value. Experiment Canvas is a tool that helps with it.


First, What is an Idea?

The bad thing you can do to an idea is to articulate it as an off-the-cuff one-liner that does not speak the same way to others as to the originator.


The worse thing you can do to an idea is to not mull it over and round it off by considering all the aspects. One-Dimensional analysis of an idea leads to half-baked ideas that can hardly be credentialed.


The worst thing you can do to an idea is to not properly articulate enough so that a third-party who has no context just gets it.


Thus an idea is your thought that can create opportunities & solve problems, has a context behind it and bring value to everyone around it.


An Idea Canvas is a good tool to shape and articulate an idea. You can read this post for more about Idea Canvas aka Idea Board with some examples.


So, What is an Experiment

An experiment is a low-fi (some time non-tech and some times tech) action that can help validate a key hypothesis.


Thus, it allows us to invest iteratively on an idea on its journey to a useful and revenue-generating product.


Introducing The Experiment Canvas

As the Product Management Canvas or the Idea Canvas, the Experiment Canvas is a lean innovation tool.


The Experiment Canvas is a lean innovation tool. It allows you to articulate an experiment, the hypothesis it will test along with success & failure criteria.


Experiment Canvas by Dinker Charak


In Order To

This is to state the hypothesized valuable outcome here. Clarity of the hypothesis being tested is important.


We Will Build

This is to state the experiment.


That Will

This is to state the key capabilities or the key actions that will be done as part of the experiment


And Be a Success If

This is to state the success criteria


Or Fail If

This is to state the failure criteria. Not achieving the success criteria is not necessarily a failure. Many times even the success criteria and failure criteria maybe around two different metrics. Not achieving the failure criteria is however a sign to go back to the drawing boards and start again.


While Keeping in Mind

This is to state the key assumptions and risks here


Your Example

If you have used this version of the Experiment Board to validate your idea, do consider sharing a non-confidential version with me. I will post it here along with attribution. The more we share, the more we learn!



Download Experiment Canvas Hi-Res PDF

Note: Thanks to my colleagues Ruchi Mahajan (@ruchi_mahajan) and Adithya H (@adithyaah) for their feedback and suggestions.


The post Experiment Canvas: Tool for Articulating & Shaping Product Experiments appeared first on Dinker Charak.

 •  0 comments  •  flag
Share on Twitter
Published on November 23, 2019 12:50

November 22, 2019

T-Shirt Designs for the Geek Inside Us

Live Long and Prosper, So Say We All




“Live Long And Prosper, So Say We All”

T Shirt Design: Live Long and Prosper, So Say We All | PDF

(Do acknowledge me and if you feel like, donate @ https://www.paypal.me/ddiinnxx and leave a note)



















The post T-Shirt Designs for the Geek Inside Us appeared first on Dinker Charak.

 •  0 comments  •  flag
Share on Twitter
Published on November 22, 2019 20:13

Home and End Act Like Page Up and Page Down in Chrome

I am using a Logitech K120 keyboard with my iMac 21.5 inch Late 2012 running macOS Catalina (10.15.1). While editing WordPress, I started to notice that the Home and the End button act as Page Up and Page Down buttons. I use WordPress to this blog, ddiinnxx.com.


In order to address this irritant, I used KeyBindings. I did not have this file, so I had to create it. Listing out the steps:


$ cd ~/Library/
$ mkdir KeyBindings
$ cd KeyBindings/
$ vi DefaultKeyBinding.dict

I added the following lines toDefaultKeyBinding.dict


$ cat ~/Library/KeyBindings/DefaultKeyBinding.dict
{
  "\UF729"  = moveToBeginningOfLine:; // Home
  "\UF72B"  = moveToEndOfLine:; // End
  "$\UF729" = moveToBeginningOfLineAndModifySelection:; // Shift+Home
  "$\UF72B" = moveToEndOfLineAndModifySelection:; // Shift+End
}

I had to restart Chrome and it worked fine. How clicking on Home, it takes me to the beginning on the line and clicking on End, it takes me to the end of the line.


Note: I found this article on remapping useful.


 


The post Home and End Act Like Page Up and Page Down in Chrome appeared first on Dinker Charak.

 •  0 comments  •  flag
Share on Twitter
Published on November 22, 2019 12:32

November 18, 2019

Idea Canvas aka Idea Board: Tool for Articulating and Shaping Ideas

Why Idea Board?

With more and more organizations asking employees to contribute product ideas, growth on innovation teams as a separate entity, promotion of experimental thinking, increase in risk appetite and tolerance of failure, there is a need for a tool for communicating ideas well for the above interactions. This is where the Idea Boards or Idea Canvas come in.


So, What is an Idea?

The bad thing you can do to an idea is to articulate it as an off-the-cuff one-liner that does not speak the same way to others as to the originator.


The worse thing you can do to an idea is to not mull it over and round it off by considering all the aspects. One-Dimensional analysis of an idea leads to half-baked ideas that can hardly be credentialed.


The worst thing you can do to an idea is to not properly articulate enough so that a third-party who has no context just gets it.


Thus an idea is your thought that can create opportunities & solve problems, has a context behind it and bring value to everyone around it.


Introducing The Idea Canvas

As the Product Management Canvas, the Idea Canvas is a lean innovation tool. It allows you to develop and describe an idea and to think about it holistically.


Idea Canvas by Dinker Charak


Download: PDF (211 KB) and JPG (131KB)


Idea as a statement

A short crisp statement. Typically, how you first described the idea.


Trends that support the idea

Tech Trend


What trends do you see in the world of tech that support this idea and that its time has come?


Business Trend


What trends do you see in the world of business that support this idea and that its time has come? A new startup, business models, or market opportunities that just opened up?


Social Trend


What trends do you see in the society that support this idea and that its time has come?


Benefits the idea delivers

Benefits to Tech


What benefit will this idea deliver to the world of tech in general? What benefit will it bring to those in your team who work in tech?


Benefits to Business


What benefit will this idea deliver to the world of business in general? A new business model perhaps? What benefit will it bring to your business? How will it increase revenues, reduce cost or remove operational efficiencies?


Benefits to Society 


What benefit will this idea deliver to the world of business in general?


Innovations needed to make the idea feasible

Innovations in Tech


What innovation needs to happen in the world of Tech for this idea to be feasible?


Innovations in Business


What innovation needs to happen in the world of business for this idea to be feasible? A new business plan that needs to be proven?


Innovations in Society


What innovation needs to happen in society for this idea to be feasible? A new business plan that needs to be proven? A new acceptance in society?


Black Mirror possible dark sides

Tech has a dark side and there are unintended consequences. It is important to consider all those aspects too.


Example
Roo Kids App

Roo Kids App was the most successful product of my now-defunct startup Gungroo. This is a sample from those days as an example of how an Idea Board can be used.


Sample Idea Board, Idea Canvas by Dinker Charak using Gungroo Roo Kids App


Your Example

If you have used this version of the Idea Board to articulate and develop your idea, do consider sharing a non-confidential version with me. I will post it here along with attribution. The more we share, the more we learn!



Note: Thanks to my colleagues Ruchi Mahajan (@ruchi_mahajan) and Adithya H (@adithyaah) for their feedback and suggestions.


The post Idea Canvas aka Idea Board: Tool for Articulating and Shaping Ideas appeared first on Dinker Charak.

 •  0 comments  •  flag
Share on Twitter
Published on November 18, 2019 11:53

September 26, 2019

Seasons in India

It is common to say that there are 4 seasons (Spring, Summer, Autumn, and Winter). However such simplification hides the seasonal variety in various geographies.





Focusing on India, what is being taught and what is being experienced does not always match. India does have Monsoon as a distinct season. And Autumn and Winter are actually split across three seasons.





My attempt to present all the seasons aka Ritu in a simple manner that is easy to relate to and recall as the image above.





SpringSummerMonsoonAutumn Late Autumn
Winter Vasanta
वसन्त
বসন্ত
ವಸಂತ
വസന്തം‌
ବସନ୍ତ
பின்பனி
వసంత
વસંત Grīṣma
ग्रीष्म
গ্রীষ্ম
ಗ್ರೀಷ್ಮ
ഗ്രീഷ്മം
ଗ୍ରୀଷ୍ମ
இளவேனில்
గ్రీష్మ
ગ્રીષ્મ Varṣā
वर्षा
বর্ষা
ವರ್ಷ
വര്‍ഷം‌
ବର୍ଷା
முதுவேனில்
వర్ష
વર્ષા Sharad
शरद
শরৎ
ಶರದೃತು
ശരത്‌
ଶରତ
கார்
శరదృతువు
શરદ Hemanta
हेमन्त
হেমন্ত
ಹೇಮಂತ
ഹേമന്തം‌
ହେମନ୍ତ
குளிர்
హేమంత
હેમંત Śiśira
शिशिर
শীত
ಶಿಶಿರ
ശിശിരം‌
ଶୀତ
முன்பனி
శిశిర
શિશિર



Ref: https://en.wikipedia.org/wiki/Ritu_(Indian_season) (yup, Wikipedia!)


The post Seasons in India appeared first on Dinker Charak.


Seasons in India was first posted on September 26, 2019 at 7:11 am.
©2018 "Dinker Charak".
 •  0 comments  •  flag
Share on Twitter
Published on September 26, 2019 00:11

January 19, 2019

Story in a Tweet #12

“Now we’re all over the globe. Ecology is stressed, but we’ll fix that. It’s time to explore globes across the space. United as one Venturians!”





All cheered.





Meanwhile unaware, the farmer worried scab spreading to other apples, poured DDT on their dreams.










#ShortStory “Now we’re all over the globe. Ecology is stressed, but we’ll fix that. It’s time to explore globes across the space. United as one Venturians!”
All cheered.
Meanwhile unaware, the farmer worried scab spreading to other apples, poured DDT on their dreams. #AmWriting

— dinker charak / ddiinnxx.com (@ddiinnxx) January 19, 2019






The post Story in a Tweet #12 appeared first on Dinker Charak.


Story in a Tweet #12 was first posted on January 20, 2019 at 12:52 am.
©2018 "Dinker Charak".
 •  0 comments  •  flag
Share on Twitter
Published on January 19, 2019 16:52