Category Archives: ycombinator

Some basics was known already by Einstein, that drive IT as of today

The idea to this post came on a completely normal tuesday evening and I am reading an old book I found in my book case. The book is a small summary of Einsteins General and Special theory on approximately 150 pages.

This is for sure a book that take some time to read. Not because it’s complicated, oppositely it’s quite simple. But it ´surprise me how much of the mechanisms in universe he describe, that actually is a kind of building stones for the humanitys unique ability to percept, learn and do better. Problems that can take another mamal dozen of generations to learn, by selective inheritance of genome (because weakness is naturally passed out) can be learned overnight by a human.

Okey, thank’s for the anthropology – What’s the IT deal in this?

I want you to read this paragraph in the book. This book is in Swedish, so I will give it word by word in Swedish. Than later amateur-translate it myself to english.

This is just one of many samples in this book, where this particular one is more simple to relate to in everyday events.

In this very moment, I want to emphasize Einsteins focus on that perception of the events lie in how different actors percept the same object. And what differences they recognize. On top of this, the different mechanisms and theories he need to invoke and describe to proof what each actor recognize.

So it came clear for me in parallel to this reading, and the reason to this post: This is exactly what defining and documenting an IT architecture is about. 

Let’s take some similaries. IT architecture

  • is a moving object in it’s space
  • have different actors
  • properties that have different impact based on actors (and the changes in it’s space)

Conclusions from the perspectives that Einstein are keen of

  • You take a viewpoint, for instance Kruchten 4+1 and define useful perspectives for the audience.
  • On the perspectives, you define views. The sample from Einstain define two perspectives, one is the pedestrian. The other is yourself, looking from the train wagon.
  • The views is those who require Einstein become scientific in his answer. Here is also where our competence make most sense.
    • To describe what happen.
    • Why it happen.
    • What objects is related.
    • Why are they related.
    • Is there other processes or views adjacent to this?
    • But not mentioned here, that have impact?
    • ..and so on.

I would not use this post to convince you that Einstein discovered the methodology of Viewpoints. It’s just a populistic way for me to tell you the importance and impact that viewpoints have. IT architecture could actually be seen as an organism, hosted as technology but driven by human. Some mechanisms is simply related to how humanity is hosting earth, and earth is driven by laws of universe,

I also want to to point out how Einsteins mastering the super clear viewpoint – perspective – views methodology all over the book. It has help change the view and understanding of the world building blocks for hundreds of millions of peoples over the world.

Can viewpoints together with such clear views change the understading for hundreds of thousends of IT systems around the world? Of course, yes! and yes again. It’s already doing so by some, for the rest: Let’s study! Once you master the methodology and have experience to define relevant viewpoints, it will be much easier to concentrate on how to provide the best scientific (or exact) fact to the views.

Thanks.

And some links;

Take a help by IASA Globals evolving of Kruchter:

SSA – Views, Viewpoints and Perspectives

Context Describes the relationships, dependencies, and interactions between the system and its environment (the people, systems, and external entities with which it interacts). Many architecture descriptions focus on views that model the system’s internal structures, data elements, interactions, and operation.

Einsteins General and the Gpecial theory:

Relativity: The Special and the General Theory – Wikipedia

It was first published in German in 1916 and later translated into English in 1920. It is divided into 3 parts, the first dealing with special relativity, the second dealing with general relativity and the third dealing with considerations on the universe as a whole.

 

Remember the invaluable software design patterns? It’s debt time

I want you to re-visit a time of my, and perhaps yours, when i was obsessed of Gang of Four, GoF. The super (?) popular collection of design patterns for OOP programmers to follow, when develop solutions and applications.

  • Developer role has evolved
  • Separation of programmers and strategists
  • Using patterns to communicate over principals
  • Identify value by investigate dependencies

GoF was a collection of programming design patterns that could be used to solve many common problems in object oriented software development. So much value they bring to the OOP style development.

In addition to the man hours I spent as a developer to read and learn the patterns, I also spent countless of hours to develop and implement patterns during the years. Like a bible, both in professional and in spare time projects. I was never challenge the importance of the patterns seriously, just followed it slavishly.

A sign not being enough senior. Or perhaps, as I would say today, not being questioned enough. As the programmer, knowing my patterns, I was not questioned what I said or did. Instead. my agitators were at StackExchange. I challenged my implementations and worked close to StackOverflow. Of course I was boiled with razor blades. But I got skilled, learned my lessons.

But the patterns were still bible, even on StackOverflow.

Within time I learned to look back to what I really did and also how I did it. Increased the holistic view and a whole thinking perspective. What did those patterns really mean? And I am still not sure why this view happened to me. Has the role of programmer evolved lately, where it’s more expected by the role to demonstrate the value of the code to strategists? and business? Sometimes the roles are (and should, depending on the organization and assignment) be mixed. Mixed as in strategist and developer is the same resource (for instance in a very high skilled expert resource. While this separate topic might be interesting, we re-connect focus to the patterns.

OOP Design patterns back at the time

Patterns was back at the times quite easy to demonstrate, because problem was solved with one or few tools and frameworks. For instance JDK/JRE or .Net C#. Collections as GoF cover most scenarios, so not follow one pattern was strange. But the missing important question to the patterns was: how the pattern was implemented. Not much questionaries’ or analysis methods to confirm that the development was valuable. Back at the times, I didn’t need to provide proof that the implementation will be measured in value. For sure, I would be questioned in terms of SOLID or even OOP, and boiled or blamed for every mistake. But I would for certain not be questioned how I can ensure business not losing money when CTO requested a new integration.

That was the good thing for me, bad thing for business. You know already why that was bad for everyone? Including the customers? Because it would for sure create a Business (or sales) vs IT (technology) culture.

For a strategist, the segregation and understanding of dependency between the value that objects hold or enable, is way more important. Not to mention the value that might be loss in one part of the system, if another part will be in trouble. I will demonstrate below. Let say I back at the time (programmer following design patterns) wanted to describe for CTO a pattern I built and how good it is, so I created models, because it obviously hard to traverse through code, classes, namespaces and technologies.

With this model, it looks all clean and good. But the 10-point question is: how does it stand if it’s described in value to the business? Sometime later, the CTO or business may ask to move a new logic in addition to this nicely described adapter pattern. Or may ask what amount of money we lose if XmlAdapter inexpertly stop work.

Impact in terms of (any measurable) value

By look into the model, it’s easy to trace the impact by disconnect a component. The XmlAdapter seem to be just to cut off. Assuming that the model is true, that this assumption will probably cause big problem. One might ask what means with ”Value”. The context is probably changeable over trends and times. The value might be monetary, number of deployments required, or components impacted.

In current generation of development of technology, it’s a losing concept to just throw a design pattern over the table and then implement it. A change need traceability, explanation from relevant views and be intentional. Documenting, structuring, adding traceability and communicate to stakeholders, confirming and have signoff might take more time then the actual development. But that’s the point. The result will be systems that are understood by audience, stable (or known reasons to not be stable) operational conditions and development, change and release that have a process.

How can a CTO plan for emerging trends or match the business rapidly changes, if the CTO don’t know the technology significance, between planning and deployment? Shouldn’t CTO know where the changes require re-factoring of half the codebase or just a minor?

How do we ask correct questions for this? and who care about the value? Simple answer: Make sure that there is a strategist role in the project, company or department. A quite simple way to challenge the valuation in the earlier sample, starting in a company from zero, could be like this from CTO:

“We want to introduce a manufacturer that produce nano sensors. It will for sure require a new adapter, but should behave exactly the same against TheDataHub. The difference I think of, is to make sure that hardware identification have space for 256 characters. See sample model”

We can also see the level of understanding from the CTO, which is really important. And that the CTO think he or she have an idea about what need to be done. According to the pattern we followed in an earlier model, a dummy-adoptee should be able to implement with a kick. Right? The tricky part should be to attach the functionality of connecting nano sensors, preferrably done in a separate space attached to the adapter.

“Cool, just relax – i code it and return to you when it’s done!”

The true developer (looking to myself back in time), would stick with this comment and start develop. I tell my CTO that he can relax while I realize the model with the new adoptee for nano sensors. So now the time for truth has come. Will it be so easy? In flexibility to technology changes to the business, do you think the CTO does float in the land of unawareness? On his hands there is most likely some external expectations from a manufacturer, that also might have development to do, to meet the CTO’s expectations.

Let us jump back to the view of developer. We must today be able to questionate models and code implementation in more ways. It’s simply not enough to just be provided a simple view. Once we are provided several (relevant for the situation) views, the strategist can ensure that the change or new capability get the correct attention and or resources.

Assume that the following model was more close to the actual implementation of the famous pattern? Which is a completely possible truth scenario:

An experienced developer can quickly see that the CTO or a architect, have some problem if a new emerging technology would be implemented here.

The strategist would have need to ask for some views that are not completely code related. For instance;

  • How would authentications touch the components.
  • What infrastructure objects exists? and their relations (for instance Database on a separate server?)
  • How do backoffice/admin connect to the components?
  • How many kind of readable objects
  • Each objects frequency is it, currently?
  • How does the frequency and degree of numbers of objects relate to and between the adapters?

… and so on. The pattern here is questions that may have significance on the design.

It does not say “we don’t trust developers”, it’s more like say “there is a nurse between the client and the doctor”

Value in adding an strategist

In this fictive example, it’s clear that we have a responsibility to support the way the application is meant to provide service to the users. Not clear is that we should leave all that responsibility in hands of a developer, with nothing more between CTO and developer. It does not say “we don’t trust developers”, it’s more like say “there is a nurse between the client and the doctor”. With very good reason. The view and concern is different. Also the tasks. Is simply not fair to place all responsibility in hands of the developer (or require the CTO to have very developer focused skills).

Let’s take some of those example questions to the model above, not much is answered. Right? We just see that the implementation really is an adapter pattern. Points earned there. But it’s more a adapter style, rather than a pattern. This pattern implementation will for sure cost a lot to separate into modules.

We can quickly see some required improvements, but that’s not the point. We already see that the lack of clear abstraction between datalayer and adapters require a very ill smell to stability and deployment, just to increase the length of the string column object name identifier. Also that the authentication is really in shadows.

Having a strategist, for instance an architect, architect alike CTO or analyst that know to ask the right questions to provide a bridge between strategic need and technical requirement, can really save or increase the room for improvements you have in the roadmap.

The days where the heavy / senior developer can do everything must be passed to history. That’s not to, as already emphasized, question the skills or understanding for the role, more because the concerns are different. The skilled heavy developer resources can deliver both strategy and code, but be aware that they provide value within different principals — and make a way to be clear about it. If not, this resource (you?) might consider if it’s really a developer, or really a strategist and continue with one of them, as the homezone.

/Jonas

Jonas Nordin | Professional Profile | LinkedIn

View Jonas Nordin’s professional profile on LinkedIn. LinkedIn is the world’s largest business network, helping professionals like Jonas Nordin discover inside connections to recommended job candidates, industry experts, and business partners.

 

Read a recent page that list about the GoF patterns hers:

The 23 Gang of Four Design Patterns .. Revisited

Technical musings on Win8, mobile (iOS / android / WP7) and WCF The Gang of Four (GoF)(from Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Professional Computing Series, by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides). These 23 GoF patterns are generally considered the foundation for all other patterns.

Is this how Russian through IT promote Trump to non-US citizen

Russian hackers appear to think out of the box, when provide and distribute messages to inter-wide public.

Webpage statistics

It’s quite worrying to read about the modern time attempts to fabricate, misleading information and news. It’s also worrying to see that organizations or hackers try to use weak spots in the TCP and UDP protocol to provide messages to the world, not only to trick resources that consume it but also to its design. The provided screenshot above is taken from two different web pages and we can see completely unnormal activities here. For this particular presence, there is a language-type header provided in the TCP used by client and server to determine for instance web language capacity and preferrables. Short version. As a side note to the article, i have no fact to proof russia as a source, just that they shows up to be. An interesting situation when talk about false inforlation. So lets continue from that stand point.

This header is fully possible to amend and do stuff with, with just a normal development knowledge. It’s not even considered “hacking” to amend those fields to whatever . What we see here is new kind of grep in a information war. Hey, these headers are there to be used for customization, to make webpages and clients customizable to fit the style that the clients want. And for server to load and balance the correct resources.

But unfornately it can also be used as an alternative way to spread and provide propaganda or other kind of information. It’s kind of stright forward since long time a (by hackers, mostly) useful channel to spread information “under the radar”. During the years, several weakness has ben exploited in servers and clients by malformatting those headers and how they looks like. And also fixed with hundreds of patches in all kind of layers and applications. The issues exist and are fully possible because computer systems traditionally are built upon “keeping good sense is win win”, so owners and developers does develop up to application stability. Security has often ben the black sheep associated with uneccessary high cost because of: “do we need it to work? Does it work anyway?” No, yes..

Last years, we come to see that the reduce in cost did not dissappear. It was just moved forward in time and classified as “security threath” instead of being included in development sprints from beginning. If any good out of it, is that we now have new IT professional titles such as “Security architect” “Security specialist” and so on. Those have now a job for a life time.

To be honest. More annoying then worrying is that the worlds most used communication method is so depending, on transport level, on just two transfer protocols. (I put a BUT on this comment, to a later posting). Both of them relying so hard on the sending- and receiving application for their security. I want to mention the link and hardware layer, but that chapter will dig us into a black mall of mud open for exploits and to spread desinformation.

What do you think we should do in nearest future? SSL, two way factor encryption is just a way to hide information from the wires and waves. If its too efficient, we will start to worry about other war related challenges. But the core of the issue is most close to a solution; The information that can be sent, is constructed in application level developed by programmers. It’s received by applications developed by programmers. Programmers can be hirest, have their own agendas or other purpose that does not follow the purpose with their work. Employees that knowingly leak information to foreign purposes. Software security is hardly of help here. Applications can be patched. Rely less on the TCP data provided in the headers, have better mechanisms on how information is transferred to reduce the risk of being hacked. In this Machine Learning, Deep Learning and AI algorithm days, we also need to take much more care about how much descriptive meta data applications do provide. Also – how much descriptive meta data key positions within infrastructure and application owner and administrator level can leak. Accidantely or deliberately.

I see a year 2017 where most developers will stand in front of the questions:

  • How do you secure your code?
  • What is security for you?
  • What does the word “responsibility” mean to you, when you produce safe code?
    • not in terms of memory leak or machine safe: Means information safe
  • Have the system you worked in ben hacked?
  • Have you cleaned up or traced activities from a hack attempt?

Im also almost 100% sure that we soon see insurance firms add additional services for costs that can be related to security threats. Both private, companys or whatever kind of customers.

The florist steals your data

I planned to steal information based on possibilities on my current flower care program and personal interest to earn money and give the rich world side effects of greed. Yeah – plant flowers. Not really my home genre but why would it be important. You would be surprised how less people care about flowers in the office. Let’s concentrate on two very interesting customers of mine. Five visits a year on this traditional big bank, let’s call it Sach. Three visits a year on another new coming popular Internet based bank, lets call it Prls. How hard can it be. Luckily nobody recognize that I work for both of them, even but the agreement is in the third year now.

This third year was about to be special. After this year in total eight visits, I have added a dousin of sensors in different areas of the offices that I care. They together collect approximately 1GB of data per 24h. Already in mid of second year agreement, I proposed a replanting of flowers next year. More specific, the 2nd visit at the large bank Sach and 1st visit at the Internet bank Prls.

In parallell I already tried a personal study of the planting. I had a year to find out that the flowers will survive. When the time for replanting occur at the customer, I have full responsibility over everything from bring flowers to- and from the office and including the potting soil to use. Nobody watching me and could care less of how I do my work. So except planting, I did also add  two water-resistence battery bays and a wireless hotspot in the pots. Special manufactured hardware and sotware for this purpose, that broadcast on a hidden network on another range. From the batteries I pulled thin wires inside the thicker stems of the bigger flower, pluggable cords inserted from one of the lower branches. The smaller flowers can’t use the wires but can collect sound and movements.

Next visit after the replanting, nurture and prune the flowers, I not only do this. I also verify connectivity and read the so far collected data into my smart phone, during the time i spent on each plant. I also punch a microcamera into the plug spare below the bottom bransch. Just 3 millimeter in size but with quality just as good as I can do face and basic image recognizition. Even smaller sound recorders in all flowers and not least, sensors that register possible movements. Next visit I will be able to transfer approx 100GB of data per flower, that will be stored since my last visit. A success transfer will take about 15 minutes and automatically clean the memory card once done. I walk on to next big flower. The smaller flowers does collect sound but also information about other networks in the office.

After each visit, I sell the data unstructered on dark web on auction. The buyers get exclusive rights (Well they can of course steal it if they want, but we trust each other) to re-distribute as long as they return to me with useful information they extract. The pay is mostly BitCoin and unfornately I know almost 100% black market and worser. In turn I use the money to pay intelligent developers create nice techniques and software algorithms for me. Why would I have moral panic for providing information from organizations that more or less steal money from tax paying people, instead of show a truly interest to reinvest them on a better world. As soon as more legal money is reinvested to the people and a better world, I will stop steal and distribute the information. Last time something really useful happened, was when some gigabyte of mail server information was exploiting some tax-free accounts and related rubbish coooperation.

What they do with the data? I can imagine. Myself is running automated pattern analysis so I identify for instance faces visiting pattern. I know for instance how many cup of coffees or visiting time in a particular toilet customers have. Funny enough the algorithm find that a higher percentiles of visiting time is incredibly higher at about 15 o clock until office close on afternoon, then the rest of working day. Algorithms do also set placeholders on media where there are more then one voice involved, but just one a time talking – appear as a chatting. Again, the coffee machine bring many discussions and facts.

Looking back

It begun back at 2013 when i was unemployed, i met a guy at a bar. I was alone at a round table with space for four in a rounded shaped red leather sofa. In front of me, except some other tables and the bar, I had a book with the title “10 paradoxes in human behaviors” on top of another book with a very basic title “Computer Science” on the table. At that very moment I also had a boring Pang IPA beer on my table. For me, nothing was unusual with this except that time I met this guy.

He asked to sit with me for a while, having some questions around my choice of books. Later he asked me about my daily life, and then tell me a little about his. I lie a lot to him, described my work as a buyer on a book store nearby. I read a lot of books and have an idea about what people need to hear for me to be trustworthy. This way we started to know each other and he proposed me a job as a florist, to work at offices to take care of their flowers.
__
A maked up story by Dundee