[{"data":1,"prerenderedAt":7615},["ShallowReactive",2],{"navigation":3,"blog-page":286,"blogs":296},[4],{"title":5,"path":6,"stem":7,"children":8,"page":285},"Blog","\u002Fblog","blog",[9,13,17,21,25,29,33,37,41,45,49,53,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281],{"title":10,"path":11,"stem":12},"2020 - The best Javascript Frameworks","\u002Fblog\u002F2020-the-best-javascript-frameworks","blog\u002F2020 - The best Javascript Frameworks",{"title":14,"path":15,"stem":16},"5 Essential Reasons for E2E Testing","\u002Fblog\u002F5-essential-reasons-for-e2e-testing","blog\u002F5 Essential Reasons for E2E Testing",{"title":18,"path":19,"stem":20},"5 Mistakes Front-end Developers should Avoid","\u002Fblog\u002F5-mistakes-front-end-developers-should-avoid","blog\u002F5 Mistakes Front-end Developers should Avoid",{"title":22,"path":23,"stem":24},"5 Things to motivate you to perform Unit Testing","\u002Fblog\u002F5-things-to-motivate-you-to-perform-unit-testing","blog\u002F5 Things to motivate you to perform Unit Testing",{"title":26,"path":27,"stem":28},"52 Articles, 7 Books and a Pandemic","\u002Fblog\u002F52-articles-7-books-and-a-pandemic","blog\u002F52 Articles, 7 Books and a Pandemic",{"title":30,"path":31,"stem":32},"6 Levels of Autonomous Vehicles","\u002Fblog\u002F6-levels-of-autonomous-vehicles","blog\u002F6 Levels of Autonomous Vehicles",{"title":34,"path":35,"stem":36},"ADAS","\u002Fblog\u002Fadas","blog\u002FADAS",{"title":38,"path":39,"stem":40},"Ambient Intelligence","\u002Fblog\u002Fambient-intelligence","blog\u002FAmbient Intelligence",{"title":42,"path":43,"stem":44},"Best 5 Hybrid Mobile App Development Frameworks","\u002Fblog\u002Fbest-5-hybrid-mobile-app-development-frameworks","blog\u002FBest 5 Hybrid Mobile App Development Frameworks",{"title":46,"path":47,"stem":48},"Best Practices for Code Testing","\u002Fblog\u002Fbest-practices-for-code-testing","blog\u002FBest Practices for Code Testing",{"title":50,"path":51,"stem":52},"Blockchains - How and Why?","\u002Fblog\u002Fblockchains-how-and-why","blog\u002FBlockchains - How and Why",{"title":54,"path":55,"stem":56},"Brain Computer Interfaces","\u002Fblog\u002Fbrain-computer-interfaces","blog\u002FBrain Computer Interfaces",{"title":58,"path":59,"stem":60},"Computational Fluid Dynamics","\u002Fblog\u002Fcomputational-fluid-dynamics","blog\u002FComputational Fluid Dynamics",{"title":62,"path":63,"stem":64},"Computer Vision","\u002Fblog\u002Fcomputer-vision","blog\u002FComputer Vision",{"title":66,"path":67,"stem":68},"Cryptography","\u002Fblog\u002Fcryptography","blog\u002FCryptography",{"title":70,"path":71,"stem":72},"Cyber-Physical Systems: Where Digital Meets Reality","\u002Fblog\u002Fcyber-physical-systems","blog\u002FCyber-Physical Systems",{"title":74,"path":75,"stem":76},"Design Patterns - Why and How?","\u002Fblog\u002Fdesign-patterns-why-and-how","blog\u002FDesign Patterns - Why and How",{"title":78,"path":79,"stem":80},"Edge AI: Revolutionizing Intelligence at the Edge","\u002Fblog\u002Fedge-ai","blog\u002FEdge AI",{"title":82,"path":83,"stem":84},"Edge Computing","\u002Fblog\u002Fedge-computing","blog\u002FEdge Computing",{"title":86,"path":87,"stem":88},"Embracing Decentralized Development","\u002Fblog\u002Fembracing-decentralized-development","blog\u002FEmbracing Decentralized Development",{"title":90,"path":91,"stem":92},"Extended Reality Simplified","\u002Fblog\u002Fextended-reality-simplified","blog\u002FExtended Reality Simplified",{"title":94,"path":95,"stem":96},"Good practices for Git","\u002Fblog\u002Fgood-practices-for-git","blog\u002FGood practices for Git",{"title":98,"path":99,"stem":100},"How do browsers work","\u002Fblog\u002Fhow-do-browsers-work","blog\u002FHow do browsers work",{"title":102,"path":103,"stem":104},"How to be a Full Stack Engineer","\u002Fblog\u002Fhow-to-be-a-full-stack-engineer","blog\u002FHow to be a Full Stack Engineer",{"title":106,"path":107,"stem":108},"How to be an effective Engineer?","\u002Fblog\u002Fhow-to-be-an-effective-engineer","blog\u002FHow to be an effective Engineer",{"title":110,"path":111,"stem":112},"How to choose components for a desktop PC on your own","\u002Fblog\u002Fhow-to-choose-components-for-a-desktop-pc-on-your-own","blog\u002FHow to choose components for a desktop PC on your own",{"title":114,"path":115,"stem":116},"Industry 4.0","\u002Fblog\u002Findustry-4","blog\u002FIndustry 4",{"title":118,"path":119,"stem":120},"Industry 4.0 & Mixed Reality","\u002Fblog\u002Findustry-4-and-mixed-reality","blog\u002FIndustry 4 & Mixed Reality",{"title":122,"path":123,"stem":124},"Internet of Behaviours","\u002Fblog\u002Finternet-of-behaviours","blog\u002FInternet of Behaviours",{"title":126,"path":127,"stem":128},"Internet of Things","\u002Fblog\u002Finternet-of-things","blog\u002FInternet of Things",{"title":130,"path":131,"stem":132},"Let's talk about SOLID Principles","\u002Fblog\u002Flets-talk-about-solid-principles","blog\u002FLets talk about SOLID Principles",{"title":134,"path":135,"stem":136},"LiDAR","\u002Fblog\u002Flidar","blog\u002FLiDAR",{"title":138,"path":139,"stem":140},"Machine Vision -Transforming Industries AI","\u002Fblog\u002Fmachine-vision-transforming-industries-ai","blog\u002FMachine Vision -Transforming Industries AI",{"title":142,"path":143,"stem":144},"Mathematics in Software Engineering","\u002Fblog\u002Fmathematics-in-software-engineering","blog\u002FMathematics in Software Engineering",{"title":146,"path":147,"stem":148},"Micro Frontends - A Modern Approach to Front-End Development","\u002Fblog\u002Fmicro-frontends-a-modern-approach-to-front-end-development","blog\u002FMicro Frontends - A Modern Approach to Front-End Development",{"title":150,"path":151,"stem":152},"Natural Language Processing","\u002Fblog\u002Fnatural-language-processing","blog\u002FNatural Language Processing",{"title":154,"path":155,"stem":156},"Optimizing for Search Engines","\u002Fblog\u002Foptimizing-for-search-engines","blog\u002FOptimizing for Search Engines",{"title":158,"path":159,"stem":160},"Physics Engine","\u002Fblog\u002Fphysics-engine","blog\u002FPhysics Engine",{"title":162,"path":163,"stem":164},"Point cloud","\u002Fblog\u002Fpoint-cloud","blog\u002FPoint cloud",{"title":166,"path":167,"stem":168},"Processes for Better Software Volume 1","\u002Fblog\u002Fprocesses-for-better-software-volume-1","blog\u002FProcesses for Better Software Volume 1",{"title":170,"path":171,"stem":172},"Processes for Better Software Volume 2","\u002Fblog\u002Fprocesses-for-better-software-volume-2","blog\u002FProcesses for Better Software Volume 2",{"title":174,"path":175,"stem":176},"Processes for Better Software Volume 3","\u002Fblog\u002Fprocesses-for-better-software-volume-3","blog\u002FProcesses for Better Software Volume 3",{"title":178,"path":179,"stem":180},"Quantum Computers","\u002Fblog\u002Fquantum-computers","blog\u002FQuantum Computers",{"title":182,"path":183,"stem":184},"Quantum Computing and its Potential Impact on Software Development","\u002Fblog\u002Fquantum-computing-and-its-potential-impact-on-software-development","blog\u002FQuantum Computing and its Potential Impact on Software Development",{"title":186,"path":187,"stem":188},"Quantum Cryptography","\u002Fblog\u002Fquantum-cryptography","blog\u002FQuantum Cryptography",{"title":190,"path":191,"stem":192},"Ray tracing - What you need to know","\u002Fblog\u002Fray-tracing-what-you-need-to-know","blog\u002FRay tracing - What you need to know",{"title":194,"path":195,"stem":196},"Reflections on how we code","\u002Fblog\u002Freflections-on-how-we-code","blog\u002FReflections on how we code",{"title":198,"path":199,"stem":200},"Robotic Process Automation","\u002Fblog\u002Frobotic-process-automation","blog\u002FRobotic Process Automation",{"title":202,"path":203,"stem":204},"Self Driving Cars - A Better Tomorrow","\u002Fblog\u002Fself-driving-cars-a-better-tomorrow","blog\u002FSelf Driving Cars - A Better Tomorrow",{"title":206,"path":207,"stem":208},"Semantic Web - A Smarter Future","\u002Fblog\u002Fsemantic-web-a-smarter-future","blog\u002FSemantic Web A Smarter Future",{"title":210,"path":211,"stem":212},"Sensor Fusion","\u002Fblog\u002Fsensor-fusion","blog\u002FSensor Fusion",{"title":214,"path":215,"stem":216},"Serverless Computing and the Future","\u002Fblog\u002Fserverless-computing-and-the-future","blog\u002FServerless Computing and the Future",{"title":218,"path":219,"stem":220},"Shaders","\u002Fblog\u002Fshaders","blog\u002FShaders",{"title":222,"path":223,"stem":224},"Smart Home Automation","\u002Fblog\u002Fsmart-home-automation","blog\u002FSmart Home Automation",{"title":226,"path":227,"stem":228},"The Horizon of Cybersecurity","\u002Fblog\u002Fthe-horizon-of-cybersecurity","blog\u002FThe Horizon of Cybersecurity",{"title":230,"path":231,"stem":232},"The Perils of Ray-Tracing","\u002Fblog\u002Fthe-perils-of-ray-tracing","blog\u002FThe Perils of Ray-Tracing",{"title":234,"path":235,"stem":236},"The Psychology of Software Bugs Understanding and Preventing Common Mistakes","\u002Fblog\u002Fthe-psychology-of-software-bugs-understanding-and-preventing-common-mistakes","blog\u002FThe Psychology of Software Bugs - Understanding and Preventing Common Mistakes",{"title":238,"path":239,"stem":240},"Top 5 Advantages of MongoDB","\u002Fblog\u002Ftop-5-advantages-of-mongodb","blog\u002FTop 5 Advantages of MongoDB",{"title":242,"path":243,"stem":244},"Top Trends in Augmented Reality","\u002Fblog\u002Ftop-trends-in-augmented-reality","blog\u002FTop Trends in Augmented Reality",{"title":246,"path":247,"stem":248},"Top features of Unreal Engine","\u002Fblog\u002Ftop-features-of-unreal-engine","blog\u002FTop features of Unreal Engine",{"title":250,"path":251,"stem":252},"Unity 3D - Why to go with it?","\u002Fblog\u002Funity-3d-why-to-go-with-it","blog\u002FUnity 3D - Why to go with it",{"title":254,"path":255,"stem":256},"Virtual Reality Advantages","\u002Fblog\u002Fvirtual-reality-advantages","blog\u002FVirtual Reality Advantages",{"title":258,"path":259,"stem":260},"Virtual Test Drive & Autonomous Driving","\u002Fblog\u002Fvirtual-test-drive-and-autonomous-driving","blog\u002FVirtual Test Drive & Autonomous Driving",{"title":262,"path":263,"stem":264},"WebAssembly and Progressive Web Apps","\u002Fblog\u002Fwebassembly-and-progressive-web-apps","blog\u002FWebAssembly and Progressive Web Apps",{"title":266,"path":267,"stem":268},"What are Best Practices?","\u002Fblog\u002Fwhat-are-best-practices","blog\u002FWhat are Best Practices",{"title":270,"path":271,"stem":272},"What are Digital Twins?","\u002Fblog\u002Fwhat-are-digital-twins","blog\u002FWhat are Digital Twins",{"title":274,"path":275,"stem":276},"What makes Mixed Reality the next big thing?","\u002Fblog\u002Fwhat-makes-mixed-reality-the-next-big-thing","blog\u002FWhat makes Mixed Reality the next big thing",{"title":278,"path":279,"stem":280},"Why Game Engines?","\u002Fblog\u002Fwhy-game-engines","blog\u002FWhy Game Engines",{"title":282,"path":283,"stem":284},"Why we need User Experience Design?","\u002Fblog\u002Fwhy-we-need-user-experience-design","blog\u002FWhy we need User Experience Design",false,{"id":287,"title":288,"body":289,"description":290,"extension":291,"links":289,"meta":292,"navigation":293,"path":6,"seo":294,"stem":7,"__hash__":295},"pages\u002Fblog.yml","Latest Articles",null,"Thoughts on software engineering, user experience, emerging technologies, and the craft of building useful systems.","yml",{},true,{"title":288,"description":290},"e5MYnulSUyAPgxJTzjwAMtu6RReE2ATNcrCFhhpAqJM",[297,376,468,543,616,691,863,972,1055,1210,1310,1421,1555,1717,1867,2009,2135,2308,2455,2535,2642,2776,2872,2960,3029,3100,3194,3261,3357,3450,3580,3661,3730,3802,3871,3971,4034,4111,4198,4490,4601,4677,4772,4882,5004,5138,5233,5334,5426,5518,5612,5681,5774,5959,6015,6114,6205,6395,6478,6581,6770,6865,6972,7061,7155,7277,7371,7466,7528],{"id":298,"title":78,"author":299,"body":303,"date":369,"description":370,"extension":371,"image":372,"meta":373,"minRead":359,"navigation":293,"path":79,"seo":374,"stem":80,"__hash__":375},"blog\u002Fblog\u002FEdge AI.md",{"name":300,"avatar":301},"Aghil Jose",{"src":302,"alt":300},"\u002Fassets\u002Fimages\u002Fabout.jpg",{"type":304,"value":305,"toc":357},"minimark",[306,310,313,318,321,325,328,332,335,339,342,346,349,354],[307,308,309],"p",{},"Ever wondered about the technology that's bringing intelligence closer to the action, where decisions need to be lightning-fast? Let's talk about Edge AI – an innovation that's shaping the future of computing right where the action is.",[307,311,312],{},"So, what is Edge AI? Picture this, we're all familiar with Artificial Intelligence (AI), right? Now, imagine AI algorithms and computations running not in a distant cloud server but right where data is generated – at the edge of the network. That's Edge AI. It's about pushing the processing power of AI to local devices, enabling them to make quick decisions without relying on a distant data center.",[314,315,317],"h2",{"id":316},"_1-the-advantage","1. The Advantage",[307,319,320],{},"Think about your smart home devices or autonomous vehicles. Edge AI makes them smarter and faster. By processing data on the device itself, it significantly reduces latency. That means instant responses without waiting for data to travel back and forth to the cloud.",[314,322,324],{"id":323},"_2-applications-and-real-world-scenarios","2. Applications and Real-World Scenarios",[307,326,327],{},"Let's dive into where you might find Edge AI making a real impact. Think of surveillance cameras detecting threats in real time, healthcare devices monitoring vital signs or even predictive maintenance in manufacturing. It is about making critical decisions locally, in real time.",[314,329,331],{"id":330},"_3-challenges-and-considerations","3. Challenges and Considerations",[307,333,334],{},"Of course, every technology has its challenges. Privacy and security come to the forefront when processing sensitive data on local devices. Also, the computational limitations of these devices require optimization of AI algorithms for efficient processing.",[314,336,338],{"id":337},"_4-technology-behind-edge-ai","4. Technology Behind Edge AI",[307,340,341],{},"Behind the scenes, there’s a fusion of various technologies at play – from specialized hardware like GPUs and TPUs to sophisticated algorithms tailored for edge computing. These technologies work hand in hand to make Edge AI a reality.",[314,343,345],{"id":344},"_5-future-prospects","5. Future Prospects",[307,347,348],{},"Looking ahead, the future of Edge AI seems promising. As more devices become interconnected in the Internet of Things (IoT), Edge AI will continue to evolve, enabling smarter, more efficient and secure systems.",[350,351,353],"h3",{"id":352},"edge-ai-is-changing-the-game-by-decentralizing-intelligence-and-putting-powerful-decision-making-capabilities-in-the-palm-of-our-hands-its-about-transforming-devices-into-smart-responsive-entities-that-adapt-to-our-needs-seamlessly","Edge AI is changing the game by decentralizing intelligence and putting powerful decision-making capabilities in the palm of our hands. It’s about transforming devices into smart, responsive entities that adapt to our needs seamlessly.",[307,355,356],{},"Disclaimer : The views and opinions expressed in the article belong solely to the author and not necessarily to the author's employer, organisation, committee or other group or individual.",{"title":358,"searchDepth":359,"depth":359,"links":360},"",2,[361,362,363,364,365],{"id":316,"depth":359,"text":317},{"id":323,"depth":359,"text":324},{"id":330,"depth":359,"text":331},{"id":337,"depth":359,"text":338},{"id":344,"depth":359,"text":345,"children":366},[367],{"id":352,"depth":368,"text":353},3,"2023-12-03","An article exploring Edge AI and how it brings powerful decision-making capabilities closer to data sources.","md","\u002Fassets\u002Fimages\u002Fblog\u002F031223\u002Ftitle.jpg",{},{"title":78,"description":370},"9kY9B2FnWvFyLyJbWuDx7ktKI4TgHiCyvgoDSRZUvu8",{"id":377,"title":226,"author":378,"body":380,"date":462,"description":463,"extension":371,"image":464,"meta":465,"minRead":359,"navigation":293,"path":227,"seo":466,"stem":228,"__hash__":467},"blog\u002Fblog\u002FThe Horizon of Cybersecurity.md",{"name":300,"avatar":379},{"src":302,"alt":300},{"type":304,"value":381,"toc":450},[382,385,388,392,395,399,402,406,409,413,416,420,423,427,430,434,437,441,444,448],[307,383,384],{},"In our interconnected world, where digital landscapes expand relentlessly, the guardians of our virtual realms stand tall. Cybersecurity technologies are a bastion against the tides of cyber threats that seek to disrupt our digital existence.",[307,386,387],{},"There are various categories of cybersecurity technologies that are worth mentioning.",[314,389,391],{"id":390},"_1-firewalls","1. Firewalls",[307,393,394],{},"Picture a fortress safeguarding your digital domain. Firewalls stand sentinel, monitoring and controlling incoming and outgoing network traffic. These gatekeepers analyze data packets, determining their legitimacy and securing your perimeter against unauthorized access.",[314,396,398],{"id":397},"_2-encryption","2. Encryption",[307,400,401],{},"Encryption technologies transform sensitive information into an unintelligible form, rendering it unreadable to unauthorized entities. Through encryption algorithms, data is shielded from prying eyes during transmission and storage.",[314,403,405],{"id":404},"_3-intrusion-detection-and-prevention-systems-idps","3. Intrusion Detection and Prevention Systems (IDPS)",[307,407,408],{},"IDPS technologies diligently monitor network traffic, swiftly identifying and responding to suspicious activities or potential cyber intrusions. They stand as vigilant guardians, swiftly neutralizing threats.",[314,410,412],{"id":411},"_4-endpoint-security","4. Endpoint Security",[307,414,415],{},"Envision an armor protecting individual devices. Endpoint security solutions fortify laptops, smartphones and other endpoints against malware, unauthorized access and data breaches. These shields safeguard the very entry points to your digital realm.",[314,417,419],{"id":418},"_5-security-information-and-event-management-siem","5. Security Information and Event Management (SIEM)",[307,421,422],{},"Think of a meticulous chronicler documenting every digital event. SIEM technologies aggregate and analyze log data from various sources, providing a comprehensive overview of cybersecurity incidents and allowing proactive threat management.",[314,424,426],{"id":425},"_6-technology-and-cyber-threats","6. Technology and Cyber Threats",[307,428,429],{},"In the battle of technology and threats, the lines are drawn and innovation fuels defense. Yet, the adversaries persist, evolving and adapting their tactics. The landscape teems with challenges, compelling us to fortify our defenses and bolster our technological arsenals.",[314,431,433],{"id":432},"_7-the-evolving-threatscape","7. The Evolving Threatscape",[307,435,436],{},"Cyber threats morph and evolve, from traditional malware to sophisticated ransomware, phishing attacks and zero-day exploits. The battlefield expands as adversaries exploit vulnerabilities, testing the resilience of our defenses.",[314,438,440],{"id":439},"_8-the-role-of-artificial-intelligence-ai-and-machine-learning-ml","8. The Role of Artificial Intelligence (AI) and Machine Learning (ML)",[307,442,443],{},"The emergence of AI and ML technologies will help analyze vast datasets, predict potential threats and autonomously respond to attacks in real-time, augmenting human efforts in defending our digital realms.",[350,445,447],{"id":446},"in-this-ever-changing-digital-landscape-constant-vigilance-and-adaptability-are-our-allies-embrace-emerging-technologies-educate-and-fortify-our-defenses-against-the-unforeseen-challenges-that-lie-ahead","In this ever-changing digital landscape, constant vigilance and adaptability are our allies. Embrace emerging technologies, educate and fortify our defenses against the unforeseen challenges that lie ahead.",[307,449,356],{},{"title":358,"searchDepth":359,"depth":359,"links":451},[452,453,454,455,456,457,458,459],{"id":390,"depth":359,"text":391},{"id":397,"depth":359,"text":398},{"id":404,"depth":359,"text":405},{"id":411,"depth":359,"text":412},{"id":418,"depth":359,"text":419},{"id":425,"depth":359,"text":426},{"id":432,"depth":359,"text":433},{"id":439,"depth":359,"text":440,"children":460},[461],{"id":446,"depth":368,"text":447},"2023-11-27","An article to inspire you to perform Code Testing in application.","\u002Fassets\u002Fimages\u002Fblog\u002F271123\u002Ftitle.jpg",{},{"title":226,"description":463},"vwe9aGL9NY8oFWlbVbQxgj1_z8IjR8CdyFnNpXLwOx0",{"id":469,"title":70,"author":470,"body":472,"date":537,"description":538,"extension":371,"image":539,"meta":540,"minRead":359,"navigation":293,"path":71,"seo":541,"stem":72,"__hash__":542},"blog\u002Fblog\u002FCyber-Physical Systems.md",{"name":300,"avatar":471},{"src":302,"alt":300},{"type":304,"value":473,"toc":526},[474,477,481,485,488,492,495,499,502,506,509,513,516,519,523],[307,475,476],{},"Have you ever wondered about the intricate fusion of digital intelligence with the tangible world around us? The realm of Cyber-Physical Systems (CPS) - a convergence that intertwines computing, networking and the physical universe, seamlessly knitting together bits and atoms.",[314,478,480],{"id":479},"categories-of-cyber-physical-systems","Categories of Cyber-Physical Systems",[350,482,484],{"id":483},"_1-smart-manufacturing","1. Smart Manufacturing",[307,486,487],{},"Picture a factory where machines communicate effortlessly, optimizing production, predicting maintenance needs and autonomously adjusting processes. Smart manufacturing orchestrates this symphony of machines, data and real-time decision-making to enhance productivity and efficiency.",[350,489,491],{"id":490},"_2-smart-cities","2. Smart Cities",[307,493,494],{},"Imagine a city where traffic flows effortlessly, energy consumption is optimized and public services are finely tuned to the needs of its inhabitants. Smart cities leverage CPS to connect infrastructure, utilities, transportation and public services, fostering sustainability and enhancing quality of life.",[350,496,498],{"id":497},"_3-autonomous-vehicles","3. Autonomous Vehicles",[307,500,501],{},"Envision cars that perceive the environment, make split-second decisions and navigate without human intervention. CPS in autonomous vehicles integrates sensors, AI algorithms and connectivity to revolutionize transportation, promising safer and more efficient mobility.",[350,503,505],{"id":504},"_4-healthcare-systems","4. Healthcare Systems",[307,507,508],{},"Think of hospitals where medical devices communicate seamlessly, providing real-time patient data to healthcare professionals. CPS in healthcare ensures precision medicine, remote patient monitoring and efficient management of healthcare resources.",[314,510,512],{"id":511},"the-intersection-of-virtual-and-physical-realms","The Intersection of Virtual and Physical Realms",[307,514,515],{},"Now, where does the lines between the digital and physical worlds blur, transforming how we live, work and interact with our environment? Cyber-Physical Systems herald an era of unparalleled connectivity and intelligence, where every aspect of our lives is touched by the grace of technology. It orchestrates a grand symphony where devices, sensors and actuators harmonize their actions, exchanging data and insights in real-time. This interconnectedness forms the backbone of smart ecosystems, fostering efficiency and innovation. Intelligence is woven into the fabric of our surroundings through CPS, where algorithms analyze data, make decisions and act upon the physical world. Automation in CPS systems optimizes processes, anticipates needs and adapts to dynamic environments.",[307,517,518],{},"Picture the limitless possibilities that CPS unfolds before us. From predictive maintenance in industrial settings to smart energy grids and precision agriculture, the applications are boundless, reshaping industries and propelling us toward a future brimming with potential.",[350,520,522],{"id":521},"security-concerns-interoperability-issues-and-ethical-considerations-cast-their-shadows-but-they-are-stepping-stones-not-stumbling-blocks-urging-us-to-innovate-collaborate-and-build-a-future-where-the-fusion-of-the-digital-and-physical-enriches-humanity","Security concerns, interoperability issues and ethical considerations cast their shadows. But, they are stepping stones, not stumbling blocks, urging us to innovate, collaborate and build a future where the fusion of the digital and physical enriches humanity",[307,524,525],{},"Disclaimer : The views and opinions expressed in the article belong solely to the author, and not necessarily to the author's employer, organisation, committee or other group or individual.",{"title":358,"searchDepth":359,"depth":359,"links":527},[528,534],{"id":479,"depth":359,"text":480,"children":529},[530,531,532,533],{"id":483,"depth":368,"text":484},{"id":490,"depth":368,"text":491},{"id":497,"depth":368,"text":498},{"id":504,"depth":368,"text":505},{"id":511,"depth":359,"text":512,"children":535},[536],{"id":521,"depth":368,"text":522},"2023-11-19","An article exploring the convergence of computing, networking, and the physical universe.","\u002Fassets\u002Fimages\u002Fblog\u002F191123\u002Ftitle.jpg",{},{"title":70,"description":538},"bVXdywf83MgNL7vxKw5DTUZYNUN_26RJc9yFjLutZv8",{"id":544,"title":150,"author":545,"body":547,"date":610,"description":611,"extension":371,"image":612,"meta":613,"minRead":359,"navigation":293,"path":151,"seo":614,"stem":152,"__hash__":615},"blog\u002Fblog\u002FNatural Language Processing.md",{"name":300,"avatar":546},{"src":302,"alt":300},{"type":304,"value":548,"toc":600},[549,552,556,559,563,566,570,573,577,580,584,587,591,594,598],[307,550,551],{},"In the landscape of technology, Natural Language Processing (NLP) stands out as a domain dedicated to enabling machines to comprehend and interpret human language. Unlike traditional programming languages, NLP focuses on the intricate structure and meaning embedded in natural language.",[314,553,555],{"id":554},"_1-parsing-the-syntax-and-semantics","1. Parsing the Syntax and Semantics",[307,557,558],{},"At its core, NLP involves parsing the syntax and semantics of human language. This process allows machines to break down sentences, identify linguistic structures and discern the intended meaning. Unlike structured data, natural language introduces complexities such as context, ambiguity and varied expressions.",[314,560,562],{"id":561},"_2-machine-learning-in-nlp","2. Machine Learning in NLP",[307,564,565],{},"Machine Learning (ML) plays a pivotal role in NLP. Algorithms, trained on vast datasets of human language, learn to recognize patterns, relationships and contextual nuances. This learning process enables machines to make informed decisions about language interpretation, sentiment analysis and even prediction of user input.",[314,567,569],{"id":568},"_3-use-cases-in-everyday-technology","3. Use Cases in Everyday Technology",[307,571,572],{},"NLP manifests in various applications we encounter daily. From virtual assistants understanding spoken commands to search engines interpreting search queries, NLP is the technological engine that enables seamless human-machine interaction. Its practical applications extend to chatbots, language translation tools and sentiment analysis in social media.",[314,574,576],{"id":575},"_4-challenges-in-nlp","4. Challenges in NLP",[307,578,579],{},"Despite its capabilities, NLP faces challenges inherent in the complexity of natural language. Ambiguity, context dependency and the need for large datasets pose hurdles. The challenge lies not only in understanding the words but also in grasping the subtleties of human expression.",[314,581,583],{"id":582},"_5-the-role-of-semantics-in-nlp","5. The Role of Semantics in NLP",[307,585,586],{},"In NLP, semantics takes center stage. Understanding the meaning of words within the context of a sentence or conversation is crucial. Semantic analysis allows machines to go beyond mere syntactic understanding and grasp the intended sense of a statement.",[314,588,590],{"id":589},"_6-looking-ahead-future-developments","6. Looking Ahead: Future Developments",[307,592,593],{},"The evolution of NLP is ongoing. As technology advances, so does the capability of NLP systems. Future developments may include improved contextual understanding, enhanced sentiment analysis and more accurate language translation. The goal is to minimize the gap between human and machine understanding of language.",[350,595,597],{"id":596},"natural-language-processing-is-the-technical-discipline-that-facilitates-the-interaction-between-humans-and-machines-through-language-by-parsing-the-syntax-and-semantics-of-natural-language-leveraging-machine-learning-for-pattern-recognition-and-finding-practical-applications-in-everyday-technology","Natural Language Processing is the technical discipline that facilitates the interaction between humans and machines through language by parsing the syntax and semantics of natural language, leveraging machine learning for pattern recognition and finding practical applications in everyday technology.",[307,599,525],{},{"title":358,"searchDepth":359,"depth":359,"links":601},[602,603,604,605,606,607],{"id":554,"depth":359,"text":555},{"id":561,"depth":359,"text":562},{"id":568,"depth":359,"text":569},{"id":575,"depth":359,"text":576},{"id":582,"depth":359,"text":583},{"id":589,"depth":359,"text":590,"children":608},[609],{"id":596,"depth":368,"text":597},"2023-11-12","An article exploring how machines comprehend, interpret, and process human language.","\u002Fassets\u002Fimages\u002Fblog\u002F121123\u002Ftitle.jpg",{},{"title":150,"description":611},"NzaCOaPCp5ZrU--RXSe-ANBjTHkaO4L_z0ORtUTeM2o",{"id":617,"title":46,"author":618,"body":620,"date":686,"description":463,"extension":371,"image":687,"meta":688,"minRead":368,"navigation":293,"path":47,"seo":689,"stem":48,"__hash__":690},"blog\u002Fblog\u002FBest Practices for Code Testing.md",{"name":300,"avatar":619},{"src":302,"alt":300},{"type":304,"value":621,"toc":676},[622,625,628,632,635,639,642,646,649,653,656,660,663,667,670,674],[307,623,624],{},"Today, I want to write about something that's an absolute cornerstone of software engineering - code testing. Whether you're a seasoned developer or just starting on your coding journey, understanding the ins and outs of testing is vital to creating reliable, bug-free software. So, let's dive into the world of code testing together.",[307,626,627],{},"You see, writing code is a lot like crafting a piece of art. It's about creativity, precision and, well, a dash of frustration from time to time. But unlike a painting or a sculpture, software isn't static; it's alive, constantly evolving. That's why testing is crucial. It's like putting your creation to the ultimate stress test and making sure it stands strong.",[314,629,631],{"id":630},"_1-testing-methods","1. Testing Methods",[307,633,634],{},"There's more to testing than meets the eye. We have unit testing, integration testing and end-to-end testing, among others. Each serves a different purpose, but they all work in harmony to ensure your code behaves as expected. So, as a developer, it's essential to understand when and how to use each type.",[314,636,638],{"id":637},"_2-test-driven-development-tdd","2. Test-Driven Development (TDD)",[307,640,641],{},"Let me tell you about a neat little secret in the world of software engineering—Test-Driven Development (TDD). With TDD, you write tests before you even start coding. It might sound backward, but it's incredibly effective. It forces you to think deeply about your code's requirements and functionality.",[314,643,645],{"id":644},"_3-continuous-integration-ci-and-continuous-delivery-cd","3. Continuous Integration (CI) and Continuous Delivery (CD)",[307,647,648],{},"Think of CI\u002FCD pipelines as the glue that holds everything together. They automate the testing and deployment process, making it faster and more reliable. That means your code gets tested automatically every time you make changes, ensuring you catch bugs early and often.",[314,650,652],{"id":651},"_4-test-coverage","4. Test Coverage",[307,654,655],{},"It's like checking the corners and crevices of your house for hidden dust bunnies. Test coverage tells you how much of your code has been tested. High coverage doesn't guarantee bug-free software, but it's a step in the right direction.",[314,657,659],{"id":658},"_5-maintaining-test-suites","5. Maintaining Test Suites",[307,661,662],{},"Just like an art collector cares for their collection, you need to care for your tests. Regularly update and maintain them as your code evolves. Outdated tests can be just as harmful as no tests at all.",[350,664,666],{"id":665},"in-the-grand-scheme-of-software-development-code-testing-is-more-than-just-a-checklist-of-procedures-its-about-ensuring-the-software-serves-its-end-users-reliably-and-consistently-its-about-creating-something-you-can-be-proud-of-though-it-can-be-challenging-and-time-consuming-remember-that-every-test-you-write-is-a-safeguard-for-your-code-and-every-bug-you-catch-early-is-a-triumph","In the grand scheme of software development, code testing is more than just a checklist of procedures. It's about ensuring the software serves its end-users reliably and consistently. It's about creating something you can be proud of. Though it can be challenging and time-consuming, remember that every test you write is a safeguard for your code, and every bug you catch early is a triumph.",[307,668,669],{},"As you embark on your coding journey, embrace testing as your ally, not your adversary. Consider it your trusty sidekick, helping you craft software that isn't just functional, but also robust and dependable.",[350,671,673],{"id":672},"as-you-evolve-as-a-developer-youll-come-to-appreciate-the-elegance-of-well-tested-code-that-can-withstand-the-test-of-time","As you evolve as a developer, you'll come to appreciate the elegance of well-tested code that can withstand the test of time.",[307,675,525],{},{"title":358,"searchDepth":359,"depth":359,"links":677},[678,679,680,681,682],{"id":630,"depth":359,"text":631},{"id":637,"depth":359,"text":638},{"id":644,"depth":359,"text":645},{"id":651,"depth":359,"text":652},{"id":658,"depth":359,"text":659,"children":683},[684,685],{"id":665,"depth":368,"text":666},{"id":672,"depth":368,"text":673},"2023-11-06","\u002Fassets\u002Fimages\u002Fblog\u002F061123\u002Ftitle.jpg",{},{"title":46,"description":463},"2UYvn8bBrx59-J8jT025rQoW6j5dKrHR3J6snqtSvyA",{"id":692,"title":154,"author":693,"body":695,"date":856,"description":857,"extension":371,"image":858,"meta":859,"minRead":860,"navigation":293,"path":155,"seo":861,"stem":156,"__hash__":862},"blog\u002Fblog\u002FOptimizing for Search Engines.md",{"name":300,"avatar":694},{"src":302,"alt":300},{"type":304,"value":696,"toc":848},[697,700,703,707,714,717,720,723,728,731,735,738,742,745,749,752,756,762,765,768,784,788,794,797,800,803,817,821,827,830,833,841,845],[307,698,699],{},"Today, I'm going to talk to you about how to optimize your web application for search engines (SEO). SEO is the\nprocess of improving the visibility and ranking of your website or web application in search engine results pages\n(SERPs). When people search for relevant keywords, you want your web application to appear as high up in the SERPs as\npossible.",[307,701,702],{},"There are a number of things you can do to optimize your web application for SEO. Some of them include the following.",[314,704,706],{"id":705},"use-relevant-keywords-throughout-your-web-application","Use relevant keywords throughout your web application",[307,708,709],{},[710,711],"img",{"alt":712,"src":713},"keywords","\u002Fassets\u002Fimages\u002Fblog\u002F231023\u002Fkeywords.jpg",[307,715,716],{},"Keywords are the words and phrases that people are likely to use when searching for your web application. When you\nchoose keywords, it's important to think about what your target audience is looking for.",[307,718,719],{},"Once you've chosen your keywords, you need to use them throughout your web application. This includes the title tags,\nmeta descriptions, header tags, and body content of your pages.",[307,721,722],{},"Some tips for choosing and using keywords:",[724,725,727],"h4",{"id":726},"do-your-research","Do your research",[307,729,730],{},"Use keyword research tools to find keywords that are relevant to your business and have a high search volume.",[724,732,734],{"id":733},"be-specific","Be specific",[307,736,737],{},"Don't use generic keywords that apply to a wide range of businesses. Instead, focus on specific keywords that are\nrelevant to your specific niche.",[724,739,741],{"id":740},"use-long-tail-keywords","Use long-tail keywords",[307,743,744],{},"Long-tail keywords are more specific and less competitive than short-tail keywords.",[724,746,748],{"id":747},"use-keywords-naturally","Use keywords naturally",[307,750,751],{},"Don't keyword stuff your content with keywords. Instead, use keywords naturally and in a way that makes sense for your\ncontent.",[314,753,755],{"id":754},"make-sure-your-web-application-is-well-structured-and-easy-to-navigate","Make sure your web application is well-structured and easy to navigate",[307,757,758],{},[710,759],{"alt":760,"src":761},"structure","\u002Fassets\u002Fimages\u002Fblog\u002F231023\u002Fstructure.jpg",[307,763,764],{},"Search engines need to be able to crawl and index your web application in order to rank it in the SERPs. To make it\neasy for search engines to crawl and index your web application, you need to make sure that it is well-structured and\neasy to navigate.",[307,766,767],{},"Some things to keep in mind while making your web application well-structured and easy to navigate:",[769,770,771,775,778,781],"ul",{},[772,773,774],"li",{},"Use a clear and concise website structure.",[772,776,777],{},"Use descriptive internal links.",[772,779,780],{},"Use a sitemap to help search engines index your web application.",[772,782,783],{},"Make sure your web application is mobile-friendly.",[314,785,787],{"id":786},"create-high-quality-content-that-is-relevant-to-your-target-audience","Create high-quality content that is relevant to your target audience",[307,789,790],{},[710,791],{"alt":792,"src":793},"audience","\u002Fassets\u002Fimages\u002Fblog\u002F231023\u002Faudience.jpg",[307,795,796],{},"Search engines want to deliver the best results to their users, so they're more likely to rank websites with\nhigh-quality content.",[307,798,799],{},"When you create content for your web application, it's important to make sure that it is high-quality and relevant to\nyour target audience.",[307,801,802],{},"Follow these guidelines for creating high-quality content:",[769,804,805,808,811,814],{},[772,806,807],{},"Write informative and engaging content that is relevant to your target audience.",[772,809,810],{},"Use images and videos to break up your text and make your content more visually appealing.",[772,812,813],{},"Keep your content up-to-date.",[772,815,816],{},"Promote your content on social media and other websites.",[314,818,820],{"id":819},"get-backlinks-from-other-high-quality-websites","Get backlinks from other high-quality websites",[307,822,823],{},[710,824],{"alt":825,"src":826},"websites","\u002Fassets\u002Fimages\u002Fblog\u002F231023\u002Fwebsites.jpg",[307,828,829],{},"Backlinks are like votes of confidence from other websites. The more backlinks you have from high-quality websites,\nthe higher your web application will rank in the SERPs.",[307,831,832],{},"There are a number of ways to get backlinks from other high-quality websites. Here are a few tips:",[769,834,835,838],{},[772,836,837],{},"Create high-quality content that other websites will want to link to.",[772,839,840],{},"Reach out to other website owners and ask",[350,842,844],{"id":843},"keep-in-mind-that-search-engines-want-to-deliver-the-best-results-to-their-users-so-focus-on-creating-high-quality-content-that-is-relevant-to-your-target-audience","Keep in mind that search engines want to deliver the best results to their users, so focus on creating high-quality content that is relevant to your target audience.",[307,846,847],{},"Disclaimer : The views and opinions expressed in the article belong solely to the author, and not necessarily to the\nauthor's employer, organisation, committee or other group or individual.",{"title":358,"searchDepth":359,"depth":359,"links":849},[850,851,852,853],{"id":705,"depth":359,"text":706},{"id":754,"depth":359,"text":755},{"id":786,"depth":359,"text":787},{"id":819,"depth":359,"text":820,"children":854},[855],{"id":843,"depth":368,"text":844},"2023-10-23","A look into how to do Search Engine Optimisation","\u002Fassets\u002Fimages\u002Fblog\u002F231023\u002Ftitle.jpg",{},5,{"title":154,"description":857},"4_Y42jM1gZ2163CpPmh2z9_tVaeNxlrg5URSxHMb_Ug",{"id":864,"title":282,"author":865,"body":867,"date":965,"description":966,"extension":371,"image":967,"meta":968,"minRead":969,"navigation":293,"path":283,"seo":970,"stem":284,"__hash__":971},"blog\u002Fblog\u002FWhy we need User Experience Design.md",{"name":300,"avatar":866},{"src":302,"alt":300},{"type":304,"value":868,"toc":952},[869,872,876,882,885,889,893,896,899,903,906,910,913,917,920,924,927,930,934,940,943,946,950],[307,870,871],{},"User Experience (UX) Design is a term that has been buzzing around the tech industry for quite some time now. It is\nso hard to miss, but what exactly does it mean? Also, why is it so crucial in the world of software development?",[314,873,875],{"id":874},"what-is-ux-design","What Is UX Design?",[307,877,878],{},[710,879],{"alt":880,"src":881},"process","\u002Fassets\u002Fimages\u002Fblog\u002F151023\u002Fwhatis.jpg",[307,883,884],{},"Simply put, User Experience Design is all about creating products, like software, that provide meaningful and\nrelevant experiences to users. It is not just about how a program looks. It's about how it works and how it makes\npeople feel.",[314,886,888],{"id":887},"why-does-ux-design-matter","Why Does UX Design Matter?",[350,890,892],{"id":891},"_1-puts-the-user-first","1. Puts the User First",[307,894,895],{},"At the heart of UX design is the user. It's about understanding their needs, behaviors and preferences. This ensures\nthat the software you create is tailored to make the user's life easier and the software, more engaging.",[307,897,898],{},"Imagine a website or app that's intuitive, with a layout that guides you effortlessly to what you're looking for.\nThat's good UX design at work.",[350,900,902],{"id":901},"_2-improves-user-satisfaction","2. Improves User Satisfaction",[307,904,905],{},"A well-designed user interface isn't just about functionality. It is also about aesthetics. A visually pleasing and\nuser-friendly application makes users happy. And when users are happy, they are more likely to continue using the\nsoftware and even recommend it to others.",[350,907,909],{"id":908},"_3-enhances-accessibility","3. Enhances Accessibility",[307,911,912],{},"Now, a good UX design, while making software look pretty, should also keep in mind to make it accessible to\neveryone. It should consider people with disabilities, ensuring that the software is usable for all, regardless of\ntheir physical or cognitive abilities.",[350,914,916],{"id":915},"_4-saves-time-and-money","4. Saves Time and Money",[307,918,919],{},"Investing in UX design can save you money in the long run. When the users' needs are addressed upfront, it reduces\nthe chances of costly redesigns and fixes down the road. Plus, it accelerates development by streamlining the\nprocess.",[314,921,923],{"id":922},"how-does-ux-design-impact-software-development","How Does UX Design Impact Software Development?",[307,925,926],{},"Imagine two versions of a mobile app. One that's poorly designed, difficult to navigate and frustrating to use. The\nother one is sleek, intuitive and provides an enjoyable experience. Which one do you think users would prefer?",[307,928,929],{},"Undoubtedly, the second one, thaks to excellent UX design. A positive user experience directly translates to\nincreased user engagement, higher conversion rates and ultimately, success for your software.",[314,931,933],{"id":932},"the-ux-design-process","The UX Design Process",[307,935,936],{},[710,937],{"alt":938,"src":939},"whatis","\u002Fassets\u002Fimages\u002Fblog\u002F151023\u002Fprocess.jpg",[307,941,942],{},"UX design isn't a one-size-fits-all process. It involves a series of stages, including user research, information\narchitecture, wireframing, prototyping and testing. These steps help ensure that the end product aligns with user\nneeds and expectations",[307,944,945],{},"In the world of software development, User Experience Design is not an optional luxury. It is a necessity. It is\nabout creating software that is user-centric, visually appealing, efficient and accessible to all. By investing in\nUX design, you not only make your users happy but also set your software up for success in the competitive digital\nlandscape.",[350,947,949],{"id":948},"remember-that-ux-design-isnt-just-a-buzzword-it-is-the-secret-sauce-that-can-make-or-break-your-application-dont-just-build-software-craft-experiences-that-users-will-love","Remember that UX design isn't just a buzzword. It is the secret sauce that can make or break your application. Don't just build software. Craft experiences that users will love.",[307,951,847],{},{"title":358,"searchDepth":359,"depth":359,"links":953},[954,955,961,962],{"id":874,"depth":359,"text":875},{"id":887,"depth":359,"text":888,"children":956},[957,958,959,960],{"id":891,"depth":368,"text":892},{"id":901,"depth":368,"text":902},{"id":908,"depth":368,"text":909},{"id":915,"depth":368,"text":916},{"id":922,"depth":359,"text":923},{"id":932,"depth":359,"text":933,"children":963},[964],{"id":948,"depth":368,"text":949},"2023-10-15","The importance of User Experience Design in the development process","\u002Fassets\u002Fimages\u002Fblog\u002F151023\u002Ftitle.jpg",{},4,{"title":282,"description":966},"IN-lPn4JF350tntrR0kVWjTRIGtFC2xVve6XQIObENA",{"id":973,"title":142,"author":974,"body":976,"date":1049,"description":1050,"extension":371,"image":1051,"meta":1052,"minRead":368,"navigation":293,"path":143,"seo":1053,"stem":144,"__hash__":1054},"blog\u002Fblog\u002FMathematics in Software Engineering.md",{"name":300,"avatar":975},{"src":302,"alt":300},{"type":304,"value":977,"toc":1040},[978,981,984,987,990,993,997,1000,1004,1007,1011,1014,1017,1020,1024,1027,1031,1034,1038],[307,979,980],{},"What does mathematics have to do with software engineering?",[307,982,983],{},"Well. So much. Actually.",[307,985,986],{},"It is Software \"Engineering\" after all. So, mathematics serves as the foundation of computer science like all the\nlegitimate branches of science. Algorithms, data structures and so many other essential concepts of computer science\nare built upon the foundation of mathematics.",[307,988,989],{},"A good majority of software engineers use mathematics to model the problems that exist in the real world, design\ngood efficient solutions and analyse the performance of their systems.",[307,991,992],{},"Here are some specific use cases to name a few.",[314,994,996],{"id":995},"algorithm-design","Algorithm design",[307,998,999],{},"A step-by-step procedure for solving problems. By use of mathematics, the solutions can be made more efficient,\nreliable as well and on point.",[314,1001,1003],{"id":1002},"data-structures","Data structures",[307,1005,1006],{},"Ways of organising data so that they can be accessed and manipulated (hopefully, with no ill-intend) efficiently.\nMathematics' application here helps the engineers to choose the most suitable data structure for their problem.",[314,1008,1010],{"id":1009},"performance-analysis","Performance analysis",[307,1012,1013],{},"Mathematics can also be used for analysing the system's performance as well as identifying areas for improvement.\nThis will ensure the software is fast, responsive and scalable - all trademarks of a good software product.",[307,1015,1016],{},"Mathematics, in addition to the prior mentioned applications, helps engineers provide a general way of thinking to\nsolve problems. Now, you might ask, what is the benefit of everyone involved thinking the same way? Of course, they\nare all not thinking alike, but they might share some specific methods among themselves to solve certain problems.\nEvery engineer that I had the privilege to work with, always had a specific way of thinking and working, which was\nalways enhanced by their knowledge of mathematics. These skills are also essential for developing critical thinking\nand problem-solving skills, which will help an engineer achieve great success.",[307,1018,1019],{},"To list a few, here are some of the benefits of having a strong foundation in mathematics for a software engineer.",[314,1021,1023],{"id":1022},"better-problem-solving-skills","Better problem-solving skills",[307,1025,1026],{},"A problem, in the beginning, might appear as a huge and complex monolith. But with practice and experience, we can\nbreak down the one big problem into smaller chunks that could be tackled, individually and efficiently, which we can\nput back together to have the complete solution. Mathematics, undoubtedly helps you do that and engineers face a\nvariety of problems on a day-to-day basis.",[314,1028,1030],{"id":1029},"more-efficient-code","More efficient code",[307,1032,1033],{},"If an engineer has a deeper understanding of the principles behind the algorithms and data structures, it will help\nthem write code in a more efficient manner because they have a better understanding of why we use this particular\nalgorithm or data structure.",[350,1035,1037],{"id":1036},"it-is-important-to-have-strong-foundations-in-mathematics-because-it-will-help-a-software-engineer-to-be-successful-in-their-field-or-you-could-learn-mathematics-for-the-sheer-fun-of-it","It is important to have strong foundations in mathematics because it will help a software engineer to be successful in their field. (Or you could learn mathematics for the sheer fun of it).",[307,1039,847],{},{"title":358,"searchDepth":359,"depth":359,"links":1041},[1042,1043,1044,1045,1046],{"id":995,"depth":359,"text":996},{"id":1002,"depth":359,"text":1003},{"id":1009,"depth":359,"text":1010},{"id":1022,"depth":359,"text":1023},{"id":1029,"depth":359,"text":1030,"children":1047},[1048],{"id":1036,"depth":368,"text":1037},"2023-10-08","Why mathematics is important for a software engineer","\u002Fassets\u002Fimages\u002Fblog\u002F081023\u002Ftitle.jpg",{},{"title":142,"description":1050},"c8n0X_HhLJYUMQkUFJOOnPY4BviQJYVVOzJihB3Fmso",{"id":1056,"title":86,"author":1057,"body":1059,"date":1204,"description":1205,"extension":371,"image":1206,"meta":1207,"minRead":969,"navigation":293,"path":87,"seo":1208,"stem":88,"__hash__":1209},"blog\u002Fblog\u002FEmbracing Decentralized Development.md",{"name":300,"avatar":1058},{"src":302,"alt":300},{"type":304,"value":1060,"toc":1182},[1061,1064,1068,1071,1075,1078,1082,1085,1089,1092,1096,1099,1103,1106,1110,1113,1117,1120,1124,1127,1131,1134,1138,1141,1145,1148,1152,1155,1159,1162,1166,1169,1173,1176,1180],[307,1062,1063],{},"The field of software engineering has evolved rapidly over the past few decades, driven by technological\nadvancements, changing user demands and new paradigms in development methodologies. As we stand on the cusp of a new\nera, it's crucial to examine the future of software engineering and how it will be shaped by the principles of\ndecentralization.",[314,1065,1067],{"id":1066},"the-era-of-centralized-development","The Era of Centralized Development",[307,1069,1070],{},"Traditional software development has followed a centralized model, where a core team of developers, often located in\nthe same physical workspace, collaborates on the entire project. This approach has its merits, such as effective\ncommunication and shared knowledge, but it also has limitations.",[350,1072,1074],{"id":1073},"scalability-challenges","Scalability Challenges",[307,1076,1077],{},"As projects grow in complexity, it becomes challenging to scale development teams without introducing communication\nbottlenecks and inefficiencies.",[350,1079,1081],{"id":1080},"limited-diversity","Limited Diversity",[307,1083,1084],{},"Centralized development often limits the diversity of ideas and perspectives, potentially leading to homogenous\nsolutions that may not address the needs of all users.",[350,1086,1088],{"id":1087},"dependency-on-key-individuals","Dependency on Key Individuals",[307,1090,1091],{},"Centralized projects are highly dependent on key individuals and if any of them leave the project, it can lead to\nsignificant setbacks.",[350,1093,1095],{"id":1094},"resource-allocation","Resource Allocation",[307,1097,1098],{},"Allocating resources effectively and fairly across a centralized team can be a difficult task.",[314,1100,1102],{"id":1101},"decentralized-development-a-paradigm-shift","Decentralized Development: A Paradigm Shift",[307,1104,1105],{},"The concept of decentralized development is poised to revolutionize how software engineering is conducted. In a\ndecentralized model, development is not restricted to a single location or a tightly-knit team. Instead, it is\ndistributed across a network of contributors, often geographically dispersed, who collaborate on various aspects of\na project. This approach brings several notable advantages.",[350,1107,1109],{"id":1108},"global-talent-pool","Global Talent Pool",[307,1111,1112],{},"Decentralization enables organizations to tap into a global talent pool, allowing them to work with experts from\ndiverse backgrounds and locations.",[350,1114,1116],{"id":1115},"_247-development","24\u002F7 Development",[307,1118,1119],{},"With teams spread across different time zones, development can occur around the clock, accelerating project\ntimelines.",[350,1121,1123],{"id":1122},"reduced-dependency","Reduced Dependency",[307,1125,1126],{},"Decentralization reduces the risk associated with key individuals. If one contributor leaves, others can seamlessly\nstep in.",[350,1128,1130],{"id":1129},"cost-effective","Cost-Effective",[307,1132,1133],{},"Organizations can often find cost savings by utilizing decentralized teams and avoiding the overhead associated with\na physical office.",[350,1135,1137],{"id":1136},"increased-innovation","Increased Innovation",[307,1139,1140],{},"A diverse group of contributors can bring fresh ideas and innovative approaches to problem-solving, fostering\ncreativity.",[314,1142,1144],{"id":1143},"challenges-of-decentralized-development","Challenges of Decentralized Development",[307,1146,1147],{},"While decentralized development offers numerous benefits, it also presents unique challenges.",[350,1149,1151],{"id":1150},"communication","Communication",[307,1153,1154],{},"Effective communication becomes paramount and organizations need to leverage digital tools and strategies to\nmaintain seamless collaboration.",[350,1156,1158],{"id":1157},"security-and-data-privacy","Security and Data Privacy",[307,1160,1161],{},"Ensuring data security and privacy in a decentralized environment requires robust protocols and encryption.",[350,1163,1165],{"id":1164},"quality-assurance","Quality Assurance",[307,1167,1168],{},"Maintaining consistent software quality across decentralized teams can be a challenge, necessitating rigorous\ntesting and QA processes.",[350,1170,1172],{"id":1171},"coordination","Coordination",[307,1174,1175],{},"Coordinating efforts and ensuring alignment with project goals can be more complex in a decentralized model.",[350,1177,1179],{"id":1178},"the-future-of-software-engineering-lies-in-decentralization-offering-unprecedented-innovation-global-collaboration-and-scalability-for-organizations-that-invest-in-its-potential","The future of software engineering lies in decentralization, offering unprecedented innovation, global collaboration and scalability for organizations that invest in its potential.",[307,1181,847],{},{"title":358,"searchDepth":359,"depth":359,"links":1183},[1184,1190,1197],{"id":1066,"depth":359,"text":1067,"children":1185},[1186,1187,1188,1189],{"id":1073,"depth":368,"text":1074},{"id":1080,"depth":368,"text":1081},{"id":1087,"depth":368,"text":1088},{"id":1094,"depth":368,"text":1095},{"id":1101,"depth":359,"text":1102,"children":1191},[1192,1193,1194,1195,1196],{"id":1108,"depth":368,"text":1109},{"id":1115,"depth":368,"text":1116},{"id":1122,"depth":368,"text":1123},{"id":1129,"depth":368,"text":1130},{"id":1136,"depth":368,"text":1137},{"id":1143,"depth":359,"text":1144,"children":1198},[1199,1200,1201,1202,1203],{"id":1150,"depth":368,"text":1151},{"id":1157,"depth":368,"text":1158},{"id":1164,"depth":368,"text":1165},{"id":1171,"depth":368,"text":1172},{"id":1178,"depth":368,"text":1179},"2023-10-01","The advantages of using decentralised development","\u002Fassets\u002Fimages\u002Fblog\u002F011023\u002Ftitle.jpg",{},{"title":86,"description":1205},"Fd71lHu4P17Jia1GF33gF_Sw0OpzEynZfRLv35hx8hA",{"id":1211,"title":146,"author":1212,"body":1214,"date":1304,"description":1305,"extension":371,"image":1306,"meta":1307,"minRead":969,"navigation":293,"path":147,"seo":1308,"stem":148,"__hash__":1309},"blog\u002Fblog\u002FMicro Frontends - A Modern Approach to Front-End Development.md",{"name":300,"avatar":1213},{"src":302,"alt":300},{"type":304,"value":1215,"toc":1296},[1216,1219,1222,1225,1229,1232,1236,1239,1243,1246,1250,1253,1256,1259,1262,1273,1276,1279,1290,1294],[307,1217,1218],{},"Micro frontends is a software development approach that splits a front-end application into smaller, independent\npieces. These pieces or micro frontends, can be developed and deployed independently and can be combined to create\nthe complete front-end application.",[307,1220,1221],{},"Micro frontends are inspired by microservices, a software development approach that splits a back-end application\ninto smaller, independent services. Microservices have been shown to offer a number of benefits, including\nscalability, resilience and ease of development and deployment. Micro frontends bring the same benefits to the\nfront-end development world.",[307,1223,1224],{},"Here are some of the key benefits of micro frontends:",[314,1226,1228],{"id":1227},"scalability","Scalability",[307,1230,1231],{},"Micro frontends can be scaled independently, which means that the overall application can be scaled more easily and\nefficiently.",[314,1233,1235],{"id":1234},"resilience","Resilience",[307,1237,1238],{},"If one micro frontend fails, the other micro frontends can continue to operate. This makes the overall application\nmore resilient to failures.",[314,1240,1242],{"id":1241},"ease-of-development-and-deployment","Ease of development and deployment",[307,1244,1245],{},"Micro frontends can be developed and deployed independently, which makes the development process more agile and\nefficient.",[314,1247,1249],{"id":1248},"team-autonomy","Team autonomy",[307,1251,1252],{},"Micro frontends can be owned and developed by different teams, which gives teams more autonomy and flexibility.",[307,1254,1255],{},"Micro frontends can be implemented in a number of ways. One common approach is to use a container orchestration\nplatform such as Kubernetes to deploy and manage micro frontends. Another approach is to use a micro frontend\nframework such as single-SPA or Module Federation to bundle micro frontends together and load them into a single web\napplication.",[307,1257,1258],{},"Micro frontends are a relatively new approach to front-end development, but they have quickly gained popularity\namong large companies such as Amazon, Netflix and eBay. These companies have found that micro frontends offer a\nnumber of benefits, including scalability, resilience and ease of development and deployment.",[307,1260,1261],{},"Here are some examples of how micro frontends can be used:",[769,1263,1264,1267,1270],{},[772,1265,1266],{},"A large e-commerce website could use micro frontends to split the front-end application into separate micro\nfrontends for each product category. This would make the application more scalable and easier to maintain.",[772,1268,1269],{},"A news website could use micro frontends to split the front-end application into separate micro frontends for\neach section of the website, such as news, sports and entertainment. This would make it easier to develop and\ndeploy new features for each section of the website.",[772,1271,1272],{},"A SaaS application could use micro frontends to split the front-end application into separate micro frontends\nfor each customer. This would make it easier to customize the front-end application for each customer.",[307,1274,1275],{},"Micro frontends are not a silver bullet and they are not right for every front-end application. However, they offer\na number of benefits that can make them a good choice for large and complex front-end applications.",[307,1277,1278],{},"If you are considering using micro frontends in your next front-end project, here are a few things to keep in mind:",[769,1280,1281,1284,1287],{},[772,1282,1283],{},"Micro frontends are more complex to implement than a traditional monolithic front-end application.",[772,1285,1286],{},"Micro frontends can introduce additional overhead in terms of performance and debugging..",[772,1288,1289],{},"Micro frontends require careful planning and coordination between teams.",[350,1291,1293],{"id":1292},"micro-frontends-are-a-promising-new-approach-to-front-end-development-that-can-offer-a-number-of-benefits-for-large-and-complex-applications","Micro frontends are a promising new approach to front-end development that can offer a number of benefits for large and complex applications.",[307,1295,847],{},{"title":358,"searchDepth":359,"depth":359,"links":1297},[1298,1299,1300,1301],{"id":1227,"depth":359,"text":1228},{"id":1234,"depth":359,"text":1235},{"id":1241,"depth":359,"text":1242},{"id":1248,"depth":359,"text":1249,"children":1302},[1303],{"id":1292,"depth":368,"text":1293},"2023-09-24","A peep into the world of micro front-ends","\u002Fassets\u002Fimages\u002Fblog\u002F240923\u002Ftitle.jpg",{},{"title":146,"description":1305},"DGUSTsvd3tkyOa6YKvXLmrKbpekR1BmPCmyba6rzIxk",{"id":1311,"title":262,"author":1312,"body":1314,"date":1415,"description":1416,"extension":371,"image":1417,"meta":1418,"minRead":368,"navigation":293,"path":263,"seo":1419,"stem":264,"__hash__":1420},"blog\u002Fblog\u002FWebAssembly and Progressive Web Apps.md",{"name":300,"avatar":1313},{"src":302,"alt":300},{"type":304,"value":1315,"toc":1399},[1316,1319,1323,1326,1329,1333,1337,1340,1344,1347,1351,1354,1358,1361,1365,1369,1372,1376,1379,1383,1386,1390,1393,1397],[307,1317,1318],{},"Web development is a constantly evolving field, driven by the ever-increasing demand for faster, more feature-rich\nweb applications. Two significant developments in recent years have reshaped the landscape of web development:\nWebAssembly and Progressive Web Apps (PWAs). In this article, we will explore these innovations, their impact on web\ndevelopment and how they are changing the way we build and experience web applications.",[314,1320,1322],{"id":1321},"webassembly-bridging-the-gap","WebAssembly: Bridging the Gap",[307,1324,1325],{},"Traditionally, web applications relied on JavaScript as the primary programming language for the client-side. While\nJavaScript is powerful and versatile, it has its limitations, especially when it comes to computationally intensive\ntasks like real-time gaming, video editing, or scientific simulations. This is where WebAssembly (Wasm) comes into\nplay.",[307,1327,1328],{},"WebAssembly is a binary instruction format that enables high-performance execution of code on web browsers. Unlike\nJavaScript, which is parsed and executed line by line, WebAssembly allows developers to compile code from languages\nlike C, C++ and Rust into a format that can run at near-native speed in the browser. This opens up new possibilities\nfor web applications that require intensive computations, making it possible to run sophisticated software directly\nin the browser without relying on server-side processing.",[314,1330,1332],{"id":1331},"key-advantages-of-webassembly","Key Advantages of WebAssembly",[350,1334,1336],{"id":1335},"speed","Speed",[307,1338,1339],{},"WebAssembly can execute code significantly faster than JavaScript, making it ideal for performance-critical\napplications.",[350,1341,1343],{"id":1342},"language-diversity","Language Diversity",[307,1345,1346],{},"Developers can choose from a wide range of programming languages to write WebAssembly, allowing them to leverage\nexisting codebases.",[350,1348,1350],{"id":1349},"security","Security",[307,1352,1353],{},"WebAssembly runs in a sandboxed environment, providing a layer of security against potentially harmful code.",[314,1355,1357],{"id":1356},"progressive-web-apps-pwas-bridging-the-experience-gap","Progressive Web Apps (PWAs): Bridging the Experience Gap",[307,1359,1360],{},"While WebAssembly enhances the performance and capabilities of web applications, Progressive Web Apps focus on the\nuser experience. PWAs are web applications that provide a native app-like experience on the web, combining the best\nof both web and mobile app worlds. They are designed to work seamlessly across various devices and network\nconditions, offering features like offline access, push notifications and fast loading times.",[314,1362,1364],{"id":1363},"key-features-of-pwas","Key Features of PWAs",[350,1366,1368],{"id":1367},"offline-accessibility","Offline Accessibility",[307,1370,1371],{},"PWAs can cache resources, enabling users to access the app even without an internet connection.",[350,1373,1375],{"id":1374},"responsive-design","Responsive Design",[307,1377,1378],{},"PWAs adapt to different screen sizes and orientations, providing a consistent experience on various devices.",[350,1380,1382],{"id":1381},"app-like-interactions","App-Like Interactions",[307,1384,1385],{},"PWAs can be added to the home screen and offer app-like navigation and interactions.",[350,1387,1389],{"id":1388},"push-notifications","Push Notifications",[307,1391,1392],{},"PWAs can send push notifications to users, increasing engagement.",[350,1394,1396],{"id":1395},"webassembly-and-progressive-web-apps-are-revolutionizing-web-development-offering-the-potential-for-faster-more-capable-and-user-friendly-web-applications-that-are-reshaping-our-digital-interactions","WebAssembly and Progressive Web Apps are revolutionizing web development, offering the potential for faster, more capable and user-friendly web applications that are reshaping our digital interactions.",[307,1398,847],{},{"title":358,"searchDepth":359,"depth":359,"links":1400},[1401,1402,1407,1408],{"id":1321,"depth":359,"text":1322},{"id":1331,"depth":359,"text":1332,"children":1403},[1404,1405,1406],{"id":1335,"depth":368,"text":1336},{"id":1342,"depth":368,"text":1343},{"id":1349,"depth":368,"text":1350},{"id":1356,"depth":359,"text":1357},{"id":1363,"depth":359,"text":1364,"children":1409},[1410,1411,1412,1413,1414],{"id":1367,"depth":368,"text":1368},{"id":1374,"depth":368,"text":1375},{"id":1381,"depth":368,"text":1382},{"id":1388,"depth":368,"text":1389},{"id":1395,"depth":368,"text":1396},"2023-09-17","Progressive Web Apps (PWAs) and WebAssembly","\u002Fassets\u002Fimages\u002Fblog\u002F170923\u002Ftitle.jpg",{},{"title":262,"description":1416},"J4igSLK2ULfz1K228TkvIUfxVP1fXHBpxnJlLRBQnH4",{"id":1422,"title":182,"author":1423,"body":1425,"date":1549,"description":1550,"extension":371,"image":1551,"meta":1552,"minRead":368,"navigation":293,"path":183,"seo":1553,"stem":184,"__hash__":1554},"blog\u002Fblog\u002FQuantum Computing and its Potential Impact on Software Development.md",{"name":300,"avatar":1424},{"src":302,"alt":300},{"type":304,"value":1426,"toc":1530},[1427,1430,1434,1437,1441,1444,1448,1451,1455,1458,1462,1465,1468,1472,1475,1479,1482,1486,1489,1493,1496,1500,1503,1507,1510,1514,1517,1521,1524,1528],[307,1428,1429],{},"The world of technology is on the cusp of a revolution and at the heart of this transformation is quantum computing.\nUnlike classical computers that rely on bits to process information, quantum computers use quantum bits or qubits,\nwhich can exist in multiple states simultaneously. This unique property opens up a realm of possibilities and\nchallenges for software development. In this article, we'll explore the basics of quantum computing and discuss how\nit might revolutionize the field of software development.",[350,1431,1433],{"id":1432},"the-quantum-difference","The Quantum Difference",[307,1435,1436],{},"Quantum computing harnesses the principles of quantum mechanics to perform computations that were previously\nunimaginable with classical computers. Here are a few key distinctions:",[350,1438,1440],{"id":1439},"superposition","Superposition",[307,1442,1443],{},"Qubits can exist in a superposition of states, enabling them to perform multiple calculations in parallel. This\noffers immense potential for speeding up complex computations.",[350,1445,1447],{"id":1446},"entanglement","Entanglement",[307,1449,1450],{},"Qubits can become entangled, meaning the state of one qubit is dependent on the state of another, even if they are\nphysically separated. This property has profound implications for secure communication and cryptography.",[350,1452,1454],{"id":1453},"quantum-tunneling","Quantum Tunneling",[307,1456,1457],{},"Quantum computers can take advantage of quantum tunneling to solve optimization problems more efficiently than\nclassical algorithms.",[314,1459,1461],{"id":1460},"impact-on-software-development","Impact on Software Development",[350,1463,66],{"id":1464},"cryptography",[307,1466,1467],{},"Quantum computers pose a significant threat to current encryption methods. They could break widely-used encryption\nalgorithms, emphasizing the need for quantum-resistant cryptographic solutions.",[350,1469,1471],{"id":1470},"optimization-problems","Optimization Problems",[307,1473,1474],{},"Quantum computing's ability to tackle optimization problems could revolutionize fields like logistics, finance and\nmaterials science. Developers will need to adapt algorithms and software to leverage this potential.",[350,1476,1478],{"id":1477},"machine-learning","Machine Learning",[307,1480,1481],{},"Quantum computing holds promise for accelerating machine learning algorithms, enabling faster training and more\ncomplex models. Quantum machine learning libraries are already emerging.",[350,1483,1485],{"id":1484},"complex-simulations","Complex Simulations",[307,1487,1488],{},"Quantum computers are well-suited for simulating quantum systems, which has applications in drug discovery,\nmaterials science and climate modeling.",[350,1490,1492],{"id":1491},"quantum-software-development-tools","Quantum Software Development Tools",[307,1494,1495],{},"Developers will need new tools and languages to write quantum software. Quantum programming languages like Q# and\nquantum development kits are emerging.",[314,1497,1499],{"id":1498},"challenges-ahead","Challenges Ahead",[307,1501,1502],{},"While the potential benefits of quantum computing in software development are exciting, several challenges must be\naddressed.",[350,1504,1506],{"id":1505},"hardware-limitations","Hardware Limitations",[307,1508,1509],{},"Quantum hardware is still in its infancy, with limited qubits and high error rates. This requires specialized\ntechniques for error correction and fault tolerance.",[350,1511,1513],{"id":1512},"expertise-gap","Expertise Gap",[307,1515,1516],{},"Developing quantum software requires a deep understanding of quantum mechanics, a skill set not possessed by most\ntraditional software developers.",[350,1518,1520],{"id":1519},"integration-with-classical-systems","Integration with Classical Systems",[307,1522,1523],{},"Quantum and classical systems will need to work together seamlessly, posing integration challenges.",[350,1525,1527],{"id":1526},"the-quantum-future-is-poised-to-revolutionize-software-development-and-developers-must-stay-informed-embrace-new-tools-and-bridge-the-gap-between-classical-and-quantum-computing-to-unlock-its-limitless-possibilities","The quantum future is poised to revolutionize software development and developers must stay informed, embrace new tools and bridge the gap between classical and quantum computing to unlock its limitless possibilities.",[307,1529,847],{},{"title":358,"searchDepth":359,"depth":359,"links":1531},[1532,1533,1534,1535,1536,1543],{"id":1432,"depth":368,"text":1433},{"id":1439,"depth":368,"text":1440},{"id":1446,"depth":368,"text":1447},{"id":1453,"depth":368,"text":1454},{"id":1460,"depth":359,"text":1461,"children":1537},[1538,1539,1540,1541,1542],{"id":1464,"depth":368,"text":66},{"id":1470,"depth":368,"text":1471},{"id":1477,"depth":368,"text":1478},{"id":1484,"depth":368,"text":1485},{"id":1491,"depth":368,"text":1492},{"id":1498,"depth":359,"text":1499,"children":1544},[1545,1546,1547,1548],{"id":1505,"depth":368,"text":1506},{"id":1512,"depth":368,"text":1513},{"id":1519,"depth":368,"text":1520},{"id":1526,"depth":368,"text":1527},"2023-09-10","Potential implementations of Quantum computing","\u002Fassets\u002Fimages\u002Fblog\u002F100923\u002Ftitle.jpg",{},{"title":182,"description":1550},"UgkCO6hv-Cds6PNOfADRwTZqDPg8IG2f8KeOmsitw_0",{"id":1556,"title":234,"author":1557,"body":1559,"date":1711,"description":1712,"extension":371,"image":1713,"meta":1714,"minRead":969,"navigation":293,"path":235,"seo":1715,"stem":236,"__hash__":1716},"blog\u002Fblog\u002FThe Psychology of Software Bugs - Understanding and Preventing Common Mistakes.md",{"name":300,"avatar":1558},{"src":302,"alt":300},{"type":304,"value":1560,"toc":1687},[1561,1564,1568,1572,1575,1579,1582,1586,1589,1593,1596,1600,1604,1607,1611,1614,1618,1621,1625,1628,1632,1636,1639,1643,1646,1650,1653,1657,1660,1664,1667,1671,1674,1678,1681,1685],[307,1562,1563],{},"Software bugs are those elusive and often frustrating creatures that can wreak havoc on even the most meticulously\ndesigned code. While they are an inherent part of software development, understanding the psychology behind them can\nhelp us prevent, identify and squash them more effectively. In this article, we will delve into the psychology of\nsoftware bugs, exploring the cognitive biases and psychological factors that contribute to their creation and\nproviding strategies for their prevention.",[314,1565,1567],{"id":1566},"the-cognitive-biases-at-play","The Cognitive Biases at Play",[350,1569,1571],{"id":1570},"confirmation-bias","Confirmation Bias",[307,1573,1574],{},"Developers often interpret code in ways that confirm their preconceived notions. This can lead to overlooking errors\nbecause they believe the code is correct.",[350,1576,1578],{"id":1577},"anchoring-bias","Anchoring Bias",[307,1580,1581],{},"Once a developer has a particular belief about the code, they may anchor to that belief and ignore evidence to the\ncontrary, making it challenging to spot bugs.",[350,1583,1585],{"id":1584},"availability-heuristic","Availability Heuristic",[307,1587,1588],{},"The more recent and memorable a bug or error is, the more likely developers are to think that it's a common problem,\neven if it's a rare occurrence.",[350,1590,1592],{"id":1591},"overconfidence-bias","Overconfidence Bias",[307,1594,1595],{},"Developers may overestimate their own abilities, assuming that they couldn't possibly have made a mistake in their\ncode.",[314,1597,1599],{"id":1598},"psychological-factors-in-bug-creation","Psychological Factors in Bug Creation",[350,1601,1603],{"id":1602},"fatigue-and-burnout","Fatigue and Burnout",[307,1605,1606],{},"Tired developers are more prone to making errors. Recognizing this, it's essential to manage workloads and encourage\nbreaks.",[350,1608,1610],{"id":1609},"time-pressure","Time Pressure",[307,1612,1613],{},"Rushed coding often leads to shortcuts and errors. Creating a culture that values quality over speed can mitigate\nthis issue.",[350,1615,1617],{"id":1616},"complexity-overload","Complexity Overload",[307,1619,1620],{},"When code becomes overly complex, it's harder to spot mistakes. Simplifying code and breaking it into manageable\nchunks can help.",[350,1622,1624],{"id":1623},"lack-of-testing","Lack of Testing",[307,1626,1627],{},"Insufficient testing can result from the belief that the code is bug-free. Promoting thorough testing practices is\ncrucial.",[314,1629,1631],{"id":1630},"strategies-for-bug-prevention","Strategies for Bug Prevention",[350,1633,1635],{"id":1634},"code-reviews","Code Reviews",[307,1637,1638],{},"Encourage peer reviews of code. Fresh eyes are more likely to catch errors and it can help counteract cognitive\nbiases.",[350,1640,1642],{"id":1641},"unit-testing","Unit Testing",[307,1644,1645],{},"Implement robust unit testing as part of your development process to catch issues early.",[350,1647,1649],{"id":1648},"automated-code-analysis","Automated Code Analysis",[307,1651,1652],{},"Employ tools like static code analyzers and linters to identify potential problems automatically.",[350,1654,1656],{"id":1655},"documentation","Documentation",[307,1658,1659],{},"Maintain clear and up-to-date documentation for your code. This not only helps others understand your work but can\nalso reveal bugs.",[350,1661,1663],{"id":1662},"pair-programming","Pair Programming",[307,1665,1666],{},"Working in pairs can reduce individual biases and increase the chances of spotting errors.",[350,1668,1670],{"id":1669},"bug-tracking","Bug Tracking",[307,1672,1673],{},"Utilize bug-tracking systems to document and prioritize issues as they arise.",[350,1675,1677],{"id":1676},"training-and-awareness","Training and Awareness",[307,1679,1680],{},"Educate your development team about common cognitive biases and psychological factors that contribute to bug\ncreation.",[350,1682,1684],{"id":1683},"software-bugs-often-have-psychological-roots-driven-by-cognitive-biases-and-factors-like-fatigue-and-time-pressure-to-prevent-and-mitigate-these-issues-development-teams-should-promote-awareness-collaboration-and-rigorous-testing-ensuring-more-reliable-and-robust-applications","Software bugs often have psychological roots, driven by cognitive biases and factors like fatigue and time pressure. To prevent and mitigate these issues, development teams should promote awareness, collaboration, and rigorous testing, ensuring more reliable and robust applications.",[307,1686,847],{},{"title":358,"searchDepth":359,"depth":359,"links":1688},[1689,1695,1701],{"id":1566,"depth":359,"text":1567,"children":1690},[1691,1692,1693,1694],{"id":1570,"depth":368,"text":1571},{"id":1577,"depth":368,"text":1578},{"id":1584,"depth":368,"text":1585},{"id":1591,"depth":368,"text":1592},{"id":1598,"depth":359,"text":1599,"children":1696},[1697,1698,1699,1700],{"id":1602,"depth":368,"text":1603},{"id":1609,"depth":368,"text":1610},{"id":1616,"depth":368,"text":1617},{"id":1623,"depth":368,"text":1624},{"id":1630,"depth":359,"text":1631,"children":1702},[1703,1704,1705,1706,1707,1708,1709,1710],{"id":1634,"depth":368,"text":1635},{"id":1641,"depth":368,"text":1642},{"id":1648,"depth":368,"text":1649},{"id":1655,"depth":368,"text":1656},{"id":1662,"depth":368,"text":1663},{"id":1669,"depth":368,"text":1670},{"id":1676,"depth":368,"text":1677},{"id":1683,"depth":368,"text":1684},"2023-09-02","Understanding and preventing bugs in the software","\u002Fassets\u002Fimages\u002Fblog\u002F020923\u002Ftitle.jpg",{},{"title":234,"description":1712},"671KrIUDw-kh7nxgK6EKPhA0qwF4e7b1oDGTwv19_dM",{"id":1718,"title":214,"author":1719,"body":1721,"date":1861,"description":1862,"extension":371,"image":1863,"meta":1864,"minRead":969,"navigation":293,"path":215,"seo":1865,"stem":216,"__hash__":1866},"blog\u002Fblog\u002FServerless Computing and the Future.md",{"name":300,"avatar":1720},{"src":302,"alt":300},{"type":304,"value":1722,"toc":1838},[1723,1726,1730,1733,1737,1739,1742,1746,1749,1753,1756,1760,1763,1767,1770,1774,1778,1781,1785,1788,1792,1795,1799,1803,1806,1810,1813,1817,1820,1824,1827,1829,1832,1836],[307,1724,1725],{},"In the ever-evolving landscape of software development, serverless computing has emerged as a transformative\nparadigm that promises to revolutionize how applications are built, deployed and maintained. By abstracting away\nserver management, serverless computing allows developers to focus solely on writing code, improving efficiency,\nscalability and cost-effectiveness. This article delves into the world of serverless computing, exploring its\nprinciples, benefits, challenges and best practices.",[314,1727,1729],{"id":1728},"understanding-serverless-computing","Understanding Serverless Computing",[307,1731,1732],{},"At its core, serverless computing refers to a cloud computing model where developers do not need to manage the\nunderlying infrastructure. Instead, they write code in the form of event-driven functions that are triggered by\nspecific events, such as HTTP requests, database updates, or incoming messages. These functions, often referred to\nas \"serverless functions,\" are executed in ephemeral containers, providing developers with an environment that\nscales dynamically based on demand.",[314,1734,1736],{"id":1735},"benefits-of-serverless-computing","Benefits of Serverless Computing",[350,1738,1228],{"id":1227},[307,1740,1741],{},"Serverless platforms automatically scale the number of containers to match incoming requests. This allows\napplications to handle varying workloads without manual intervention, ensuring optimal performance during traffic\nspikes while minimizing costs during periods of low usage.",[350,1743,1745],{"id":1744},"cost-efficiency","Cost-Efficiency",[307,1747,1748],{},"With serverless, you pay only for the actual execution time of your functions. Since there are no upfront costs or\nfixed server instances, this model can significantly reduce infrastructure expenses, especially for applications\nwith unpredictable or fluctuating workloads.",[350,1750,1752],{"id":1751},"reduced-operational-overhead","Reduced Operational Overhead",[307,1754,1755],{},"Traditional server management tasks such as provisioning, patching and scaling are handled by the cloud provider.\nDevelopers can focus exclusively on code development, accelerating time-to-market for new features.",[350,1757,1759],{"id":1758},"flexibility","Flexibility",[307,1761,1762],{},"Serverless platforms support multiple programming languages, enabling developers to choose the language that suits\ntheir project. This flexibility encourages experimentation and innovation.",[350,1764,1766],{"id":1765},"automatic-high-availability","Automatic High Availability",[307,1768,1769],{},"Serverless applications are inherently distributed and most serverless platforms ensure high availability by\nreplicating functions across availability zones. This enhances application reliability without additional\nconfiguration.",[314,1771,1773],{"id":1772},"challenges-and-considerations","Challenges and Considerations",[350,1775,1777],{"id":1776},"cold-starts","Cold Starts",[307,1779,1780],{},"Serverless functions may experience a delay called \"cold start\" when they're invoked for the first time or after a\nperiod of inactivity. This can impact response times, especially for applications with stringent latency\nrequirements.",[350,1782,1784],{"id":1783},"vendor-lock-in","Vendor Lock-In",[307,1786,1787],{},"Adopting serverless computing may tie you to a specific cloud provider's ecosystem and APIs. This can limit\nportability and require adjustments if you decide to switch providers.",[350,1789,1791],{"id":1790},"state-management","State Management",[307,1793,1794],{},"Serverless functions are inherently stateless, which can pose challenges for applications that require persistent\nstate. Techniques like caching, external databases, or managed services can be used to manage state.",[314,1796,1798],{"id":1797},"best-practices-for-serverless-development","Best Practices for Serverless Development",[350,1800,1802],{"id":1801},"granular-functions","Granular Functions",[307,1804,1805],{},"Design functions to be small and focused on a single task. This improves reusability, maintainability and resource\nallocation.",[350,1807,1809],{"id":1808},"use-managed-services","Use Managed Services",[307,1811,1812],{},"Leverage cloud provider services for databases, authentication and storage, reducing the complexity of your\napplication and optimizing costs.",[350,1814,1816],{"id":1815},"optimize-cold-starts","Optimize Cold Starts",[307,1818,1819],{},"Use warm-up techniques, such as periodic pinging of functions, to mitigate cold start delays. Optimize function\ninitialization to reduce cold start impact.",[350,1821,1823],{"id":1822},"monitoring-and-logging","Monitoring and Logging",[307,1825,1826],{},"Implement comprehensive monitoring and logging to track performance, errors and resource usage. This helps in\nidentifying and addressing issues promptly.",[350,1828,1350],{"id":1349},[307,1830,1831],{},"Apply security best practices, such as fine-grained access controls and input validation, to ensure the safety of\nyour serverless functions.",[350,1833,1835],{"id":1834},"serverless-computing-revolutionizes-software-development-with-scalability-and-cost-efficiency-despite-challenges-like-cold-starts-and-vendor-lock-in-adhering-to-best-practices-empowers-developers-to-create-flexible-efficient-applications-shaping-the-future-of-development","Serverless computing revolutionizes software development with scalability and cost-efficiency, despite challenges like cold starts and vendor lock-in. Adhering to best practices empowers developers to create flexible, efficient applications, shaping the future of development.",[307,1837,847],{},{"title":358,"searchDepth":359,"depth":359,"links":1839},[1840,1841,1848,1853],{"id":1728,"depth":359,"text":1729},{"id":1735,"depth":359,"text":1736,"children":1842},[1843,1844,1845,1846,1847],{"id":1227,"depth":368,"text":1228},{"id":1744,"depth":368,"text":1745},{"id":1751,"depth":368,"text":1752},{"id":1758,"depth":368,"text":1759},{"id":1765,"depth":368,"text":1766},{"id":1772,"depth":359,"text":1773,"children":1849},[1850,1851,1852],{"id":1776,"depth":368,"text":1777},{"id":1783,"depth":368,"text":1784},{"id":1790,"depth":368,"text":1791},{"id":1797,"depth":359,"text":1798,"children":1854},[1855,1856,1857,1858,1859,1860],{"id":1801,"depth":368,"text":1802},{"id":1808,"depth":368,"text":1809},{"id":1815,"depth":368,"text":1816},{"id":1822,"depth":368,"text":1823},{"id":1349,"depth":368,"text":1350},{"id":1834,"depth":368,"text":1835},"2023-08-26","Serverless computing and its various possibilities","\u002Fassets\u002Fimages\u002Fblog\u002F260823\u002Ftitle.jpg",{},{"title":214,"description":1862},"yPry6lhooum5mq8mu-3M5dsLwuVDPnraJthYlMCxXLo",{"id":1868,"title":138,"author":1869,"body":1871,"date":2003,"description":2004,"extension":371,"image":2005,"meta":2006,"minRead":969,"navigation":293,"path":139,"seo":2007,"stem":140,"__hash__":2008},"blog\u002Fblog\u002FMachine Vision -Transforming Industries AI.md",{"name":300,"avatar":1870},{"src":302,"alt":300},{"type":304,"value":1872,"toc":1983},[1873,1876,1880,1883,1887,1890,1894,1897,1901,1904,1908,1911,1915,1918,1922,1925,1929,1932,1936,1939,1943,1946,1950,1953,1957,1960,1964,1967,1971,1974,1977,1981],[307,1874,1875],{},"In the realm where cutting-edge technology meets visual perception, Machine Vision stands as a testament to the\npower of artificial intelligence (AI) and image processing. This innovative field is driving remarkable changes\nacross industries, enabling automated visual analysis, interpretation and decision-making. From manufacturing to\nhealthcare and beyond, Machine Vision is reshaping how we perceive and interact with the world. This article\nprovides a comprehensive overview of Machine Vision's significance and impact in today's AI-driven landscape.",[314,1877,1879],{"id":1878},"unveiling-the-core-of-machine-vision","Unveiling the Core of Machine Vision",[307,1881,1882],{},"At its core, Machine Vision seamlessly integrates hardware, software and advanced algorithms to decipher visual\ninformation. The journey from raw data to insightful decisions involves several key steps:",[350,1884,1886],{"id":1885},"_1-capture-and-acquisition","1. Capture and Acquisition",[307,1888,1889],{},"Cameras and sensors capture a wealth of visual data, spanning diverse formats from monochrome images to intricate 3D\nrenderings.",[350,1891,1893],{"id":1892},"_2-preprocessing-excellence","2. Preprocessing Excellence",[307,1895,1896],{},"Raw data often carries imperfections. Machine Vision excels in preprocessing tasks, from noise reduction to contrast\nenhancement, ensuring data purity.",[350,1898,1900],{"id":1899},"_3-feature-extraction","3. Feature Extraction",[307,1902,1903],{},"Extracting salient features from data is crucial. Machine Vision identifies edges, textures, shapes and other\ndistinguishing attributes that form the basis for analysis.",[350,1905,1907],{"id":1906},"_4-decoding-patterns-with-ai","4. Decoding Patterns with AI",[307,1909,1910],{},"Employing AI and machine learning algorithms, patterns are decoded from the extracted features. This process\nfacilitates object identification, categorization and anomaly detection.",[350,1912,1914],{"id":1913},"_5-informed-decision-making","5. Informed Decision-Making",[307,1916,1917],{},"The insights derived from pattern recognition drive decision-making. From pinpointing defects on a manufacturing\nline to steering robotic actions, Machine Vision empowers precision and efficiency.",[314,1919,1921],{"id":1920},"applications-reshaping-industries","Applications Reshaping Industries",[307,1923,1924],{},"Machine Vision's remarkable capabilities extend across sectors, revolutionizing operations and outcomes:",[350,1926,1928],{"id":1927},"_1-manufacturing-mastery","1. Manufacturing Mastery",[307,1930,1931],{},"Production lines are optimized with real-time defect detection, accurate measurements and quality assurance,\nminimizing wastage and enhancing productivity.",[350,1933,1935],{"id":1934},"_2-healthcare-insights","2. Healthcare Insights",[307,1937,1938],{},"In medical imaging, Machine Vision aids in identifying ailments from X-rays, MRIs and more. It contributes to\ncellular analysis and disease diagnosis and even assists during surgeries.",[350,1940,1942],{"id":1941},"_3-automotive-autonomy","3. Automotive Autonomy",[307,1944,1945],{},"The self-driving revolution banks on Machine Vision for environment perception, pedestrian detection and navigation,\nensuring safe and intelligent mobility.",[350,1947,1949],{"id":1948},"_4-retail-revolution","4. Retail Revolution",[307,1951,1952],{},"Automated inventory management becomes a reality with Machine Vision, precisely tracking stocks and streamlining\nreplenishment, ushering in a new era of retail efficiency.",[350,1954,1956],{"id":1955},"_5-agriculture-advancements","5. Agriculture Advancements",[307,1958,1959],{},"Crop monitoring, disease identification and yield estimation benefit from aerial imagery analysis using Machine\nVision, optimizing agricultural practices.",[350,1961,1963],{"id":1962},"_6-security-vigilance","6. Security Vigilance",[307,1965,1966],{},"Surveillance systems harness Machine Vision for anomaly detection, object tracking and public safety, enhancing\nsecurity in an ever-evolving world.",[314,1968,1970],{"id":1969},"frontiers-and-challenges","Frontiers and Challenges",[307,1972,1973],{},"The rapid strides in AI, particularly deep learning, have significantly propelled Machine Vision forward.\nConvolutional Neural Networks (CNNs) have become the cornerstone of image analysis, revolutionizing pattern\nrecognition. Transfer learning, a technique that leverages pre-trained models, has democratized AI adoption and made\nefficient use of limited data.",[307,1975,1976],{},"Yet, challenges remain. Real-world scenarios often introduce complexities like varying lighting conditions and\nocclusions. Researchers are dedicated to building resilient algorithms capable of navigating these hurdles and\nensuring consistent performance.",[350,1978,1980],{"id":1979},"machine-visions-integration-of-ai-powered-sight-is-revolutionizing-industries-by-driving-automation-accuracy-and-efficiency-with-its-expanding-role-set-to-shape-a-future-where-intelligent-visual-perception-fuels-progress","Machine Vision's integration of AI-powered sight is revolutionizing industries by driving automation, accuracy and efficiency, with its expanding role set to shape a future where intelligent visual perception fuels progress.",[307,1982,847],{},{"title":358,"searchDepth":359,"depth":359,"links":1984},[1985,1992,2000],{"id":1878,"depth":359,"text":1879,"children":1986},[1987,1988,1989,1990,1991],{"id":1885,"depth":368,"text":1886},{"id":1892,"depth":368,"text":1893},{"id":1899,"depth":368,"text":1900},{"id":1906,"depth":368,"text":1907},{"id":1913,"depth":368,"text":1914},{"id":1920,"depth":359,"text":1921,"children":1993},[1994,1995,1996,1997,1998,1999],{"id":1927,"depth":368,"text":1928},{"id":1934,"depth":368,"text":1935},{"id":1941,"depth":368,"text":1942},{"id":1948,"depth":368,"text":1949},{"id":1955,"depth":368,"text":1956},{"id":1962,"depth":368,"text":1963},{"id":1969,"depth":359,"text":1970,"children":2001},[2002],{"id":1979,"depth":368,"text":1980},"2023-08-19","Relevance of Machine Vision today","\u002Fassets\u002Fimages\u002Fblog\u002F190823\u002Ftitle.jpg",{},{"title":138,"description":2004},"pY_Gkh7_2mzQZB6-URoGgXuPQgyElJ6_leskAfX8JYA",{"id":2010,"title":206,"author":2011,"body":2013,"date":2129,"description":2130,"extension":371,"image":2131,"meta":2132,"minRead":860,"navigation":293,"path":207,"seo":2133,"stem":208,"__hash__":2134},"blog\u002Fblog\u002FSemantic Web A Smarter Future.md",{"name":300,"avatar":2012},{"src":302,"alt":300},{"type":304,"value":2014,"toc":2111},[2015,2018,2022,2025,2028,2032,2035,2039,2042,2046,2049,2053,2056,2060,2063,2067,2070,2074,2077,2081,2084,2088,2091,2095,2098,2102,2105,2109],[307,2016,2017],{},"In the rapidly evolving landscape of the digital age, the Semantic Web stands as a groundbreaking concept that has\nthe potential to revolutionize the way we interact with and understand information on the internet. Conceived by Sir\nTim Berners-Lee, the inventor of the World Wide Web, the Semantic Web isn't just an advancement in technology, it is\na paradigm shift that promises to bring about more meaningful connections and insights from the vast sea of data\nthat characterizes our online world.",[314,2019,2021],{"id":2020},"understanding-the-semantic-web-beyond-keywords-and-links","Understanding the Semantic Web: Beyond Keywords and Links",[307,2023,2024],{},"The traditional web, often referred to as the \"Web of Documents,\" relies heavily on keywords and links to connect\ndifferent web pages. This approach has certainly served its purpose in making information accessible, but it lacks\nthe depth and context that human intelligence brings to understanding data. The Semantic Web, on the other hand,\naspires to create a \"Web of Data,\" where information is not only presented in a human-readable form but is also\nunderstandable by machines.",[307,2026,2027],{},"At its core, the Semantic Web aims to imbue web content with meaning through the use of metadata, ontologies and\nsemantic annotations. Metadata provides additional information about a resource, such as its author, creation date\nor location. Ontologies, which serve as structured vocabularies, define relationships between different terms and\nconcepts. Semantic annotations involve adding contextual information to content, enabling machines to comprehend the\ncontext and purpose of the information.",[314,2029,2031],{"id":2030},"building-blocks-of-the-semantic-web-rdf-owl-and-sparql","Building Blocks of the Semantic Web: RDF, OWL and SPARQL",[307,2033,2034],{},"The Semantic Web is built upon a trio of essential technologies:",[350,2036,2038],{"id":2037},"_1-resource-description-framework-rdf","1. Resource Description Framework (RDF)",[307,2040,2041],{},"RDF is a framework for expressing relationships between resources in a way that both humans and machines can\nunderstand. It uses a simple subject-predicate-object structure, akin to a sentence, to create statements about\nresources. These statements, known as triples, form the backbone of semantic information.",[350,2043,2045],{"id":2044},"_2-web-ontology-language-owl","2. Web Ontology Language (OWL)",[307,2047,2048],{},"OWL provides a means to define ontologies, which are essentially vocabularies that specify relationships and\nconstraints within a specific domain. OWL allows developers to create hierarchies, define classes and establish\nrelationships between different concepts, enabling richer and more complex representations of data.",[350,2050,2052],{"id":2051},"_3-sparql","3. SPARQL",[307,2054,2055],{},"SPARQL is a query language used to retrieve and manipulate data stored in RDF format. It empowers users to ask\nspecific questions about the data by formulating queries that target relationships and patterns within the triples.\nSPARQL is akin to SQL for traditional relational databases, but it operates on semantic data.",[314,2057,2059],{"id":2058},"semantic-web-applications-realizing-the-vision","Semantic Web Applications: Realizing the Vision",[307,2061,2062],{},"The promise of the Semantic Web extends to numerous domains, each benefiting from its ability to create meaningful\nconnections between data points. Here are a few notable applications:",[350,2064,2066],{"id":2065},"_1-knowledge-representation","1. Knowledge Representation",[307,2068,2069],{},"The Semantic Web can serve as a global knowledge repository, enabling the organization and linking of information\nfrom various sources. This has implications for fields like education, research and even artificial intelligence, as\nmachines can leverage this structured knowledge to enhance their understanding.",[350,2071,2073],{"id":2072},"_2-search-and-discovery","2. Search and Discovery",[307,2075,2076],{},"Search engines on the Semantic Web can provide more accurate and contextually relevant results. By comprehending the\nintent behind a user's query, these engines can surface information that matches the user's needs more precisely.",[350,2078,2080],{"id":2079},"_3-e-commerce","3. E-Commerce",[307,2082,2083],{},"The Semantic Web can enhance online shopping experiences by enabling machines to understand product specifications,\nuser preferences and compatibility between products. This can lead to more personalized recommendations and\nstreamlined purchasing processes.",[350,2085,2087],{"id":2086},"_4-healthcare","4. Healthcare",[307,2089,2090],{},"In the realm of healthcare, the Semantic Web can facilitate the integration and sharing of medical data, allowing\nresearchers, clinicians and patients to access comprehensive and accurate information for diagnosis and treatment.",[314,2092,2094],{"id":2093},"challenges-and-future-prospects","Challenges and Future Prospects",[307,2096,2097],{},"While the vision of the Semantic Web is tantalizing, its widespread adoption has faced challenges. Creating\nconsistent ontologies across various domains can be complex and there's a need for universal standards to ensure\ninteroperability between different semantic data sources. Additionally, the sheer volume of data available on the\nweb presents scalability and computational challenges in terms of querying and processing.",[314,2099,2101],{"id":2100},"ai-and-semantic-web","AI and Semantic Web",[307,2103,2104],{},"Looking ahead, advancements in artificial intelligence and machine learning could play a pivotal role in overcoming\nsome of these hurdles. As machines become more adept at understanding context and semantics, the barriers to\nachieving a truly interconnected Semantic Web could be gradually dismantled.",[350,2106,2108],{"id":2107},"the-semantic-webs-transformative-capacity-to-imbue-data-with-deeper-meaning-and-enable-intricate-connections-has-the-potential-to-reshape-how-we-engage-with-and-harness-the-internets-vast-capabilities","The Semantic Web's transformative capacity to imbue data with deeper meaning and enable intricate connections has the potential to reshape how we engage with and harness the internet's vast capabilities.",[307,2110,847],{},{"title":358,"searchDepth":359,"depth":359,"links":2112},[2113,2114,2119,2125,2126],{"id":2020,"depth":359,"text":2021},{"id":2030,"depth":359,"text":2031,"children":2115},[2116,2117,2118],{"id":2037,"depth":368,"text":2038},{"id":2044,"depth":368,"text":2045},{"id":2051,"depth":368,"text":2052},{"id":2058,"depth":359,"text":2059,"children":2120},[2121,2122,2123,2124],{"id":2065,"depth":368,"text":2066},{"id":2072,"depth":368,"text":2073},{"id":2079,"depth":368,"text":2080},{"id":2086,"depth":368,"text":2087},{"id":2093,"depth":359,"text":2094},{"id":2100,"depth":359,"text":2101,"children":2127},[2128],{"id":2107,"depth":368,"text":2108},"2023-08-12","A brief description of semantic web","\u002Fassets\u002Fimages\u002Fblog\u002F120823\u002Ftitle.jpg",{},{"title":206,"description":2130},"twahFbZU4nAlw67iRovUpR05sATgAOA--5KLluQG72I",{"id":2136,"title":26,"author":2137,"body":2139,"date":2301,"description":2302,"extension":371,"image":2303,"meta":2304,"minRead":2305,"navigation":293,"path":27,"seo":2306,"stem":28,"__hash__":2307},"blog\u002Fblog\u002F52 Articles, 7 Books and a Pandemic.md",{"name":300,"avatar":2138},{"src":302,"alt":300},{"type":304,"value":2140,"toc":2289},[2141,2144,2147,2151,2154,2157,2160,2163,2167,2170,2173,2190,2196,2200,2203,2206,2212,2216,2219,2223,2226,2229,2246,2249,2253,2256,2259,2263,2266,2269,2273,2276,2282,2286],[307,2142,2143],{},"It has been more than a year since this whole debacle began and tipped the balance for most of us. Working from\nhome, masks and lock-downs have taken a toll, to say the least.",[307,2145,2146],{},"But, eventually we all had to come out of the shock and rearrange our lives to the new normal. On the other hand, we\nalso had time, to find new hobbies, embrace existing ones, learn something new, etc. My method of coping primarily\ninvolved writing articles, reading the books that I never thought I had time to before and learning some new\ntechnologies.",[314,2148,2150],{"id":2149},"writing-articles-sort-of","Writing Articles. Sort of...",[307,2152,2153],{},"On April 6, 2020, after the start of lock-down in India, I published my first article on LinkedIn. Then another on\nthe next week and then another and so on, which of course lead to the 52 (53 including this one) articles in the\nend.",[307,2155,2156],{},"To be honest, I thought, I may drop this one article per week like any other \"new year resolution\" and just move on.\nBut somehow, I did not. My team, especially my manager, was one of the reason I had started this and went on.\nWithout the feedback and encouragement from them, my friends and my LinkedIn network, this would not have been\npossible.",[307,2158,2159],{},"I think, going forward, even if the frequency of publishing articles might get reduced, I am not planning to stop.\nGranted, these articles were mostly comprised of content from other articles, blogs and YouTube videos, I had to do\nlittle research on most of these topics. But, by doing this and engaging myself, I was guaranteed to learn something\nnew every single week.",[307,2161,2162],{},"At first, it was very easy to find the topics for the articles. But I too faced the \"writer's block\" - if I may be so\nbold to call myself a writer, even though there there were plenty of topics - old and new, to write about. But\nsomehow, every week, I turned up with a topic resulting from random web browsing or conversation with my friends.",[314,2164,2166],{"id":2165},"building-a-personal-website","Building a personal website.",[307,2168,2169],{},"Even before all of this, I was working on building myself an online portfolio. After all, I am a software developer,\nwho happens to know how to build a website and have worked on several. This would be a testimony of my ability to do\nthe same.",[307,2171,2172],{},"I would be lying if I said I had done it all by myself. So many people helped me create and modify the design,\nchoosing the technologies to build, where to host etc. I used GitHub Pages and Heroku at first and eventually, as\nper suggestion from most of my friends and I decided to buy a domain. I did get help in choosing the best possible\noption for that as well.",[307,2174,2175,2176,2183,2184,2189],{},"And just like that ",[2177,2178,2182],"a",{"href":2179,"rel":2180},"https:\u002F\u002Faghiljose.com",[2181],"nofollow","AghilJose.com"," came to existence and my ",[2177,2185,2188],{"href":2186,"rel":2187},"https:\u002F\u002Faghiljose.com\u002Fblog",[2181],"personal blog"," - which has all\nthe articles that I publish here on LinkedIn.",[307,2191,2192],{},[710,2193],{"alt":2194,"src":2195},"site","\u002Fassets\u002Fimages\u002Fblog\u002F060421\u002Fsite.jpg",[314,2197,2199],{"id":2198},"assembling-a-custom-pc","Assembling a custom PC.",[307,2201,2202],{},"I have had used many desktops and laptops in the past, but not once anything with the components which I have chosen\nand built from scratch. It was always a laptop on sale or a configuration which was determined to be the a good\nbuild, by somebody else. Now, I had time (a lot of it) and money to do so.",[307,2204,2205],{},"So as a result of a month long research and help, I was able to buy necessary components and build my desktop PC\nmyself.",[307,2207,2208],{},[710,2209],{"alt":2210,"src":2211},"pcpic","\u002Fassets\u002Fimages\u002Fblog\u002F060421\u002Fpcpic.jpg",[314,2213,2215],{"id":2214},"learning","Learning",[307,2217,2218],{},"As long as there are open online course providers to get me courses for free or on a good deal, I was and am ready to\nlearn something new anytime. YouTube, LinkedIn Learning and Udemy were extremely helpful in fulfilling these\nrequirements.",[314,2220,2222],{"id":2221},"books-books-books","Books. Books. Books...",[307,2224,2225],{},"Reading to me was habit, that eventually turned in to a hobby, with time. And now, I had lots of time. I am proud to\nsay that, I changed the hobby to a routine now. For most of last year, I was busy building my PC and my website\namong other things. But now, I find at least, 1 hour to read, everyday. Just this year, I was able to read 6 (7\nincluding last year) books and on my 7th book this year.",[307,2227,2228],{},"Some of the books include",[769,2230,2231,2234,2237,2240,2243],{},[772,2232,2233],{},"Sapiens – A Brief History of Humankind, Yuval Noah Harari.",[772,2235,2236],{},"Homo Deus, Yuval Noah Harari.",[772,2238,2239],{},"21 Lessons for the 21st Century, Yuval Noah Harari.",[772,2241,2242],{},"Poor Economics, Abhijit Banerjee and Esther Duflo.",[772,2244,2245],{},"Art of War, Sun Tzu.",[307,2247,2248],{},"All of these insightful books has helped me to gain a new outlook towards the world.",[314,2250,2252],{"id":2251},"new-networks","New Networks",[307,2254,2255],{},"During this time, I was able to connect, interact and talk with a lot of remarkable people on LinkedIn. These\nconnections eventually lead to fruitful discussions, lot of webinars and helped me to learn many things that I would\notherwise not have.",[307,2257,2258],{},"It helped me gain more insights to the realms of Extended Reality(XR), automotive industry and computer hardwares to\nname a few.",[314,2260,2262],{"id":2261},"take-care-of-yourselves","Take care of yourselves.",[307,2264,2265],{},"All these pandemic inevitably got me thinking about my own mortality and got me to take care of myself more. So many\npeople have talked about this on various platforms and especially on LinkedIn and I do agree with them. Everybody\nhas to take care of themselves for a change. Sleepless nights and working longer hours is not something to be\nappreciated. Everything has its limits and everybody needs a break. After all, we are still human beings. Getting\ngood sleep, working out regularly and eating healthy food should also be part of the new normal(at least, it is my\nnew normal).",[307,2267,2268],{},"Almost everybody goes through the imposter syndrome(Again, so many have spoken about this). You may think you are not\nas good as someone else. Trust me, I have been there. Well guess what? There was, is and will be someone better at\nsomething that you do (not necessarily always and at everything). But what we can do (or what i do), is try to learn\nsomething new whenever possible and better ourselves gradually. Everybody has their own pace.",[314,2270,2272],{"id":2271},"the-world-is-not-in-your-books-and-maps-its-out-there","The world is not in your books and maps, it's out there.",[307,2274,2275],{},"And when finally when the lock-downs were over and it was relatively safe to go out, I was lucky to go on some short\ntrips with my friends as well.",[307,2277,2278],{},[710,2279],{"alt":2280,"src":2281},"treesandlake","\u002Fassets\u002Fimages\u002Fblog\u002F060421\u002Ftreesandlake.jpg",[350,2283,2285],{"id":2284},"the-pandemic-is-still-not-over-and-we-still-cannot-let-our-guard-down-so-until-things-get-back-to-what-it-was-also-after-hopefully-sooner-than-later-take-care-of-yourselves-learn-and-explore-new-things-and-places-and-stay-safe","The pandemic is still not over and we still cannot let our guard down. So, until things get back to what it was (also after), hopefully sooner than later, take care of yourselves, learn and explore new things and places and stay safe.",[307,2287,2288],{},"Disclaimer : The views and opinions expressed in the article belong solely to\nthe author, and not necessarily to the author's employer, organisation,\ncommittee or other group or individual.",{"title":358,"searchDepth":359,"depth":359,"links":2290},[2291,2292,2293,2294,2295,2296,2297,2298],{"id":2149,"depth":359,"text":2150},{"id":2165,"depth":359,"text":2166},{"id":2198,"depth":359,"text":2199},{"id":2214,"depth":359,"text":2215},{"id":2221,"depth":359,"text":2222},{"id":2251,"depth":359,"text":2252},{"id":2261,"depth":359,"text":2262},{"id":2271,"depth":359,"text":2272,"children":2299},[2300],{"id":2284,"depth":368,"text":2285},"2021-04-06","A year of blogs, reading and the pandemic.","\u002Fassets\u002Fimages\u002Fblog\u002F060421\u002Ftitle.jpg",{},7,{"title":26,"description":2302},"eydTJUsU9NqlHRI8ZbTSyvGvyA20JyDfBWkhRqokc8M",{"id":2309,"title":58,"author":2310,"body":2312,"date":2449,"description":2450,"extension":371,"image":2451,"meta":2452,"minRead":368,"navigation":293,"path":59,"seo":2453,"stem":60,"__hash__":2454},"blog\u002Fblog\u002FComputational Fluid Dynamics.md",{"name":300,"avatar":2311},{"src":302,"alt":300},{"type":304,"value":2313,"toc":2439},[2314,2317,2320,2323,2343,2346,2350,2367,2371,2388,2391,2402,2405,2409,2412,2416,2419,2423,2426,2430,2433,2437],[307,2315,2316],{},"Computational Fluid Dynamics (CFD) provides a qualitative prediction of fluid\nflows by means of mathematical modelling, numerical methods and software\ntools. CFD enables scientists and engineers to perform numerical experiments\n(i.e., computer simulations) in a virtual flow laboratory.",[307,2318,2319],{},"So, why make use of this technology?",[307,2321,2322],{},"Computational fluid dynamics and numerical simulations will help:",[769,2324,2325,2328,2331,2334,2337,2340],{},[772,2326,2327],{},"Architects to design comfortable and safe living environments.",[772,2329,2330],{},"Designers of vehicles to improve the aerodynamic characteristics.",[772,2332,2333],{},"Chemical engineers to maximize the yield from their equipment.",[772,2335,2336],{},"Surgeons to cure arterial diseases (computational hemodynamics).",[772,2338,2339],{},"Meteorologists to forecast the weather and warn of natural disasters.",[772,2341,2342],{},"Safety experts to reduce health risks from radiation and other hazards.",[307,2344,2345],{},"To be clear, CFD does not replace the measurements completely and it is\nlikely to remain that way for some time. But, the amount of experimentation\nand the overall cost can be significantly reduced. Let us consider the\ndifferences between experiments and simulations.",[314,2347,2349],{"id":2348},"experiments","Experiments",[769,2351,2352,2355,2358,2361,2364],{},[772,2353,2354],{},"Expensive.",[772,2356,2357],{},"Sequential.",[772,2359,2360],{},"Single-purpose.",[772,2362,2363],{},"Difficult to transport.",[772,2365,2366],{},"Slow.",[314,2368,2370],{"id":2369},"simulations","Simulations",[769,2372,2373,2376,2379,2382,2385],{},[772,2374,2375],{},"Cheaper.",[772,2377,2378],{},"Parallel.",[772,2380,2381],{},"Multi-purpose.",[772,2383,2384],{},"Portable.",[772,2386,2387],{},"Faster.",[307,2389,2390],{},"We should also keep in mind that the results of CFD simulations are not yet\n100% accurate. These are because of the following reasons:",[769,2392,2393,2396,2399],{},[772,2394,2395],{},"The input data may involve too much guessing and might not be precise.",[772,2397,2398],{},"The accuracy of the results will depend on available computing power.",[772,2400,2401],{},"The mathematical model of the problem at hand might be inadequate.",[307,2403,2404],{},"CFD uses a computer to solve the mathematical equations for the problem at\nhand. The main components of a CFD process includes the following:",[314,2406,2408],{"id":2407},"_1-human-beings","1. Human beings",[307,2410,2411],{},"An analyst or analysts, who states the problem to be solved. Another human\nbeing or human beings, will also be involved to inspect and interpret the\nsimulations results. The one who states the problem and the one who inspect\nand interpret the results should not necessarily be different person.",[314,2413,2415],{"id":2414},"_2-scientific-knowledge","2. Scientific knowledge",[307,2417,2418],{},"The models and methods which are expressed mathematically.",[314,2420,2422],{"id":2421},"_3-software","3. Software",[307,2424,2425],{},"The computer code which embodies the scientific knowledge and provides\ndetailed algorithms for the solution.",[314,2427,2429],{"id":2428},"_4-hardware","4. Hardware",[307,2431,2432],{},"The physical computer hardwares which will perform the actual calculations.",[350,2434,2436],{"id":2435},"cfd-is-a-highly-interdisciplinary-research-area-which-lies-at-the-interface-of-physics-applied-mathematics-and-computer-science","CFD is a highly interdisciplinary research area which lies at the interface of physics, applied mathematics and computer science.",[307,2438,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":2440},[2441,2442,2443,2444,2445,2446],{"id":2348,"depth":359,"text":2349},{"id":2369,"depth":359,"text":2370},{"id":2407,"depth":359,"text":2408},{"id":2414,"depth":359,"text":2415},{"id":2421,"depth":359,"text":2422},{"id":2428,"depth":359,"text":2429,"children":2447},[2448],{"id":2435,"depth":368,"text":2436},"2021-03-27","CFD Simulations and its advatanges of classical experiments.","\u002Fassets\u002Fimages\u002Fblog\u002F290321\u002Ftitle.jpg",{},{"title":58,"description":2450},"sh1tjQgy8tX5L8uV8n_ib82Dhqa7UoBqobA-80lwDO0",{"id":2456,"title":210,"author":2457,"body":2459,"date":2529,"description":2530,"extension":371,"image":2531,"meta":2532,"minRead":969,"navigation":293,"path":211,"seo":2533,"stem":212,"__hash__":2534},"blog\u002Fblog\u002FSensor Fusion.md",{"name":300,"avatar":2458},{"src":302,"alt":300},{"type":304,"value":2460,"toc":2520},[2461,2464,2467,2471,2474,2478,2481,2484,2487,2490,2493,2497,2500,2504,2507,2511,2514,2518],[307,2462,2463],{},"Sensor fusion is combining of sensory data or data derived from disparate\nsources such that the resulting information has less uncertainty than would be\npossible when these sources were used individually. The resulting model is\nmore accurate because it balances the strengths of the different sensors.\nSystems can then use the information provided through sensor fusion to support\nmore-intelligent actions.",[307,2465,2466],{},"The data sources for a fusion process are not specified to originate from\nidentical sensors. One can distinguish direct fusion, indirect fusion and\nfusion of the outputs of the former two.",[314,2468,2470],{"id":2469},"direct-fusion","Direct fusion",[307,2472,2473],{},"Direct fusion is the fusion of sensor data from a set of heterogeneous or\nhomogeneous sensors, soft sensors and history values of sensor data.",[314,2475,2477],{"id":2476},"indirect-fusion","Indirect fusion",[307,2479,2480],{},"Indirect fusion uses information sources like “a priori” knowledge about the\nenvironment and human input.",[307,2482,2483],{},"Each sensor type has inherent strengths and weaknesses. Radars are very strong\nat accurately determining distance and speed - even in challenging weather\nconditions - but cannot read street signs or distinguish the colour of a\nstoplight. Cameras do very well reading signs or classifying objects, such as\npedestrians, bicyclists or other vehicles. However, they can easily be blinded\nby dirt, sun, rain, snow or darkness. LiDARs can accurately detect objects,\nbut they do not have the range or affordability of cameras or radar.",[307,2485,2486],{},"Sensor fusion brings the data from each of these sensor types together, using\nsoftware algorithms to provide the most comprehensive and therefore accurate,\nenvironmental model possible. It can also correlate data pulled from inside\nthe cabin, through a process known as interior and exterior sensor fusion.",[307,2488,2489],{},"A vehicle could use sensor fusion to fuse information from multiple sensors of\nthe same type as well - for instance, radar. This improves perception by\ntaking advantage of partially overlapping fields of view. As multiple radars\nobserve the environment around a vehicle, more than one sensor will detect\nobjects at the same time. Interpreted through perception software, detections\nfrom those multiple sensors can be overlapped or fused, increasing the\ndetection probability and reliability of objects around the vehicle and\nyielding a more accurate and reliable representation of the environment.",[307,2491,2492],{},"It goes without saying, the more sensors on a vehicle, the more challenging\nfusion becomes, but also the more opportunity exists to improve performance.\nThe process can be done more efficiently while making use of a centralised\ndomain controller. Some of the benefits include:",[314,2494,2496],{"id":2495},"_1-reduced-sensor-sizes","1. Reduced sensor sizes",[307,2498,2499],{},"Not so long ago, the processing power to analyse sensor data to determine and\ntrack objects has been packaged with the cameras or radars. With a centralised\ndomain controller present, sensor data can be collected from each sensor and\nfused within, which will result in reduced sensor sizes as the sensors now\ndoes not need to process the information that they collect.",[314,2501,2503],{"id":2502},"_2-increased-data-sharing","2. Increased data sharing",[307,2505,2506],{},"With traditional systems, smart sensors process environmental inputs\nindependently, which means any decisions made when using the information are\nonly as good as what that individual sensor can see. Now, all the data coming\nfrom the sensors is shared centrally, there is more opportunity for active\nsafety applications in the domain controller to make use of it. By applying\nArtificial Intelligence (AI) tools, useful information could be extracted that\nwould otherwise be discarded.",[314,2508,2510],{"id":2509},"_3-reduced-latency","3. Reduced Latency",[307,2512,2513],{},"The domain controller does not have to wait for the sensor to process data\nbefore acting upon it. This could help in increased speed in response and thus\nreduced latency. This will be a huge advantage in situations where even a\nfraction of a second matters.",[350,2515,2517],{"id":2516},"by-embracing-a-vehicle-architecture-that-allows-for-a-high-number-of-sensors-and-then-synthesizes-the-data-through-sensor-fusion-vehicles-can-become-smarter-faster","By embracing a vehicle architecture that allows for a high number of sensors and then synthesizes the data through sensor fusion, vehicles can become smarter, faster.",[307,2519,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":2521},[2522,2523,2524,2525,2526],{"id":2469,"depth":359,"text":2470},{"id":2476,"depth":359,"text":2477},{"id":2495,"depth":359,"text":2496},{"id":2502,"depth":359,"text":2503},{"id":2509,"depth":359,"text":2510,"children":2527},[2528],{"id":2516,"depth":368,"text":2517},"2021-03-21","The method and advantages of using multiple sensors together.","\u002Fassets\u002Fimages\u002Fblog\u002F220321\u002Ftitle.jpg",{},{"title":210,"description":2530},"ZU20BX1gOpSgq8zZV3ewnUBgJ8RaBYS7ot9COTQZgsc",{"id":2536,"title":122,"author":2537,"body":2539,"date":2636,"description":2637,"extension":371,"image":2638,"meta":2639,"minRead":860,"navigation":293,"path":123,"seo":2640,"stem":124,"__hash__":2641},"blog\u002Fblog\u002FInternet of Behaviours.md",{"name":300,"avatar":2538},{"src":302,"alt":300},{"type":304,"value":2540,"toc":2630},[2541,2544,2547,2550,2561,2564,2575,2578,2592,2595,2598,2601,2605,2608,2611,2614,2618,2621,2624,2628],[307,2542,2543],{},"By 2023, it is predicted that the individual activities of 40% of the global\npopulation will be tracked digitally in order to influence their behaviour.\nThe Internet of Behaviours (IoB) might challenge what it means to be human in\nthe digital world.",[307,2545,2546],{},"The Internet of Behaviours extends from the Internet of Things (IoT), the\ninterconnection of devices that results in a vast variety of new data sources.\nA single device, like a smart phone, can track your online movements as well\nas your real-life geographic position. It is not difficult for companies to\nlink your smart phone with your laptop, your in-home voice assistant, your\nhouse or car cameras and maybe your cell phone records. Suddenly, companies\ncan know a lot more about you - your interests, dislikes, the way you vote and\nthe way you purchase.",[307,2548,2549],{},"Companies are increasingly using such information to inform how they sell, but\nit is not all targeted advertising. Data reaped from the IoT can be used for\nother reasons:",[769,2551,2552,2555,2558],{},[772,2553,2554],{},"Health providers can measure the activation and engagement efforts of\npatients.",[772,2556,2557],{},"Organizations can test the effectiveness of their campaigns, both\ncommercial and non-profit.",[772,2559,2560],{},"Policymakers could even personalize content, affecting laws and current\nprograms.",[307,2562,2563],{},"Companies using the IoT to get us to change our behaviours is not really about\nthe “things” at all. As the IoT links people with their actions, we have\nverged into the Internet of Behaviour. Consider the IoB a combination of three\nfields:",[769,2565,2566,2569,2572],{},[772,2567,2568],{},"Technology.",[772,2570,2571],{},"Data analytics.",[772,2573,2574],{},"Behavioural science.",[307,2576,2577],{},"We can break behavioural science into four areas we consider when we use\ntechnology:",[769,2579,2580,2583,2586,2589],{},[772,2581,2582],{},"Emotions.",[772,2584,2585],{},"Decisions.",[772,2587,2588],{},"Augmentations.",[772,2590,2591],{},"Companionship..",[307,2593,2594],{},"As companies learn more about us (the IoT), they can affect our behaviours.\nConsider a health app on your smartphone that tracks your diet, sleep\npatterns, heart rate, or blood sugar levels. The app can alert you to adverse\nsituations and suggest behaviour modifications towards a more positive or\ndesired outcome.",[307,2596,2597],{},"For now, companies mostly use the IoT and IoB to observe and attempt to change\nour behaviour to achieve their desired goal—to purchase, typically.",[307,2599,2600],{},"Marketers and behaviour scientists tend to agree that this personalization is\nkey to a service’s effectiveness. The more effective a service, the more a\ncustomer will continue to engage with it, and even alter their behaviour\nbecause of it. Understanding that this personalization provides value to us,\ncustomers might still avoid it because it feels creepy. This psychological\ndiscomfort can cause us to avoid it, a tendency known as the ostrich effect.",[314,2602,2604],{"id":2603},"value-for-individual-gain-for-company","Value for individual, gain for company",[307,2606,2607],{},"The IoB influences consumer choice, but it also redesigns the value chain.\nWhile a majority of consumers indicate unhappiness at giving away their data\nfor free, many are satisfied with doing so as long as it brings them an added\nvalue.",[307,2609,2610],{},"Pulling from the IoT, insurance and banking companies can provide data-driven\nvalue. Optimize your individual premium based on health habits or a clean\ndriving record. Nudge you towards more saving, investing, or other long-term\nfinancial goals.",[307,2612,2613],{},"Also, the health app that tracks our diet, sleep, heart rate and blood sugar\nmight prompt us into certain behaviours, like losing weight or going on a\ndiet. Without proper medical guidance, we may alter our behaviour too much or\ntoo aggressively. But we must also keep in mind that, the apps we use to\nassist us are commercial, so their health provenance is dubious and they have\ntheir own goals: sell.",[314,2615,2617],{"id":2616},"security-and-privacy-concerns","Security and Privacy Concerns",[307,2619,2620],{},"The IoT itself is not inherently problematic. A lot of people like having\ntheir devices synced and get benefits and convenience from this setup.\nInstead, the concern is how we gather, navigate and use the data, particularly\nat scale. We are now starting to understand this problem.",[307,2622,2623],{},"It is not just the devices themselves. Behind the scenes, many companies share\nor sell data across company lines or with other subsidiaries. They continue to\nacquire software that potentially brings a user of a single app into their\nentire online ecosystem, frequently without our permission. This presents\nsignificant security and legal risks and there is little legal protection in\nplace for these concerns.",[350,2625,2627],{"id":2626},"the-iot-surely-converts-data-to-information-but-it-is-too-early-to-know-whether-the-iob-can-translate-knowledge-of-us-into-real-wisdom","The IoT surely converts data to information. But it is too early to know whether the IoB can translate knowledge of us into real wisdom.",[307,2629,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":2631},[2632,2633],{"id":2603,"depth":359,"text":2604},{"id":2616,"depth":359,"text":2617,"children":2634},[2635],{"id":2626,"depth":368,"text":2627},"2021-03-12","A sneak peek into the Internet of Behaviour.","\u002Fassets\u002Fimages\u002Fblog\u002F150321\u002Ftitle.jpg",{},{"title":122,"description":2637},"MR7nCfkr4k9tSf1Xw3CUydDMZSHFDRu-IV0UPwgxZEI",{"id":2643,"title":38,"author":2644,"body":2646,"date":2770,"description":2771,"extension":371,"image":2772,"meta":2773,"minRead":969,"navigation":293,"path":39,"seo":2774,"stem":40,"__hash__":2775},"blog\u002Fblog\u002FAmbient Intelligence.md",{"name":300,"avatar":2645},{"src":302,"alt":300},{"type":304,"value":2647,"toc":2761},[2648,2651,2654,2658,2661,2665,2668,2672,2675,2679,2682,2686,2689,2692,2706,2709,2712,2726,2729,2732,2735,2755,2759],[307,2649,2650],{},"Ambient Intelligence or AmI refers to electronic environments that are\nresponsive and sensitive to the presence of people. Ambient intelligence would\nallow devices to work in concert to support people in carrying out everyday\nactivities in an intuitive way using information and intelligence that is\nhidden in the network connecting these devices.",[307,2652,2653],{},"The ambient intelligence paradigm builds upon ubiquitous computing, profiling,\ncontext awareness and human-centric computer interaction design. They are\ncharacterized as the following.",[314,2655,2657],{"id":2656},"_1-embedded","1. Embedded",[307,2659,2660],{},"Many networks are integrated into the environment.",[314,2662,2664],{"id":2663},"_2-context-aware","2. Context aware",[307,2666,2667],{},"These devices can recognize you and your situational context.",[314,2669,2671],{"id":2670},"_3-personalized","3. Personalized",[307,2673,2674],{},"They can be tailored to your needs",[314,2676,2678],{"id":2677},"_4-anticipatory","4. Anticipatory",[307,2680,2681],{},"They can anticipate your desires without conscious mediation.",[314,2683,2685],{"id":2684},"_5-adaptive","5. Adaptive",[307,2687,2688],{},"They can change in response to you.",[307,2690,2691],{},"Typical contexts of ambient intelligence work environment may include:",[769,2693,2694,2697,2700,2703],{},[772,2695,2696],{},"Home.",[772,2698,2699],{},"Work spaces.",[772,2701,2702],{},"Public spaces.",[772,2704,2705],{},"Hospital environments.",[307,2707,2708],{},"In late 1990s interest in user experience grew as the increasing number of\ndigital products and services were difficult use or even understand. User\nExperience Design emerged as a result to create new technologies and media\naround the user’s personal experience. Ambient Intelligence concentrates on\nuser-centered design. User is placed in the centre of the design activity and\nasked to give feedback through specific user evaluations and tests. This will\nhelp improve the design or sometimes, co-create the design with the designer\nor with other users.",[307,2710,2711],{},"The existence of certain unobtrusive, user-friendly technologies are required\nfor the Ambient Intelligence to exist. These include:",[769,2713,2714,2717,2720,2723],{},[772,2715,2716],{},"Miniaturization.",[772,2718,2719],{},"Nanotechnology.",[772,2721,2722],{},"Smart-devices.",[772,2724,2725],{},"Human-centric computer interfaces.",[307,2727,2728],{},"These systems and devices need to operate through a seamless communication and\ncomputing infrastructure – which have the characteristics such as\nservice-oriented architecture and interoperability. To implement ambient\nintelligence dynamic and massively distributed device networks, which are easy\nto control and program, these systems and devices must also be dependable and\nsecure. This could be achieved through self-testing and self-repairing\nsoftware and privacy ensuring technology.",[307,2730,2731],{},"Any immersive, personalized, context-aware and anticipatory characteristics\nbrings up societal, political and cultural concerns about the loss of privacy.\nSeveral research groups and communities are investigating the socioeconomic,\npolitical and cultural aspects of ambient intelligence.",[307,2733,2734],{},"The ISTAG advisory group suggests that the following characteristics will\npermit the societal acceptance of ambient intelligence. Ambient intelligence\nshould:",[769,2736,2737,2740,2743,2746,2749,2752],{},[772,2738,2739],{},"Facilitate human contact.",[772,2741,2742],{},"Be oriented towards community and cultural enhancement.",[772,2744,2745],{},"Help to build knowledge and skills for work, better quality of work,\ncitizenship and consumer choice.",[772,2747,2748],{},"Inspire trust and confidence.",[772,2750,2751],{},"Be consistent with long term sustainability—personal, societal and\nenvironmental—and with lifelong learning.",[772,2753,2754],{},"Be made easy to live with and controllable by ordinary people.",[350,2756,2758],{"id":2757},"as-a-result-of-maturing-ami-research-the-resulting-technologies-promise-to-revolutionize-daily-human-life-by-making-peoples-surroundings-flexible-and-adaptive","As a result of maturing AmI research, the resulting technologies promise to revolutionize daily human life by making people’s surroundings flexible and adaptive.",[307,2760,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":2762},[2763,2764,2765,2766,2767],{"id":2656,"depth":359,"text":2657},{"id":2663,"depth":359,"text":2664},{"id":2670,"depth":359,"text":2671},{"id":2677,"depth":359,"text":2678},{"id":2684,"depth":359,"text":2685,"children":2768},[2769],{"id":2757,"depth":368,"text":2758},"2021-03-07","A small introduction to the developing concept of Ambient Intelligence.","\u002Fassets\u002Fimages\u002Fblog\u002F080321\u002Ftitle.jpg",{},{"title":38,"description":2771},"XLxcQFFq5wQh3IFi_t2QRI4zFHC2LJIN7a-Xd9XYIMQ",{"id":2777,"title":186,"author":2778,"body":2780,"date":2866,"description":2867,"extension":371,"image":2868,"meta":2869,"minRead":2305,"navigation":293,"path":187,"seo":2870,"stem":188,"__hash__":2871},"blog\u002Fblog\u002FQuantum Cryptography.md",{"name":300,"avatar":2779},{"src":302,"alt":300},{"type":304,"value":2781,"toc":2863},[2782,2785,2788,2791,2794,2797,2800,2803,2806,2809,2812,2815,2818,2821,2824,2827,2830,2833,2836,2839,2842,2845,2848,2851,2854,2857,2861],[307,2783,2784],{},"Quantum cryptography, also called quantum encryption, applies principles of\nquantum mechanics to encrypt messages in a way that it is never read by anyone\noutside of the intended recipient. It takes advantage of quantum’s multiple\nstates, coupled with its \"no change theory\", which means it cannot be\nunknowingly interrupted.",[307,2786,2787],{},"Performing these tasks requires a quantum computer, which have the immense\ncomputing power to encrypt and decrypt data. A quantum computer could quickly\ncrack current public-key cryptography.",[307,2789,2790],{},"Companies and governments around the world are in a quantum arms race, the\nrace to build the first usable quantum computer. The technology promises to\nmake some kinds of computing problems much easier to solve than with today’s\nclassical computers.",[307,2792,2793],{},"One of those problems is breaking certain types of encryption, particularly\nthe methods used in today’s Public Key Infrastructure (PKI), which underlies\npractically all of today’s online communications. Instead of solving one\nproblem at a time, with quantum computing we can solve thousands of problems\nat the same processing speed, with the same processing power. Things that\nwould take hundreds of days today could take just hours on a quantum computer.",[307,2795,2796],{},"The commercial quantum computers available today are still far from being able\nto do that. The theories have advanced farther than the hardware. However, we\nshouldn’t wait for the hardware to motivate the switch to post-quantum\ncryptography.",[307,2798,2799],{},"Longer keys are the first line of defence against quantum encryption and\npretty much everybody is on board with that. Longer keys make encryption\nslower and more costly and the key length will have to increase substantially\nto stay ahead of quantum computers.",[307,2801,2802],{},"Another option is to use symmetric encryption for the messages themselves,\nthen use asymmetric encryption just for the keys. This is the idea behind the\nTransport Layer Security (TLS) online standard.",[307,2804,2805],{},"Many researchers are also looking at ways to create new kinds of encryption\nalgorithms that would still allow public and private keys but be proof against\nquantum computers. For example, it’s easy to multiply two prime numbers\ntogether but very difficult to break a large number back up into its prime\nfactors. Quantum computers can do it and there are already known quantum\ntechniques that could solve the factoring problem and many similar approaches.",[307,2807,2808],{},"However, there’s no known quantum method to crack lattice-based encryption,\nwhich uses cryptographic algorithms built around lattices. Lattice\ncryptography is the one that looks to be the favourite at the moment, simply\nbecause it’s the most practical to implement.",[307,2810,2811],{},"The best solution could be a combination of post-quantum algorithms like\nlattice-based encryption for the initial communication to securely exchange\nkeys, then using symmetric encryption for the main messages.",[307,2813,2814],{},"Can we really rely on lattice-based encryption or similar algorithms to be\nsafe? You can’t guarantee that your post-quantum algorithm will be secure\nagainst a future quantum computer that uses some unknown quantum algorithm.",[307,2816,2817],{},"This is where the laws of quantum physics can come to the rescue. Quantum key\ndistribution (QKD) is a method of sending encryption keys using some very\npeculiar behaviours of subatomic particles that is, in theory at least,\ncompletely unhackable. The land-based version of QKD is a system where photons\nare sent one at a time through a fibreoptic line. If anyone is eavesdropping,\nthen, according to the principles of quantum physics, the polarization of the\nphotons is affected, and the recipient can tell that the message isn’t secure.",[307,2819,2820],{},"However, the technology is extremely slow and requires expensive equipment to\nsend and receive the individual photons. A customer would need to buy a\ntransmitter and a receiver - both very costly as of now. It’s not too terribly\ndifferent from other high-speed fibre optics communication equipment and the\nprice will come down over time as more companies provide the hardware.",[307,2822,2823],{},"The big breakthrough last year was that QKD systems no longer require special\npipes. Now it looks like they’ll be able to use existing fibre networks, so\nthey don’t have to lay new fibre.",[307,2825,2826],{},"Then there’s the satellite-based approach. This one uses the principle of\nentanglement, which Einstein called “spooky action at a distance” and refused\nto believe was real. Turns out, it is real and there is a quantum\ncommunication satellite up and working for a couple of years now.",[307,2828,2829],{},"Entanglement isn’t about instantaneous communications that break the speed of\nlight speed limit. The way that it works is that two particles become\nentangled so that they have the same state and then one of these particles is\nsent to someone else. When the recipient looks at the particle, it’s\nguaranteed to be the same state as its twin.",[307,2831,2832],{},"If one of those particles changes, it doesn’t mean that the other particle\ninstantly changes to match - it’s not a communication system. Plus, the state\nof the two entangled particles, while identical, is also random. So, you can’t\nsend a message, but you can send an encryption key, because what you really\nwant in a key is a sequence of random digits.",[307,2834,2835],{},"Now that the sender and the receiver both have the same random key, they can\nthen use it to send messages using symmetric encryption over traditional\nchannels. To receive the signals, companies would need to put something that\nlooks like a telescope on their rooftops and then install some processing\nequipment.",[307,2837,2838],{},"Neither ground-based nor satellite-based quantum key distribution is practical\nfor general use since both require very specialised and expensive equipment.\nIt could, however, be useful for securing the most critical and sensitive\ncommunications.",[307,2840,2841],{},"If the integrity of the keys can be perfectly guaranteed by QKD, does that\nmean that unhackable communications are within our reach?",[307,2843,2844],{},"Most hackers, when they break into things, they hardly go head-on. They go\naround the side, and that's where you'll find problems with these\nimplementations. Today’s attackers, while they could, in theory, listen in to\ntraffic over fibreoptic lines, typically don’t do that.",[307,2846,2847],{},"There are far easier ways to read the messages, such as getting to the\nmessages before they are encrypted or after they are decrypted or using\nman-in-the-middle attacks.",[307,2849,2850],{},"Additionally, QKD requires the use of relays. Unless the sender and the\nrecipient build a pipe that goes directly between their two offices, and the\ndistance is short enough that the messages don’t degrade — about 60 miles or\nless with current technology — there will be plenty of opportunities for\nhackers. QKD networks will need repeaters when messages travel long distances.\nThose repeaters are going to become weak points and someone could hack in and\nget the key.",[307,2852,2853],{},"Also, QKD networks will need to be able to route messages, and that means\nrouters and hubs, each of which is also a potential point of vulnerability.\nPhysicists can say, this is absolutely secure, but there’s a danger in that,\nin thinking that just because you’re using QKD that you’re secure. Sure, the\nlaws of physics apply, but there might be ways around them.",[307,2855,2856],{},"Besides the security problems, it’s not realistic to expect that every\ninternet user will have access to an QKD endpoint anywhere in the near future.\nThat means, except for the most sensitive, high-value communications, better\nencryption algorithms are the way to go.",[350,2858,2860],{"id":2859},"we-are-probably-decades-away-from-the-point-at-which-quantum-computers-can-be-used-to-break-todays-rsa-encryption-theres-plenty-of-time-to-upgrade-to-newer-encryption-algorithms","We are probably decades away from the point at which quantum computers can be used to break today’s RSA encryption. There’s plenty of time to upgrade to newer encryption algorithms.",[307,2862,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":2864},[2865],{"id":2859,"depth":368,"text":2860},"2021-02-26","The need for quantum cryptography at the impending dawn of quantum computing.","\u002Fassets\u002Fimages\u002Fblog\u002F010321\u002Ftitle.jpg",{},{"title":186,"description":2867},"YEtdAC1zmMl1FT3CjEMMevH9vNxGofA7C0Jh8n_XRmA",{"id":2873,"title":66,"author":2874,"body":2876,"date":2954,"description":2955,"extension":371,"image":2956,"meta":2957,"minRead":860,"navigation":293,"path":67,"seo":2958,"stem":68,"__hash__":2959},"blog\u002Fblog\u002FCryptography.md",{"name":300,"avatar":2875},{"src":302,"alt":300},{"type":304,"value":2877,"toc":2944},[2878,2881,2884,2887,2891,2894,2898,2901,2905,2908,2912,2915,2918,2921,2924,2928,2931,2935,2938,2942],[307,2879,2880],{},"Cryptography is a method of protecting information and communications through\nthe use of codes, so that only those for whom the information is intended can\nread and process it. In computer science, cryptography refers to secure\ninformation and communication techniques derived from mathematical concepts\nand a set of rule-based calculations called algorithms, to transform messages\nin ways that are hard to decipher. These deterministic algorithms are used for\ncryptographic key generation, digital signing, verification to protect data\nprivacy, web browsing on the internet and confidential communications such as\ncredit card transactions and email.",[307,2882,2883],{},"Cryptography is closely related to the disciplines of cryptology and\ncryptanalysis. It includes techniques such as microdots, merging words with\nimages and other ways to hide information in storage or transit. However, in\ntoday's computer-centric world, cryptography is most often associated with\nscrambling plaintext (ordinary text, sometimes referred to as cleartext) into\nciphertext (a process called encryption), then back again (known as\ndecryption). Individuals who practice this field are known as cryptographers.",[307,2885,2886],{},"Modern cryptography concerns itself with the following four objectives:",[350,2888,2890],{"id":2889},"_1-confidentiality","1. Confidentiality",[307,2892,2893],{},"The information cannot be understood by anyone for whom it was unintended.",[350,2895,2897],{"id":2896},"_2-integrity","2. Integrity",[307,2899,2900],{},"The information cannot be altered in storage or transit between sender and\nintended receiver without the alteration being detected.",[350,2902,2904],{"id":2903},"_3-non-repudiation","3. Non-repudiation",[307,2906,2907],{},"The creator\u002Fsender of the information cannot deny at a later stage his or her\nintentions in the creation or transmission of the information.",[350,2909,2911],{"id":2910},"_4-authentication","4. Authentication",[307,2913,2914],{},"The sender and receiver can confirm each other's identity and the\norigin\u002Fdestination of the information.",[307,2916,2917],{},"Procedures and protocols that meet some or all of the above criteria are known\nas cryptosystems. Cryptosystems are often thought to refer only to\nmathematical procedures and computer programs. However, they also include the\nregulation of human behaviour, such as choosing hard-to-guess passwords,\nlogging off unused systems, and not discussing sensitive procedures with\noutsiders.",[307,2919,2920],{},"Cryptosystems use a set of procedures known as cryptographic algorithms or\nciphers, to encrypt and decrypt messages to secure communications among\ncomputer systems, devices such as smartphones and applications. A cipher suite\nuses one algorithm for encryption, another algorithm for message\nauthentication and another for key exchange. This process, embedded in\nprotocols and written in software that runs on operating systems and networked\ncomputer systems, involves public and private key generation for data\nencryption\u002Fdecryption, digital signing and verification for message\nauthentication, and key exchange.",[307,2922,2923],{},"Cryptographic algorithms can be broadly classified to two types.",[314,2925,2927],{"id":2926},"single-key-or-symmetric-key-encryption","Single-key or symmetric-key encryption",[307,2929,2930],{},"Single-key or symmetric-key encryption algorithms create a fixed length of\nbits known as a block cipher with a secret key that the creator\u002Fsender uses to\nencipher data (encryption) and the receiver uses to decipher it. Types of\nsymmetric-key cryptography include the Advanced Encryption Standard (AES), a\nspecification established in November 2001 by the National Institute of\nStandards and Technology as a Federal Information Processing Standard (FIPS\n197), to protect sensitive information. The standard is mandated by the U.S.\ngovernment and widely used in the private sector. In June 2003, AES was\napproved by the U.S. government for classified information. It is a\nroyalty-free specification implemented in software and hardware worldwide. AES\nis the successor to the Data Encryption Standard (DES) and DES3. It uses\nlonger key lengths (128-bit, 192-bit, 256-bit) to prevent brute force and\nother attacks.",[314,2932,2934],{"id":2933},"public-key-or-asymmetric-key-encryption","Public-key or asymmetric-key encryption",[307,2936,2937],{},"Public-key or asymmetric-key encryption algorithms use a pair of keys, a\npublic key associated with the creator\u002Fsender for encrypting messages and a\nprivate key that only the originator knows (unless it is exposed or they\ndecide to share it) for decrypting that information. The types of public-key\ncryptography include RSA, used widely on the internet, Elliptic Curve Digital\nSignature Algorithm (ECDSA) used by Bitcoin, Digital Signature Algorithm (DSA)\nadopted as a Federal Information Processing Standard for digital signatures by\nNIST in FIPS 186-4 and Diffie-Hellman key exchange. To maintain data integrity\nin cryptography, hash functions, which return a deterministic output from an\ninput value, are used to map data to a fixed data size. Types of cryptographic\nhash functions include SHA-1 (Secure Hash Algorithm 1), SHA-2 and SHA-3.",[350,2939,2941],{"id":2940},"attackers-can-bypass-cryptography-hack-into-computers-that-are-responsible-for-data-encryption-and-decryption-and-exploit-weak-implementations-such-as-the-use-of-default-keys-however-cryptography-makes-it-harder-for-attackers-to-access-messages-and-data-protected-by-encryption-algorithms","Attackers can bypass cryptography, hack into computers that are responsible for data encryption and decryption, and exploit weak implementations, such as the use of default keys. However, cryptography makes it harder for attackers to access messages and data protected by encryption algorithms.",[307,2943,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":2945},[2946,2947,2948,2949,2950,2951],{"id":2889,"depth":368,"text":2890},{"id":2896,"depth":368,"text":2897},{"id":2903,"depth":368,"text":2904},{"id":2910,"depth":368,"text":2911},{"id":2926,"depth":359,"text":2927},{"id":2933,"depth":359,"text":2934,"children":2952},[2953],{"id":2940,"depth":368,"text":2941},"2021-02-21","What is cryptography and why do we need it now more than ever.","\u002Fassets\u002Fimages\u002Fblog\u002F220221\u002Ftitle.jpg",{},{"title":66,"description":2955},"t2vUMuWi8gDS2ZTMt-hFq_rZKJQFsbL-EKgdFxArxgU",{"id":2961,"title":158,"author":2962,"body":2964,"date":3023,"description":3024,"extension":371,"image":3025,"meta":3026,"minRead":969,"navigation":293,"path":159,"seo":3027,"stem":160,"__hash__":3028},"blog\u002Fblog\u002FPhysics Engine.md",{"name":300,"avatar":2963},{"src":302,"alt":300},{"type":304,"value":2965,"toc":3015},[2966,2969,2972,2976,2979,2983,2986,2989,2992,2995,2999,3002,3006,3009,3013],[307,2967,2968],{},"A physics engine describes a software program that is used to simulate\nphysical phenomena. The first physics engines were used in military\nsimulations, predicting where artillery shells would land. These engines\nfactored in the shells' weights, forces and trajectories to simulate the\nresult. Since then, they have also been employed in the design of aircraft,\nwatercraft and land vehicles.",[307,2970,2971],{},"There are generally two types of physics engines.",[314,2973,2975],{"id":2974},"high-precision-physics-engines","High-precision physics engines",[307,2977,2978],{},"High-precision physics engines require more processing power to calculate very\nprecise physics and are usually used by scientists and computer animated\nmovies.",[314,2980,2982],{"id":2981},"real-time-physics-engines","Real-time physics engines",[307,2984,2985],{},"Real-time physics engines are used in video games and other forms of\ninteractive computing. They use simplified calculations and decreased accuracy\nto compute in time for the game to respond at an appropriate rate for game\nplay.",[307,2987,2988],{},"In most computer games, speed of the processors and gameplay are more\nimportant than accuracy of simulation. This leads to designs for physics\nengines that produce results in real-time but that replicate real world\nphysics only for simple cases and typically with some approximation. More\noften than not, the simulation is geared towards providing a \"perceptually\ncorrect\" approximation rather than a real simulation.",[307,2990,2991],{},"Physically-based character animation in the past only used rigid body dynamics\nbecause they are faster and easier to calculate, but modern games and movies\nare starting to use soft body physics. Soft body physics are also used for\nparticle effects, liquids and cloth. Some form of limited fluid dynamics\nsimulation is sometimes provided to simulate water and other liquids as well\nas the flow of fire and explosions through the air.",[307,2993,2994],{},"Some applications of game physics engine are the following.",[314,2996,2998],{"id":2997},"collision-detection","Collision detection",[307,3000,3001],{},"Most objects in games are represented by two separate meshes or shapes. One of\nthese meshes is the highly complex and detailed shape visible to the player in\nthe game, such as a vase. For purpose of speed, a second, simplified invisible\nmesh is used to represent the object to the physics engine so that the physics\nengine treats the example vase as a simple cylinder. The simplified mesh used\nfor physics processing is often referred to as the collision geometry. This\nmay be a bounding box, sphere or convex hull. Engines that use bounding boxes\nor bounding spheres as the final shape for collision detection are considered\nextremely simple.",[314,3003,3005],{"id":3004},"brownian-motion","Brownian motion",[307,3007,3008],{},"In the real world, there is a constant Brownian motion jitter to all particles\nin our universe as the forces push back and forth against each other. For a\ngame physics engine, such constant active precision is unnecessarily wasting\nthe limited CPU power, which can cause problems such as decreased framerate.\nThus, games may put objects to \"sleep\" by disabling the computation of physics\non objects that have not moved a particular distance within a certain amount\nof time. The object will remain frozen until physics processing reactivates\nfor the object after collision occurs with some other active physical object.",[350,3010,3012],{"id":3011},"game-physics-engines-enhance-the-players-enjoyment-by-simulating-the-complex-physical-characteristics-of-a-virtual-world-while-scientific-physics-engines-use-an-approximation-of-real-world-physics-to-quickly-simulate-complex-world-interactions","Game physics engines enhance the player's enjoyment by simulating the complex physical characteristics of a virtual world while scientific physics engines use an approximation of real-world physics to quickly simulate complex world interactions.",[307,3014,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":3016},[3017,3018,3019,3020],{"id":2974,"depth":359,"text":2975},{"id":2981,"depth":359,"text":2982},{"id":2997,"depth":359,"text":2998},{"id":3004,"depth":359,"text":3005,"children":3021},[3022],{"id":3011,"depth":368,"text":3012},"2021-02-12","How do physics engines help create a better experience for games and simulations.","\u002Fassets\u002Fimages\u002Fblog\u002F150221\u002Ftitle.jpg",{},{"title":158,"description":3024},"Cgx1XDZPorN-emIqDrcJaWO7CUBpCAfJzglzrEuXSYA",{"id":3030,"title":218,"author":3031,"body":3033,"date":3094,"description":3095,"extension":371,"image":3096,"meta":3097,"minRead":969,"navigation":293,"path":219,"seo":3098,"stem":220,"__hash__":3099},"blog\u002Fblog\u002FShaders.md",{"name":300,"avatar":3032},{"src":302,"alt":300},{"type":304,"value":3034,"toc":3085},[3035,3038,3041,3044,3048,3051,3055,3058,3062,3065,3069,3072,3076,3079,3083],[307,3036,3037],{},"A shader is a program used to render different pixels. Shaders are used when\ndetailing shadows, lighting, texture gradients and more. However, they can do\na lot more than just their namesake. You can often see shaders being packaged\nas mods for games, transforming the dull, pixelated games into stunning,\nsun-soaked landscapes.",[307,3039,3040],{},"Shader is a set of instructions that runs on the GPU (Graphics Processing\nUnit). GPU is a processing unit or a circuit, specially designed for faster\nand efficient computer graphics operation or image manipulation.",[307,3042,3043],{},"Shaders are categorised based on their functionality.",[314,3045,3047],{"id":3046},"vertex-shader","Vertex Shader",[307,3049,3050],{},"Vertex shader transforms each vertex's 3D position in virtual space to the 2D\ncoordinate at which it appears on the screen (as well as a depth value for the\nZ-buffer). Vertex shaders can manipulate properties such as position, colour\nand texture coordinates, but cannot create new vertices. The output of the\nvertex shader goes to the next stage in the pipeline, which is either a\ngeometry shader if present, or the rasterizer. Vertex shaders can enable\npowerful control over the details of position, movement, lighting, and colour\nin any scene involving 3D models.",[314,3052,3054],{"id":3053},"pixel-shader","Pixel Shader",[307,3056,3057],{},"Pixel shaders, also known as fragment shaders, compute colour and other\nattributes of each \"fragment\"- a unit of rendering work affecting at most a\nsingle output pixel. The simplest kinds of pixel shaders output one screen\npixel as a colour value. More complex shaders with multiple inputs\u002Foutputs are\nalso possible. Pixel shaders range from simply always outputting the same\ncolour, to applying a lighting value, to doing bump mapping, shadows, specular\nhighlights, translucency and other phenomena.",[314,3059,3061],{"id":3060},"tessellation-shader","Tessellation Shader",[307,3063,3064],{},"As of OpenGL 4.0 and Direct3D 11, a new shader class called a tessellation\nshader has been added. It adds two new shader stages to the traditional model-\ntessellation control shaders (also known as hull shaders) and tessellation\nevaluation shaders (also known as Domain Shaders), which together allow for\nsimpler meshes to be subdivided into finer meshes at run-time according to a\nmathematical function. The function can be related to a variety of variables,\nmost notably the distance from the viewing camera to allow active\nlevel-of-detail scaling. This allows objects close to the camera to have fine\ndetail, while further away ones can have coarser meshes, yet seem comparable\nin quality. It also can drastically reduce required mesh bandwidth by allowing\nmeshes to be refined once inside the shader units instead of down-sampling\nvery complex ones from memory.",[314,3066,3068],{"id":3067},"geometry-shader","Geometry Shader",[307,3070,3071],{},"The geometry shader is responsible for the creation of new rendering\nprimitives parting from the output of the vertex shader. A geometry shader is\nexecuted once per primitive, which is, in the worst case (when it is used to\nemit point primitives), the same as the vertex shader. The best-case scenario\nis when it is used to emit triangles, because only then will it be executed\nthree times less than the vertex shader, but this complexity is relative.\nAlthough the geometry shader's execution could be cheap, it always increases\nthe scene's complexity, and that always translates into more computational\ntime spent by the GPU to render the scene.",[314,3073,3075],{"id":3074},"compute-shader","Compute Shader",[307,3077,3078],{},"The compute shader is a general-purpose shader that is used outside of a\nrendering pipeline. That means they are not used to draw a primitive or to\nshade a pixel. They are used for using GPUs parallel processing capability for\ngeneral-purpose tasks. Additional stages in animation or lighting algorithms\ncan be examples of compute shaders.",[350,3080,3082],{"id":3081},"shaders-transform-dull-and-dreary-environments-that-may-have-lacked-a-cohesive-look-to-staggeringly-beautiful-works-of-art","Shaders transform dull and dreary environments that may have lacked a cohesive look to staggeringly beautiful works of art.",[307,3084,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":3086},[3087,3088,3089,3090,3091],{"id":3046,"depth":359,"text":3047},{"id":3053,"depth":359,"text":3054},{"id":3060,"depth":359,"text":3061},{"id":3067,"depth":359,"text":3068},{"id":3074,"depth":359,"text":3075,"children":3092},[3093],{"id":3081,"depth":368,"text":3082},"2021-02-07","Why do we need shaders and what types of shaders are out there.","\u002Fassets\u002Fimages\u002Fblog\u002F080221\u002Ftitle.jpg",{},{"title":218,"description":3095},"IG2uVsD2SsBueQUA-b_xfDnkrox53hEqnf8lKJrcvdw",{"id":3101,"title":222,"author":3102,"body":3104,"date":3187,"description":3188,"extension":371,"image":3189,"meta":3190,"minRead":3191,"navigation":293,"path":223,"seo":3192,"stem":224,"__hash__":3193},"blog\u002Fblog\u002FSmart Home Automation.md",{"name":300,"avatar":3103},{"src":302,"alt":300},{"type":304,"value":3105,"toc":3176},[3106,3109,3112,3115,3118,3121,3125,3128,3132,3135,3139,3142,3146,3149,3153,3156,3160,3163,3167,3170,3174],[307,3107,3108],{},"We are living in a golden age of technological development. In the past couple\nof decades, we have gone from relying on corded phones for the bulk of our\ncommunication to tiny computers in our pockets that are capable of dozens of\nsimultaneous communication functions.",[307,3110,3111],{},"If smartphones were one of the major tech developments of the 2000s,\ndevelopment of smart homes are without a doubt, a big new step.",[307,3113,3114],{},"Smart home technology generally refers to any suite of devices, appliances, or\nsystems that connect into a common network that can be independently and\nremotely controlled. When your home technology works together in one system,\nit can also be referred more loosely as a “connected home”. For example, your\nhome's lights, audio speakers, TVs, security cameras, locks, appliances and\nmore are all connected into a common system, which can be controlled from your\nsmart phone or through a mobile touch screen device.",[307,3116,3117],{},"Smart home automation allows you to tap into high-tech functionality and\nluxury that wasn’t possible in the past. As technology development continues\nto expand, so will the possibilities for consumer home automation to make life\neasier and more enjoyable.",[307,3119,3120],{},"You might think of smart home automation as a nifty way to keep up with the\nlatest technology, or an opportunity for homeowners to show off, but there are\nsome amazing practical advantages to home automation. They are:",[314,3122,3124],{"id":3123},"flexibility-for-new-devices-and-appliances","Flexibility for new devices and appliances",[307,3126,3127],{},"Smart home systems tend to be wonderfully flexible when it comes to the\naccommodation of new devices and appliances and other technology. No matter\nhow state-of-the-art your appliances seem today, there will be newer, more\nimpressive models developed as time goes on. Beyond that, you’ll probably add\nto your suite of devices as you replace the older ones or discover new\ntechnology to accompany your indoor and outdoor spaces. Being able to\nintegrate these newcomers seamlessly will make your job as a homeowner much\neasier and allow you to keep upgrading to the latest lifestyle technology.",[314,3129,3131],{"id":3130},"maximizing-home-security","Maximizing home security",[307,3133,3134],{},"When you incorporate security and surveillance features in your smart home\nnetwork, your home security can skyrocket. Only a few dozen are being explored\ncurrently over a plethora of options. For example, home automation systems can\nconnect motion detectors, surveillance cameras, automated door locks and other\ntangible security measures throughout your home so you can activate them from\none mobile device before heading to bed. You can also choose to receive\nsecurity alerts on your various devices depending on the time of day an alert\ngoes off and monitor activities in real-time whether you’re in the house or\nhalfway around the globe.",[314,3136,3138],{"id":3137},"managing-all-of-your-home-devices-from-one-place","Managing all of your home devices from one place",[307,3140,3141],{},"The convenience factor here is enormous. Being able to keep all of the\ntechnology in your home connected through one interface is a massive step\nforward for technology and home management. Theoretically, all you’ll have to\ndo is learn how to use one app on your smartphone or tablet or both and you’ll\nbe able to tap into countless functions and devices throughout your home. This\ncuts way back on the learning curve for new users, makes it easier to access\nthe functionality you truly want for your home.",[314,3143,3145],{"id":3144},"increased-energy-efficiency","Increased energy efficiency",[307,3147,3148],{},"Depending on how you use your smart-home technology, it is possible to make\nyour space more energy-efficient. For example, you can have more precise\ncontrol over the heating and cooling of your home with a programmable smart\nthermostat that learns your schedule and temperature preferences, and then\nsuggests the best energy efficient settings throughout the day. Lights and\nmotorized shades can be programmed to switch to an evening mode as the sun\nsets or lights can turn on and off automatically when you enter or leave the\nroom, so you never have to worry about wasting energy.",[314,3150,3152],{"id":3151},"improved-appliance-functionality","Improved appliance functionality",[307,3154,3155],{},"Smart homes can also help you run your appliances better. A smart TV will help\nyou find better apps and channels to locate your favourite programming. A\nsmart oven will assist you with cooking your chicken to perfection, without\never worrying about overcooking or undercooking it. An intelligently designed\nhome theatre and audio system can make managing your movie and music\ncollection effortless when entertaining guests. Ultimately, connecting your\nappliances and other systems with automation technology will improve your\nappliance effectiveness and overall make your home life much more easier and\nenjoyable!",[314,3157,3159],{"id":3158},"remote-control-of-home-functions","Remote control of home functions",[307,3161,3162],{},"Don’t underestimate the power of being able to control your home’s functions\nfrom a distance. On an exceptionally hot day, you can order your house to\nbecome cooler in just enough time before you get home from work. If you are in\na hurry to get dinner started but is still at the store, you can have your\noven start to preheat while you are still on your way home. You can even check\nto see if you left the lights on, who is at your front door or make sure you\nturned off all your media while you are away.",[314,3164,3166],{"id":3165},"home-management-insights","Home management insights",[307,3168,3169],{},"There is also something to be said for your ability to tap into insights on\nhow your home operates. You can monitor how often you watch TV, what kind of\nmeals you cook in your oven, the type of foods you keep in your refrigerator\nand your energy consumption habits over time. From these insights, you may be\nable to analyse your daily habits and behaviours, and make adjustments to live\nthe lifestyle you desire.",[350,3171,3173],{"id":3172},"worlds-biggest-tech-companies-and-innovators-have-entered-a-race-to-outdo-one-another-in-smart-home-technologies-which-will-result-in-bigger-better-smart-home-tech-constantly-being-developed-to-match-our-digital-needs","World’s biggest tech companies and innovators have entered a race to outdo one another in smart home technologies, which will result in bigger, better smart home tech constantly being developed to match our digital needs.",[307,3175,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":3177},[3178,3179,3180,3181,3182,3183,3184],{"id":3123,"depth":359,"text":3124},{"id":3130,"depth":359,"text":3131},{"id":3137,"depth":359,"text":3138},{"id":3144,"depth":359,"text":3145},{"id":3151,"depth":359,"text":3152},{"id":3158,"depth":359,"text":3159},{"id":3165,"depth":359,"text":3166,"children":3185},[3186],{"id":3172,"depth":368,"text":3173},"2021-01-31","What are smart homes and how they can make our lives better.","\u002Fassets\u002Fimages\u002Fblog\u002F010221\u002Ftitle.jpg",{},6,{"title":222,"description":3188},"nn5B5j_GXp4ZvwgTZWGAIxWxvy9t5-nKpu_me1VgQ7A",{"id":3195,"title":162,"author":3196,"body":3198,"date":3255,"description":3256,"extension":371,"image":3257,"meta":3258,"minRead":969,"navigation":293,"path":163,"seo":3259,"stem":164,"__hash__":3260},"blog\u002Fblog\u002FPoint cloud.md",{"name":300,"avatar":3197},{"src":302,"alt":300},{"type":304,"value":3199,"toc":3249},[3200,3203,3206,3209,3212,3215,3218,3221,3224,3228,3231,3234,3237,3240,3243,3247],[307,3201,3202],{},"Point cloud is used around the globe in a variety of industries, from\nconstruction and engineering to highway planning and the development of\nself-driving cars. Point clouds allow technology to interpret and represent 3D\nspaces through 3D digital images.",[307,3204,3205],{},"So, what is a point cloud?",[307,3207,3208],{},"A point cloud is a collection of data points defined by a given coordinates\nsystem. In a 3D coordinates system, for example, a point cloud may define the\nshape of some real or created physical system. Point clouds are used to create\n3D meshes and other models used in 3D modelling for various fields including\nmedical imaging, architecture, 3D printing, manufacturing, 3D gaming and\nvarious virtual reality (VR) applications.",[307,3210,3211],{},"As the world’s gone digital, so too has technology, being used ever more in\nconstruction and planning projects. 3D images representing real-world objects,\nlandscapes and spaces are being generated by software and displayed digitally.\nBut for these images to be created, we first need to be able to read and\nidentify their dimensions. That’s where point cloud data comes in.",[307,3213,3214],{},"Point clouds are a series of different “points”, similar to pixels in a\ndigital picture. Each pixel is made up of two coordinates – X and Y, while a\nLiDAR point is made up of three coordinates — X, Y and Z — which refers to a\nspecific position in a three-dimensional space.",[307,3216,3217],{},"Point clouds can be created in the following ways.",[314,3219,134],{"id":3220},"lidar",[307,3222,3223],{},"LiDAR (Light Detection and Ranging) technology uses light to measure distances\nand dimensions. Time of flight LiDAR (the most popular method) works by\nsending a pulse of light from a laser. Each pulse is measured and added to the\npoint cloud. Once the entire space or landscape has been measured, the point\ncloud can be used to create a 3D map or CAD model.",[314,3225,3227],{"id":3226},"photogrammetry","Photogrammetry",[307,3229,3230],{},"Point clouds can also be collected using photogrammetry, which uses multiple\nphotos, taken from various angles, to calculate points. Photogrammetric point\nclouds give each point an RGB value, which then creates a colorized point\ncloud.",[307,3232,3233],{},"Both photogrammetry and LiDAR point cloud generating systems are popular.\nTypically, photogrammetry systems are cheaper, but LiDAR systems are much more\naccurate. The correct choice depends on the application of your project.",[307,3235,3236],{},"Point cloud data can be used to bring coordinates to life in the form of a 3D\nCAD (Computer-Aided Design) image. For example, if a point cloud has been\ncollected from a highway, once the data is added to point cloud processing\nsoftware, it can be transformed into a digital model of the road. The 3D model\nwill include not just the transport corridor but also its surroundings, such\nas buildings, road signs, trees, and curbs.",[307,3238,3239],{},"3D CAD models can also include moving parts, such as cars, so that users can\nsee how they will interact with the existing structures and how they might be\naffected by certain changes.",[307,3241,3242],{},"By using point cloud data in conjunction with point cloud processing\nsoftwares, we can, not only create 3D models, but also identify risks and\ncreate solutions. This could be not just more efficient, but potentially\nlife-saving.",[350,3244,3246],{"id":3245},"when-planning-measurements-and-experiments-can-take-place-safely-in-the-digital-point-cloud-environment-time-and-money-can-be-saved","When planning, measurements, and experiments can take place safely in the digital point cloud environment, time and money can be saved.",[307,3248,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":3250},[3251,3252],{"id":3220,"depth":359,"text":134},{"id":3226,"depth":359,"text":3227,"children":3253},[3254],{"id":3245,"depth":368,"text":3246},"2021-01-24","About the point cloud and what are its uses.","\u002Fassets\u002Fimages\u002Fblog\u002F250121\u002Ftitle.jpg",{},{"title":162,"description":3256},"vj7kDwpu96jrlBSGMlhX4BOt_nfrGLlT9VHB1zG-hes",{"id":3262,"title":134,"author":3263,"body":3265,"date":3351,"description":3352,"extension":371,"image":3353,"meta":3354,"minRead":969,"navigation":293,"path":135,"seo":3355,"stem":136,"__hash__":3356},"blog\u002Fblog\u002FLiDAR.md",{"name":300,"avatar":3264},{"src":302,"alt":300},{"type":304,"value":3266,"toc":3340},[3267,3270,3273,3276,3279,3283,3286,3290,3293,3297,3300,3303,3306,3310,3313,3317,3320,3324,3327,3331,3334,3338],[307,3268,3269],{},"LiDAR, or light detection and ranging, is a popular remote sensing method used\nfor measuring the exact distance of an object on the earth’s surface. Even\nthough it was first used in the 1960s when laser scanners were mounted to\naeroplanes, LiDAR didn’t get the popularity it deserved until twenty years\nlater. It was only during the 1980s after the introduction of GPS that it\nbecame a popular method for calculating accurate geospatial measurements. Now\nthat its scope has spread across numerous fields, we should know more about\nLiDAR mapping technology and how it works. What is LiDAR technology and how\ndoes it work? Here are a few insights about it that are good to know.",[307,3271,3272],{},"According to the American Geoscience Institute, LiDAR uses a pulsed laser to\ncalculate an object’s variable distances from the earth surface. These light\npulses — put together with the information collected by the airborne system —\ngenerate accurate 3D information about the earth surface and the target\nobject.",[307,3274,3275],{},"There are three primary components of a LiDAR instrument — the scanner, laser\nand GPS receiver. Other elements that play a vital role in the data collection\nand analysis are the photodetector and optics. Most government and private\norganizations use helicopters, drones and airplanes for acquiring LiDAR data.",[307,3277,3278],{},"LiDAR systems are divided into two types based on its functionality — Airborne\nLiDAR & Terrestrial LiDAR.",[314,3280,3282],{"id":3281},"airborne-lidar","Airborne LiDAR",[307,3284,3285],{},"Airborne LiDAR is installed on a helicopter or drone for collecting data. As\nsoon as it’s activated, Airborne LiDAR emits light towards the ground surface,\nwhich returns to the sensor immediately after hitting the object, giving an\nexact measurement of its distance. Airborne LiDAR is further divided into two\ntypes — Topological LiDAR and Bathymetric LiDAR.",[314,3287,3289],{"id":3288},"terrestrial-lidar","Terrestrial LiDAR",[307,3291,3292],{},"Unlike Airborne, Terrestrial LiDAR systems are installed on moving vehicles or\ntripods on the earth surface for collecting accurate data points. These are\nquite common for observing highways, analysing infrastructure or even\ncollecting point clouds from the inside and outside of buildings. Terrestrial\nLiDAR systems have two types — Mobile LiDAR and Static LiDAR.",[314,3294,3296],{"id":3295},"how-does-lidar-work","How Does LiDAR Work?",[307,3298,3299],{},"LiDAR follows a simple principle — throw laser light at an object on the earth\nsurface and calculate the time it takes to return to the LiDAR source. Given\nthe speed at which the light travels (approximately 186,000 miles per second),\nthe process of measuring the exact distance through LiDAR appears to be\nincredibly fast. However, it’s very technical. The formula that analysts use\nto arrive at the precise distance of the object is as follows:",[307,3301,3302],{},"The distance of the object = (Speed of Light x Time of Flight)\u002F 2.",[307,3304,3305],{},"LiDAR can be used to accomplish many developmental objectives, some of which\nare:",[314,3307,3309],{"id":3308},"oceanography","Oceanography",[307,3311,3312],{},"When the authorities want to know the exact depth of the ocean’s surface to\nlocate any object in the case of a maritime accident or for research purposes,\nthey use LiDAR technology to accomplish their mission. Other than locating\nobjects, LiDAR is also used for calculating phytoplankton fluorescence and\nbiomass in the ocean surface, which otherwise is very challenging.",[314,3314,3316],{"id":3315},"digital-elevation-or-terrain-model","Digital Elevation or Terrain Model",[307,3318,3319],{},"Terrain elevations play a crucial role during the construction of roads, large\nbuildings and bridges. LiDAR technology has x, y and z coordinates, which\nmakes it incredibly easy to produce the 3D representation of elevations to\nensure that concerned parties can draw necessary conclusions more easily.",[314,3321,3323],{"id":3322},"agriculture-archaeology","Agriculture & Archaeology",[307,3325,3326],{},"Typical applications of LiDAR technology in the agriculture sector include\nanalysis of yield rates, crop scouting and seed dispersions. Besides this, it\nis also used for campaign planning, mapping under the forest canopy, and more.",[314,3328,3330],{"id":3329},"consumer-vehicles","Consumer Vehicles",[307,3332,3333],{},"Automakers have begun to integrate LiDAR into Advanced Driver Assistance\nSystems (ADAS) in order to visualize the ever-changing environments their\nvehicles are immersed in. The resulting wealth of data from automotive\nplatform incorporation can allow ADAS systems to make hundreds of\ncarefully-calculated driving decisions each minute.",[350,3335,3337],{"id":3336},"lidar-on-adas-will-ultimately-guide-our-journey-in-delivering-a-true-fully-autonomous-vehicle-without-compromising-safety","LiDAR on ADAS will ultimately guide our journey in delivering a true fully-autonomous vehicle, without compromising safety.",[307,3339,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":3341},[3342,3343,3344,3345,3346,3347,3348],{"id":3281,"depth":359,"text":3282},{"id":3288,"depth":359,"text":3289},{"id":3295,"depth":359,"text":3296},{"id":3308,"depth":359,"text":3309},{"id":3315,"depth":359,"text":3316},{"id":3322,"depth":359,"text":3323},{"id":3329,"depth":359,"text":3330,"children":3349},[3350],{"id":3336,"depth":368,"text":3337},"2021-01-17","Light Detection and Ranging - Possibilities.","\u002Fassets\u002Fimages\u002Fblog\u002F180121\u002Ftitle.jpg",{},{"title":134,"description":3352},"I0jKoW0wUUf97IIInUJ0gUREySluhEiJjmEMK5xhotg",{"id":3358,"title":198,"author":3359,"body":3361,"date":3444,"description":3445,"extension":371,"image":3446,"meta":3447,"minRead":860,"navigation":293,"path":199,"seo":3448,"stem":200,"__hash__":3449},"blog\u002Fblog\u002FRobotic Process Automation.md",{"name":300,"avatar":3360},{"src":302,"alt":300},{"type":304,"value":3362,"toc":3432},[3363,3366,3370,3373,3376,3379,3383,3386,3390,3393,3397,3400,3404,3407,3409,3412,3416,3419,3423,3426,3430],[307,3364,3365],{},"Robotic Process Automation (RPA) is software technology that’s easy for anyone\nto use to automate digital tasks. With RPA, software users create software\nrobots, or “bots”, that can learn, mimic, and then execute rules-based\nbusiness processes. RPA automation enables users to create bots by observing\nhuman digital actions. Show your bots what to do, then let them do the work.\nRobotic Process Automation software bots can interact with any application or\nsystem the same way people do—except that RPA bots can operate around the\nclock, nonstop, much faster and with 100% reliability and precision.",[314,3367,3369],{"id":3368},"how-does-robotic-process-automation-work","How does Robotic Process Automation Work?",[307,3371,3372],{},"Robotic Process Automation bots have the same digital skillset as people—and\nthen some. Think of RPA bots as a Digital Workforce that can interact with any\nsystem or application. For example, bots are able to copy-paste, scrape web\ndata, make calculations, open and move files, parse emails, log into programs,\nconnect to APIs, and extract unstructured data. And because bots can adapt to\nany interface or workflow, there’s no need to change business systems,\napplications, or existing processes in order to automate.",[307,3374,3375],{},"RPA bots are easy to set up, use, and share. If you know how to record video\non your phone, you’ll be able to configure RPA bots. It’s as intuitive as\nhitting record, play, and stop buttons and using drag-and-drop to move files\naround at work. RPA bots can be scheduled, cloned, customized, and shared to\nexecute business processes throughout the organization.",[307,3377,3378],{},"Some of the benefits of RPA include:",[314,3380,3382],{"id":3381},"greater-productivity","Greater Productivity",[307,3384,3385],{},"RPA bots create step-change in employee productivity by accelerating workflows\nand enabling more work to get done by executing processes independently. In\ndocument-intensive industries like financial services, insurance and in the\npublic sector, RPA bots can handle form filling and claims processing all\nhands-free.",[314,3387,3389],{"id":3388},"integrate-across-platforms","Integrate Across Platforms",[307,3391,3392],{},"RPA is application agnostic so you’ll never need to upgrade or replace\nexisting systems for RPA to work. Bots enable enterprises to live the dream of\neliminating technology siloes by seamlessly connecting across all software\ntools regardless of function and department, in both front office and back\noffice. The result? Achieve never-before seen enterprise-wide efficiencies and\ncollaboration that taps into the true value of your human capital investment.",[314,3394,3396],{"id":3395},"cost-savings-fast-roi","Cost Savings & Fast ROI",[307,3398,3399],{},"The intuitive, code-free interface allows anyone to quickly master bot\ncreation and start driving ROI. For the average employee, that means regaining\n40% of their time each day that was wasted on manual digital administrative\ntasks. In industries like healthcare the value of automating is amplified by\nthe critical importance of error-free, compliant process execution to patient\noutcomes.",[314,3401,3403],{"id":3402},"harness-artificial-intelligence-ai","Harness Artificial Intelligence (AI)",[307,3405,3406],{},"When artificial intelligence (AI) is combined with RPA to create Intelligent\nAutomation, automating extends by an order of magnitude, able to draw on the\n80% of enterprise data that’s unstructured. In procure-to-pay, automate\ninvoice processing of non-standard vendor invoices. In insurance, automate\nextracting claims data and detecting potential fraud. In HR, automate request\nintake by understanding the employee’s intent.",[314,3408,1228],{"id":1227},[307,3410,3411],{},"RPA enables high-volume business processes to be more elastic and able to\nadapt in uncertain times and changing environments. Flexibly handle any\nworkload—planned or unplanned—by expanding your Digital Workforce the moment\nit’s required. Now imagine it being so simple, so intuitive, that anyone can\ndo it.",[314,3413,3415],{"id":3414},"greater-accuracy","Greater Accuracy",[307,3417,3418],{},"With 100% accuracy there is no rework and near-perfect compliance. Automating\nwith RPA is enabling industries such as finance, healthcare and life sciences\nto leverage the reliability of bots to achieve strict compliance standards.\nRobotic Process Automation in accounting is enabling new levels of speed and\nprecision in order-to-cash and procure-to-pay processes.",[314,3420,3422],{"id":3421},"customer-experiences","Customer Experiences",[307,3424,3425],{},"In the front office, attended RPA bots help agents interact with customers by\ndoing all the system and data entry legwork—resulting in reduced call handling\ntime (AHT) and a 50% improvement in customer experience at the same time.\nIndustries such as telecommunications and life sciences deploy bots to\nstreamline customer inquiry handling and smoothly respond to spikes in call\nvolumes.",[350,3427,3429],{"id":3428},"rpa-improves-business-outcomes-like-customer-satisfaction-and-enables-competitive-advantages-by-freeing-humans-to-do-what-they-do-bestsolving-problems-improving-processes-conducting-analysis-and-other-value-added-workresulting-in-higher-employee-engagement-and-new-revenue-opportunities","RPA improves business outcomes like customer satisfaction and enables competitive advantages by freeing humans to do what they do best—solving problems, improving processes, conducting analysis, and other value-added work—resulting in higher employee engagement and new revenue opportunities.",[307,3431,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":3433},[3434,3435,3436,3437,3438,3439,3440,3441],{"id":3368,"depth":359,"text":3369},{"id":3381,"depth":359,"text":3382},{"id":3388,"depth":359,"text":3389},{"id":3395,"depth":359,"text":3396},{"id":3402,"depth":359,"text":3403},{"id":1227,"depth":359,"text":1228},{"id":3414,"depth":359,"text":3415},{"id":3421,"depth":359,"text":3422,"children":3442},[3443],{"id":3428,"depth":368,"text":3429},"2021-01-10","About the Robotic Process Automation and its benefits.","\u002Fassets\u002Fimages\u002Fblog\u002F110121\u002Ftitle.jpg",{},{"title":198,"description":3445},"OMayftYZf9uXlUsZ0zQjJ0_lhw6DL84FJcAbFtYJjbw",{"id":3451,"title":34,"author":3452,"body":3454,"date":3574,"description":3575,"extension":371,"image":3576,"meta":3577,"minRead":860,"navigation":293,"path":35,"seo":3578,"stem":36,"__hash__":3579},"blog\u002Fblog\u002FADAS.md",{"name":300,"avatar":3453},{"src":302,"alt":300},{"type":304,"value":3455,"toc":3558},[3456,3459,3462,3465,3468,3472,3475,3479,3482,3486,3489,3493,3496,3500,3503,3507,3510,3514,3517,3521,3524,3528,3531,3535,3538,3542,3545,3549,3552,3556],[307,3457,3458],{},"Almost all vehicle accidents are caused by human error, which can be avoided\nwith Advanced Driver Assistance Systems (ADAS). The role of ADAS is to prevent\ndeaths and injuries by reducing the number of car accidents and the serious\nimpact of those that cannot be avoided.",[307,3460,3461],{},"Autonomous application solutions are partitioned into various chips, called\nSoCs (systems on a chip). These chips connect sensors to actuators through\ninterfaces and high-performance ECUs (electronic controller units).",[307,3463,3464],{},"Self-driving cars use a variety of these applications and technologies to gain\n360-degree vision, both near (in the vehicle’s immediate vicinity) and far.\nThat means hardware designs are using more advanced process nodes to meet\never-higher performance targets while simultaneously reducing demands on power\nand footprint.",[307,3466,3467],{},"Some of the most common ADAS applications are:",[314,3469,3471],{"id":3470},"_1-adaptive-cruise-control","1. Adaptive Cruise Control",[307,3473,3474],{},"Adaptive cruise control (ACC) is particularly helpful on the highway, where\ndrivers can find it difficult to monitor their speed and other cars over a\nlong period of time. Advanced cruise control can automatically accelerate,\nslow down, and at times stop the vehicle, depending on the actions other\nobjects in the immediate area.",[314,3476,3478],{"id":3477},"_2-glare-free-high-beam-and-pixel-light","2. Glare-Free High Beam and Pixel Light",[307,3480,3481],{},"Glare-free high beam and pixel light uses sensors to adjust to darkness and\nthe vehicle’s surroundings without disturbing oncoming traffic. This new\nheadlight application detects the lights of other vehicles and redirects the\nvehicle’s lights away to prevent other road users from being temporarily\nblinded.",[314,3483,3485],{"id":3484},"_3-adaptive-light-control","3. Adaptive Light Control",[307,3487,3488],{},"Adaptive light control adapts the vehicle’s headlights to external lighting\nconditions. It changes the strength, direction, and rotation of the headlights\ndepending on the vehicle’s environment and darkness.",[314,3490,3492],{"id":3491},"_4-automatic-parking","4. Automatic Parking",[307,3494,3495],{},"Automatic parking helps inform drivers of blind spots so they know when to\nturn the steering wheel and stop. Vehicles equipped with rearview cameras have\na better view of their surroundings than traditional side mirrors. Some\nsystems can even complete parking automatically without the driver’s help by\ncombining the input of multiple sensors.",[314,3497,3499],{"id":3498},"_5-autonomous-valet-parking","5. Autonomous Valet Parking",[307,3501,3502],{},"Autonomous valet parking is a new technology that works via vehicle sensor\nmeshing, 5G network communication, with cloud services that manage autonomous\nvehicles in parking areas. The vehicles sensors provide the vehicle with\ninformation about where it is, where it needs to go, and how to get there\nsafely. All this information is methodically evaluated and used to perform\ndrive acceleration, braking, and steering until the vehicle is safely parked.",[314,3504,3506],{"id":3505},"_6-navigation-system","6. Navigation System",[307,3508,3509],{},"Car navigation systems provide on-screen instructions and voice prompts to\nhelp drivers follow a route while concentrating on the road. Some navigation\nsystems can display exact traffic data and, if necessary, plan a new route to\navoid traffic jams. Advanced systems may even offer Heads Up Displays (HuD) to\nreduce driver distraction.",[314,3511,3513],{"id":3512},"_7-night-vision","7. Night Vision",[307,3515,3516],{},"Night vision systems enable drivers to see things that would otherwise be\ndifficult or impossible to see at night. There are two categories of night\nvision implementations: Active night vision systems project infrared light,\nand passive systems rely on the thermal energy that comes from cars, animals,\nand other objects.",[314,3518,3520],{"id":3519},"_8-blind-spot-monitoring","8. Blind Spot Monitoring",[307,3522,3523],{},"Blind spot detection systems use sensors to provide drivers with important\ninformation that is otherwise difficult or impossible to obtain. Some systems\nsound an alarm when they detect an object in the driver’s blind spot, such as\nwhen the driver tries to move into an occupied lane.",[314,3525,3527],{"id":3526},"_9-automatic-emergency-braking","9. Automatic Emergency Braking",[307,3529,3530],{},"Automatic emergency braking uses sensors to detect whether the driver is in\nthe process of hitting another vehicle or other objects on the road. This\napplication can measure the distance of nearby traffic and alert the driver to\nany danger. Some emergency braking systems can take preventive safety\nmeasures, such as tightening seat belts, reducing speed, and adaptive steering\nto avoid a collision.",[314,3532,3534],{"id":3533},"_10-crosswind-stabilization","10. Crosswind Stabilization",[307,3536,3537],{},"This relatively new ADAS feature supports the vehicle in counteracting strong\ncrosswinds. The sensors in this system can detect strong pressure acting on\nthe vehicle while driving and apply brakes to the wheels affected by crosswind\ndisturbance.",[314,3539,3541],{"id":3540},"_11-driver-drowsiness-detection","11. Driver Drowsiness Detection",[307,3543,3544],{},"Driver drowsiness detection warns drivers of sleepiness or other road\ndistractions. There are several ways to determine whether a driver’s attention\nis decreasing. In one case, sensors can analyze the movement of the driver’s\nhead, and heart rate to determine whether they indicate drowsiness. Other\nsystems issue driver alerts similar to the warning signals for lane detection.",[314,3546,3548],{"id":3547},"_12-driver-monitoring-system","12. Driver Monitoring System",[307,3550,3551],{},"The driver monitoring system is another way of measuring the driver’s\nattention. The camera sensors can analyze whether the driver’s eyes are on the\nroad or drifting. Driver monitoring systems can alert drivers with noises,\nvibrations in the steering wheel, or flashing lights. In some cases, the car\nwill take the extreme measure of stopping the vehicle completely.",[350,3553,3555],{"id":3554},"automobiles-are-the-foundation-of-the-next-generation-of-mobile-connected-devices-with-rapid-advances-being-made-in-autonomous-vehicles","Automobiles are the foundation of the next generation of mobile-connected devices, with rapid advances being made in autonomous vehicles.",[307,3557,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":3559},[3560,3561,3562,3563,3564,3565,3566,3567,3568,3569,3570,3571],{"id":3470,"depth":359,"text":3471},{"id":3477,"depth":359,"text":3478},{"id":3484,"depth":359,"text":3485},{"id":3491,"depth":359,"text":3492},{"id":3498,"depth":359,"text":3499},{"id":3505,"depth":359,"text":3506},{"id":3512,"depth":359,"text":3513},{"id":3519,"depth":359,"text":3520},{"id":3526,"depth":359,"text":3527},{"id":3533,"depth":359,"text":3534},{"id":3540,"depth":359,"text":3541},{"id":3547,"depth":359,"text":3548,"children":3572},[3573],{"id":3554,"depth":368,"text":3555},"2021-01-01","About Advanced Driver Assistance Systems and its applications.","\u002Fassets\u002Fimages\u002Fblog\u002F040121\u002Ftitle.jpg",{},{"title":34,"description":3575},"rIkKjHj1KJuEKCktL7le7Aw50yUwkaxelJUn4p8zEXA",{"id":3581,"title":126,"author":3582,"body":3584,"date":3655,"description":3656,"extension":371,"image":3657,"meta":3658,"minRead":3191,"navigation":293,"path":127,"seo":3659,"stem":128,"__hash__":3660},"blog\u002Fblog\u002FInternet of Things.md",{"name":300,"avatar":3583},{"src":302,"alt":300},{"type":304,"value":3585,"toc":3652},[3586,3589,3592,3595,3598,3601,3604,3607,3610,3613,3616,3619,3622,3625,3628,3631,3634,3637,3640,3643,3646,3650],[307,3587,3588],{},"If you look around, you'll find at least one thing that has the ability to\nconnect to the internet. It may be your phone. It may be a laptop, your TV, or\neven your fridge.",[307,3590,3591],{},"Internet of things generally refers to the collection of all those devices.\nBut now, you can argue that anything that has the ability to connect to the\ninternet and collect and share data is a part of internet of things or IoT in\nshort.",[307,3593,3594],{},"Now the question here usually is what is IoT? Why do we need it? How does it\nhelp us? How does it work and many more questions of the sort.",[307,3596,3597],{},"So, what is IoT?",[307,3599,3600],{},"IoT refers to the collection of all those devices that have the ability to\nconnect to the internet and collect and share data. Hence the name internet of\nthings. So basically, we have a device that collects data from its\nsurroundings, using sensors and actuators and sends this collected data to the\ninternet where the processing of that data can happen.",[307,3602,3603],{},"There are many devices that can be included in this classification. Examples\ncan be phones laptops, watches, refrigerators, washing machines, cars and even\nhomes.",[307,3605,3606],{},"Homes themselves can be a part of IoT too. Most IoT devices have the word\nsmart at the start of their names, smart phones, smart watches, smart TVs,\nsmart refrigerators and smart homes.",[307,3608,3609],{},"So, why do we need IoT? How does it help us?",[307,3611,3612],{},"It helps makes our lives easier and more comfortable. If we take an example,\nsmartphones have more use cases than we can list here without going on for\nhours. It can call, it allows us to watch movies. It allows us to connect to\nthe internet, interact with strangers, shop things.",[307,3614,3615],{},"But let's take a better example for our understanding. Smart house. A smart\nhouse has many different features that we can talk about. One of the features\nis automatic lights, where the lights automatically detect your presence in\nthe room and get switched on. They can also be voice activated. You can say\nactivate and they'll get switched on. It may have next generation security to\nkeep your house safe. It might only allow authorized people to enter and locks\nup everything when you leave. Then it has entertainment management, for using\ndevices, such as Google home, Amazon echo to keep track of your chores, to\nplay movies and songs, etc. It also keeps track of temperature management. The\nhouse automatically adjusts the temperature based on the surrounding climate.",[307,3617,3618],{},"Now, this is at an individual level. At a larger scale, it benefits the\nsociety as a whole. In industries such as healthcare, it has many use cases.\nIt allows for remote interaction between patients and doctors. So, if a\npatient has any sort of a deadly disease, the doctor doesn't necessarily have\nto come in close contact to help the patient out. Doctors make amazing\ndecisions and based on the time and the data they've been given. But computers\ncan sometimes make better decisions. Combining doctors and computers can give\nus the best diagnosis possible.",[307,3620,3621],{},"Farming has been one of the industries that has stayed with us since the\nbeginning of human civilization itself. Right now, is the correct time to\nimprove upon our traditional methods and shift into modern farming to provide\nfood for our ever-growing population. Smart technologies have definitely\nhelped us increase the productivity. Through new devices like smart tractors\nand analysis devices that will help us get a better data analysis of a soil.",[307,3623,3624],{},"Now the manufacturing industry has taken IoT with open arms. It already has\nautomation replacing many menial jobs. IoT did not only increase the\ninteractivity, but also boosted the efficiency and production as well.",[307,3626,3627],{},"In education, better methods to teach children are already being implemented\nthat are in conjunction with IoT. A good example is Augmented Reality. Being\nused in some classes to give students a better experience of real-life animals\nand even extinct animals. So, having IoT will not only be beneficial to us\nindividually, but also be beneficial to us as a society.",[307,3629,3630],{},"So, how does IoT work?",[307,3632,3633],{},"There are basically four layers to it.",[307,3635,3636],{},"The first layer is sensing\u002Fdevice layer which is basically the hardware part\nof IoT. This is basically an embedded device. It has sensors and actuators\nthat collect the data from surroundings based on specific function. For\nexample, temperature sensors, atmospheric pressure sensors and light sensors.\nThey basically collect all the data and they give it to the embedded device.",[307,3638,3639],{},"Now after the data has been collected, it goes to the connectivity layer,\nusually to the cloud, using the internet. This connection is generally made\nthrough one of the methods like Wi-Fi, Bluetooth, cellular, RFID or NFC.",[307,3641,3642],{},"After that comes to data processing layer. Now the data, once it reaches the\ncloud is subjected to data analysis. Different types of algorithms are used\nbased on the type of data collected to get meaningful insights and patterns.\nThen a decision is made based on the insights. Once the processing is\ncomplete, the result of the decision is conveyed to the IoT device and changes\nare made.",[307,3644,3645],{},"User Interface\u002FApplication Layer, is the last layer. It's basically the\nfront-end to all the back-end processing, which are included the previous\nlevels. Now a good example to explain this process would be a smart fridge.\nThe sensors in the smart fridge collect data from the surrounding. They see\nwhat the temperature is and what kind of item is being stored inside the\nfridge. Once it collects all of this data, it sends it to a central cloud\nwhere the processing happens based on this collected data. The system decides\nwhether to keep the temperature or to change it and we can see the result of\nthis on the interactive screen of the fridge.",[350,3647,3649],{"id":3648},"it-would-not-be-crazy-to-see-that-we-may-live-in-a-future-like-how-it-is-depicted-in-sci-fi-movies-a-future-in-which-everything-we-use-is-connected-to-the-internet-where-it-interacts-with-a-central-cloud-where-all-of-our-data-is-being-collected-and-being-utilized-to-make-our-lives-and-our-society-a-much-better-place","It would not be crazy to see that we may live in a future, like how it is depicted in sci-fi movies. A future in which everything we use is connected to the internet, where it interacts with a central cloud, where all of our data is being collected and being utilized to make our lives and our society a much better place.",[307,3651,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":3653},[3654],{"id":3648,"depth":368,"text":3649},"2020-12-27","A brief introduction to Internet of Things or IoT.","\u002Fassets\u002Fimages\u002Fblog\u002F281220\u002Ftitle.jpg",{},{"title":126,"description":3656},"KWTZNxhEkQQSzkL659Lz1xn51aLWj1VjOIhn5uPSkgA",{"id":3662,"title":82,"author":3663,"body":3665,"date":3724,"description":3725,"extension":371,"image":3726,"meta":3727,"minRead":969,"navigation":293,"path":83,"seo":3728,"stem":84,"__hash__":3729},"blog\u002Fblog\u002FEdge Computing.md",{"name":300,"avatar":3664},{"src":302,"alt":300},{"type":304,"value":3666,"toc":3721},[3667,3670,3673,3676,3679,3682,3688,3691,3694,3697,3703,3706,3712,3715,3719],[307,3668,3669],{},"For a lot of the biggest trends in technology, edge computing is going to be a\nnecessity.",[307,3671,3672],{},"Today, the public cloud is unrivaled in its ability to store and compute data.\nBut getting the data there and back is still limited by the speed of the\ninternet. With edge computing, data is not sent to the cloud but acted on at\nthe source, creating faster real-time insights.",[307,3674,3675],{},"More data is being created in more locations than ever before. From oil rigs,\nto cars, to factories, there is a growing need for real-time data processing.\nEdge Computing can provide a solution to satisfy all these needs.",[307,3677,3678],{},"So, by putting edge devices on no matter if it is a cellphone tower or an\nautonomous vehicle that we have today, we are now able to do things that were\nimpossible to do before. Most of it, just because the cost of sending the\ndata, processing all of it and retrieving the feedback was too much and\nsometimes the latency, wouldn’t enable the technology to take off.",[307,3680,3681],{},"There are lot of use cases for edge computing. Some of them are starting to be\nin use today.",[307,3683,3684],{},[710,3685],{"alt":3686,"src":3687},"autonomousCar","\u002Fassets\u002Fimages\u002Fblog\u002F211220\u002FautonomousCar.jpg",[307,3689,3690],{},"For example, in autonomous driving. Even on a car that you buy today, there\nare sensors all over that can tell you when you are backing up, when you are\nclose to something. But if you take a step further and you think about\nautonomous world, you are going to have a lot more of these sensors in the\ncar.",[307,3692,3693],{},"But the sensors to provide the value that they need to, you really need to\nhave a device that can process the information that is coming in real-time.\nSo, if you were in a snowstorm, in your autonomous vehicle and all of a\nsudden, you couldn’t get that internet connection, it becomes a potentially\ndangerous situation.",[307,3695,3696],{},"So, having built in an edge device in to your autonomous vehicle will help\nmake sure the vehicle is getting the updates that it needs.",[307,3698,3699],{},[710,3700],{"alt":3701,"src":3702},"factory","\u002Fassets\u002Fimages\u002Fblog\u002F211220\u002Ffactory.jpg",[307,3704,3705],{},"In factories today, we are starting to see people use these types of edge\ndevices where it can help predict if a device or a machine is going to start\nto see failure. It can start to see anomalies in how the work is getting done\nor how a piece of an apparel is getting made.",[307,3707,3708],{},[710,3709],{"alt":3710,"src":3711},"jet","\u002Fassets\u002Fimages\u002Fblog\u002F211220\u002Fjet.jpg",[307,3713,3714],{},"Jet engines do this as well. They are examples of where you can use these\ntypes of sensors where you need to gather the feedback and monitor the\nfeedback that you are getting. But you can get those data points to figure out\nsomething that we need to check before a problem ever arises.",[350,3716,3718],{"id":3717},"edge-computing-has-a-pivotal-role-in-the-future-and-it-is-not-a-question-of-if-but-when","Edge computing has a pivotal role in the future and it is not a question of if, but when?",[307,3720,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":3722},[3723],{"id":3717,"depth":368,"text":3718},"2020-12-20","Edge computing - need and advantages.","\u002Fassets\u002Fimages\u002Fblog\u002F211220\u002Ftitle.jpg",{},{"title":82,"description":3725},"5M9M4sRIdPXQGE_SM8JzPJpEFvFSjP5fMB9LOxHQ_6U",{"id":3731,"title":54,"author":3732,"body":3734,"date":3796,"description":3797,"extension":371,"image":3798,"meta":3799,"minRead":2305,"navigation":293,"path":55,"seo":3800,"stem":56,"__hash__":3801},"blog\u002Fblog\u002FBrain Computer Interfaces.md",{"name":300,"avatar":3733},{"src":302,"alt":300},{"type":304,"value":3735,"toc":3793},[3736,3739,3742,3745,3748,3751,3754,3757,3760,3763,3766,3769,3772,3775,3778,3781,3784,3787,3791],[307,3737,3738],{},"Back in the early days of computing, data input was done using punch cards or\nswitches or reels of rapidly moving paper tape. Since that time, we have\ndeveloped increasingly fluid methods for human-computer interaction with\nkeyboards, mouses, monitors and touchscreens which now dominate our digital\nlives. But what if we could link the computational wetware in our own heads\ndirectly with a computer.",[307,3740,3741],{},"Brain computer interfaces or BCI's could include either input or output\ndevices. Input BCI's are comprised of sensors which acquire electrical brain\nwave signals together with processing hardware that extracts distinct features\nand translates them into useful commands. The other way around output BCI's\ntranslate digital information into electrical signals that are fed into the\nuser’s brain by electrode arrays or other stimulator hardware.",[307,3743,3744],{},"BCI's may be constructed using one of two approaches.",[307,3746,3747],{},"The first is non-invasive and may employ electroencephalography or EEG to\nacquire brainwave signals from sensors positioned on the outside of the skull.\nAlternatively, non invasive BCI's may feed electrical signals into the brain\nusing a TMS or Transcranial Magnetic Stimulation device.",[307,3749,3750],{},"The second way to build a BCI is invasive and currently requires surgery to\nposition sensors or stimulators inside the skull. Two output technologies have\nso far been trialled, with the first known as electrocorticography or ECoG,\nplacing a strip or grid of electrodes on the surface of the brain.\nAlternatively, intracortical microelectrodes can be implanted a few\nmillimetres into the brain where they may serve as either sensors or\nstimulators.",[307,3752,3753],{},"For obvious reasons today most BCI research is non-invasive. This limits its\nscope and application but even so some interesting results have been achieved.\nPerhaps most notably, many researchers have used EEG to acquire P300 brain\nwaves which are then processed to allow a user to input letters or commands\ninto a computer. Such interfaces are painstakingly slow, but without doubt\nthey can work.",[307,3755,3756],{},"Researchers at the University of Washington have even used non-invasive BCI's\nto send commands from one person's brain to another over the Internet.\nSpecifically, in a set of experiments in 2014 one test subject wore an EEG\nskullcap while watching a monitor screen on which a computer game was being\ndisplayed. But the fire button was in the hand of a second subject seated half\na mile away in another building and who had a TMS coil placed over the brain.\nTo shoot down Rockets the first user had to think about pressing the fire\nbutton. When that happened, brainwave signals were acquired by EEG, processed\nand transmitted over the Internet. In turn the TMS device induced an\nelectrical pulse into the receiving subject’s brain so causing them to\nexperience visual stimuli and press the fire button. Amazingly the\nsplit-second accuracy required to shoot down Rockets was achieved. In fact,\nacross three pairs of test subjects, success rate between 25% and 83% was\nobtained.",[307,3758,3759],{},"In time, University of Washington researchers hope to use BCI's to transmit\nmore complex ideas and thoughts from one brain to another. This could even\nallow for what they call brain tutoring in which knowledge is transferred\ndirectly from the brain of a teacher to the brain of a student. The team at\nthe University of Washington use highly sophisticated sensors stimulators and\nprocessing hardware.",[307,3761,3762],{},"However basic EEG BCI's are now available for consumers including the Emotiv\nEPOC, the InteraXon Muse and the Neurosky MindWave. Such low-end hardware\nmight actually record electromyographic signals from muscles in addition to or\neven in place of electroencephalographic signals from the brain.",[307,3764,3765],{},"For many years, we've been learning how to interface electronic hardware with\nthe human body. Since 1982, over 300,000 people have had their hearing\nrestored with a cochlear implant. These feature a surgically inserted\nelectrode array that delivered electrical pulses to its hosts’ auditory\nnerves. The cochlear implant electrode array is connected to a surgically\ninserted receiver stimulator which receives wireless signals from external\nsound processor connected to a microphone. Some external sound processors can\nalso receive and transmit audio directly from a computer. So already some\npeople have a computer feeding sound directly into their auditory nerves.",[307,3767,3768],{},"A company called Second Sight is also developing visual implants. Since 2011,\nmore than 75 patients have been fitted with a Second Sight retinal prosthesis\nsystem called the Argus II. This is implanted on and in the eye, where it's 60\nelectrode array stimulates the retina of somebody who has gone blind due to\nretinitis pigmentosa. Images are fed to the implant for an externally worn\ncamera which is connected to a visual processing unit and an antenna. The\nvision so provided is very rudimentary but does allow patients to identify\nshapes and even large letters.",[307,3770,3771],{},"Since 2016, Second Sight have also been developing a visual cortical\nprosthesis called the Orion 1. This tiny electrode array is implanted into the\nvisual cortex of the patient's brain so bypassing their eyeball and optic\nnerves. In January 2018, the first Orion 1 was implanted into a test patient.\nLike the Argus II, the Orion 1 implant receives signals from an external video\ncamera and currently allows its user to perceive patterns of light.",[307,3773,3774],{},"Another developer of brain implant technology is BrainGate. The first\nBrainGate neural interface system was created in 2002 by a Brown University\nspin-off company called Cyberkinetics. By 2008, the hardware had been upgraded\nto BrainGate 2 and was being developed by academics from five universities\nsupported by a score of institutions and foundations.",[307,3776,3777],{},"The BrainGate 2 implant is a 4 mm array of 100 electrodes that surgically\nimplanted. A decoder processes signals from the implant and in turn it allows\nthe user to control an external electrical device.",[307,3779,3780],{},"In 2008, a team from the university of Pittsburgh implanted a brain gate\nsensor into the motor cortex of a monkey. Over time the monkey then learned to\nfeed itself by using its brain to control a robot arm.",[307,3782,3783],{},"In May 2012, a team from Brown University implanted brain gate electrode\narrays into two paralyzed human patients. One of these was a 58-year-old woman\nwho learned how to use a robot arm to pick up a bottle raise it to her mouth\nand take a drink.",[307,3785,3786],{},"Clearly today BCI implants like the Orion 1 and the BrainGate 2 are being\ndeveloped to assist people with medical conditions. Nevertheless, the\npossibility has to exist for more advanced forms of such technology to develop\ninto sophisticated non-medical human-computer interfaces.",[350,3788,3790],{"id":3789},"it-is-clear-that-bcis-are-rising-and-in-the-future-this-could-lead-to-some-kind-of-cyborg-fusion-between-human-beings-and-machines","It is clear that BCI's are rising and in the future, this could lead to some kind of cyborg fusion between human beings and machines.",[307,3792,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":3794},[3795],{"id":3789,"depth":368,"text":3790},"2020-12-13","A little about BCI's and its current state of affairs.","\u002Fassets\u002Fimages\u002Fblog\u002F141220\u002Ftitle.jpg",{},{"title":54,"description":3797},"Mw4xmi6tMaR9N1x7A1daUTQwlhQmMIb_preR9RSSibM",{"id":3803,"title":178,"author":3804,"body":3806,"date":3865,"description":3866,"extension":371,"image":3867,"meta":3868,"minRead":3191,"navigation":293,"path":179,"seo":3869,"stem":180,"__hash__":3870},"blog\u002Fblog\u002FQuantum Computers.md",{"name":300,"avatar":3805},{"src":302,"alt":300},{"type":304,"value":3807,"toc":3862},[3808,3811,3814,3817,3820,3823,3826,3829,3832,3835,3837,3840,3843,3846,3849,3852,3855,3859],[307,3809,3810],{},"Since the 1960's, the power of our machines has kept growing exponentially,\nallowing computers to get smaller and more powerful at the same time. But this\nprocess is about to meet its physical limits. Computer parts are approaching\nthe size of an atom. To understand why this is a problem, we have to clear up\nsome basics.",[307,3812,3813],{},"A computer is made up of very simple components doing very simple things.\nRepresenting data, the means of processing it, and control mechanisms.\nComputer chips contain modules, which contain logic gates, which contain\ntransistors.",[307,3815,3816],{},"A transistor is the simplest form of a data processor in computers, basically a switch that can either block, or open the way for information coming through. This information is made up of bits which can be set to either 0 or 1. Combinations of several bits are used to represent more complex\ninformation. Transistors are combined to create logic gates which still do\nvery simple stuff. For example, an AND Gate sends an output of 1 if all of its\ninputs are 1, and an output of 0 otherwise.",[307,3818,3819],{},"Combinations of logic gates finally form meaningful modules, say, for adding\ntwo numbers. Once you can add, you can also multiply, and once you can\nmultiply, you can basically do anything. Since all basic operations are\nliterally simpler than first grade math.",[307,3821,3822],{},"However, with parts getting tinier and tinier, quantum physics are making\nthings tricky. In a nutshell, a transistor is just an electric switch.\nElectricity is electrons moving from one place to another. So, a switch is a\npassage that can block electrons from moving in one direction.",[307,3824,3825],{},"Today, a typical scale for transistors is 14 nanometres, which is about 8\ntimes less than the HIV virus' diameter and 500 times smaller than a red blood\ncell. As transistors are shrinking to the size of only a few atoms, electrons\nmay just transfer themselves to the other side of a blocked passage via a\nprocess called Quantum Tunnelling.",[307,3827,3828],{},"In the quantum realm, physics works quite differently from the predictable\nways we're used to, and traditional computers just stop making sense. We are\napproaching a real physical barrier for our technological progress. To solve\nthis problem, scientists are trying to use these unusual quantum properties to\ntheir advantage by building quantum computers.",[307,3830,3831],{},"In normal computers, bits are the smallest unit of information. Quantum\ncomputers use qubits which can also be set to one of two values. A qubit can\nbe any two-level quantum system, such as a spin and a magnetic field, or a\nsingle photon. 0 and 1 are this system's possible states, like the photons\nhorizontal or vertical polarization.",[307,3833,3834],{},"In the quantum world, the qubit doesn't have to be just one of those, it can\nbe in any proportions of both states at once. This is called superposition.\nBut as soon as you test its value, say, by sending the photon through a\nfilter, it has to decide to be either vertically or horizontally polarized. So\nas long as it's unobserved, the qubit is in a superposition of probabilities\nfor 0 and 1, and you can't predict which it'll be. But the instant you measure\nit, it collapses into one of the definite states.",[307,3836,3834],{},[307,3838,3839],{},"Another property qubits can have is Entanglement, a close connection that\nmakes each of the qubits react to a change in the other's state\ninstantaneously, no matter how far they are apart. This means when measuring\njust one entangled qubit, you can directly deduce properties of its partners\nwithout having to look. Qubit Manipulation is a mind bender as well. A normal\nlogic gate gets a simple set of inputs and produces one definite output. A\nquantum gate manipulates an input of superpositions, rotates probabilities,\nand produces another superposition as its output.",[307,3841,3842],{},"So, a quantum computer sets up some qubits, applies quantum gates to entangle\nthem and manipulate probabilities, then finally measures the outcome,\ncollapsing superpositions to an actual sequence of 0s and 1s. What this means\nis that you get the entire lot of calculations that are possible with your\nsetup, all done at the same time.",[307,3844,3845],{},"Ultimately, you can only measure one of the results and it'll only probably be\nthe one you want, so you may have to double check and try again. But by\ncleverly exploiting superposition and entanglement, this can be exponentially\nmore efficient than would ever be possible on a normal computer.",[307,3847,3848],{},"So, while quantum computers will not probably not replace our home computers,\nin some areas, they are vastly superior. One of them is database searching. To\nfind something in a database, a normal computer may have to test every single\none of its entries. Quantum computers algorithms need only the square root of\nthat time, which for large databases, is a huge difference.",[307,3850,3851],{},"The most famous use of quantum computers is ruining IT security. Right now,\nyour browsing, email, and banking data is being kept secure by an encryption\nsystem in which you give everyone a public key to encode messages only you can\ndecode. The problem is that this public key can actually be used to calculate\nyour secret private key. Luckily, doing the necessary math on any normal\ncomputer would literally take years of trial and error. But a quantum computer\nwith exponential speed-up could do it in a breeze.",[307,3853,3854],{},"Another really exciting new use is simulations. Simulations of the quantum\nworld are very intense on resources, and even for bigger structures, such as\nmolecules, they often lack accuracy. So why not simulate quantum physics with\nactual quantum physics? Quantum simulations could provide new insights on\nproteins that might revolutionize medicine.",[350,3856,3858],{"id":3857},"we-still-have-no-idea-where-the-limits-of-quantum-computers-are-and-but-it-will-revolutionize-the-industry-for-sure","We still have no idea where the limits of quantum computers are and but it will revolutionize the industry for sure.",[307,3860,3861],{},"Disclaimer : The views and opinions expressed in the article belong solely to\nthe\nauthor, and not necessarily to the author's employer, organisation, committee\nor other group or individual.",{"title":358,"searchDepth":359,"depth":359,"links":3863},[3864],{"id":3857,"depth":368,"text":3858},"2020-12-06","What is a quantum computer and how is different from a traditional computer?","\u002Fassets\u002Fimages\u002Fblog\u002F071220\u002Ftitle.jpg",{},{"title":178,"description":3866},"xMZUmU9WPTt6jfWBkNNpkbPgptUJGBzCO03W1r5e6Dk",{"id":3872,"title":62,"author":3873,"body":3875,"date":3965,"description":3966,"extension":371,"image":3967,"meta":3968,"minRead":2305,"navigation":293,"path":63,"seo":3969,"stem":64,"__hash__":3970},"blog\u002Fblog\u002FComputer Vision.md",{"name":300,"avatar":3874},{"src":302,"alt":300},{"type":304,"value":3876,"toc":3963},[3877,3880,3883,3886,3889,3895,3898,3901,3907,3910,3913,3916,3919,3922,3925,3928,3931,3934,3937,3940,3946,3949,3955,3958,3961],[307,3878,3879],{},"Human vision is amazingly beautiful and complex. It all started billions of\nyears ago when small organisms developed a mutation that made them sensitive\nto light.",[307,3881,3882],{},"Fast forward to today, and there is an abundance of life on the planet which\nall have very similar visual systems. They include eyes for capturing light,\nreceptors in the brain for accessing it, and a visual cortex for processing\nit. Genetically engineered and balanced pieces of a system which help us do\nthings as simple as appreciating a sunrise.",[307,3884,3885],{},"But this is really just the beginning. In the past 30 years, we've made even\nmore strides to extending this amazing visual ability, not just to ourselves,\nbut to machines as well. The first type of photographic camera was invented\naround 1816 where a small box held a piece of paper coated with silver\nchloride. When the shutter was open, the silver chloride would darken where it\nwas exposed to light. Now, 200 years later, we have much more advanced\nversions of the system that can capture photos right into digital form. So,\nwe've been able to closely mimic how the human eye can capture light and\ncolour. But it's turning out that that was the easy part. Understanding what's\nin the photo is much more difficult.",[307,3887,3888],{},"Consider this picture.",[307,3890,3891],{},[710,3892],{"alt":3893,"src":3894},"flower","\u002Fassets\u002Fimages\u002Fblog\u002F301120\u002Fflower.jpg",[307,3896,3897],{},"A human brain can look at it and immediately know that it's a flower. Our\nbrains are cheating since we've got a couple million years worth of\nevolutionary context to help immediately understand what this is.",[307,3899,3900],{},"But a computer doesn't have that same advantage. To an algorithm, the image\nlooks like this.",[307,3902,3903],{},[710,3904],{"alt":3905,"src":3906},"flowerComputer","\u002Fassets\u002Fimages\u002Fblog\u002F301120\u002FflowerComputer.jpg",[307,3908,3909],{},"Just a massive array of integer values which represent intensities across the\ncolour spectrum. There's no context here, just a massive pile of data.",[307,3911,3912],{},"It turns out that the context is the crux of getting algorithms to understand\nimage content in the same way that the human brain does. And to make this\nwork, we use an algorithm very similar to how the human brain operates using\nmachine learning.",[307,3914,3915],{},"Machine learning allows us to effectively train the context for a data set so\nthat an algorithm can understand what all those numbers in a specific\norganization actually represent. And what if we have images that are difficult\nfor a human to classify? Can machine learning achieve better accuracy?",[307,3917,3918],{},"Computer vision is taking on increasingly complex challenges and is seeing\naccuracy that rivals humans performing the same image recognition tasks. But\nlike humans, these models aren't perfect. They do sometimes make mistakes.",[307,3920,3921],{},"The specific type of neural network that accomplishes this is called a\nconvolutional neural network or CNN. CNNs work by breaking an image down into\nsmaller groups of pixels called a filter. Each filter is a matrix of pixels,\nand the network does a series of calculations on these pixels comparing them\nagainst pixels in a specific pattern the network is looking for.",[307,3923,3924],{},"In the first layer of a CNN, it is able to detect high-level patterns like\nrough edges and curves. As the network performs more convolutions, it can\nbegin to identify specific objects like faces and animals.",[307,3926,3927],{},"How does a CNN know what to look for and if its prediction is accurate? This\nis done through a large amount of labelled training data. When the CNN starts,\nall of the filter values are randomized. As a result, its initial predictions\nmake little sense. Each time the CNN makes a prediction against labelled data,\nit uses an error function to compare how close its prediction was to the\nimage's actual label. Based on this error or loss function, the CNN updates\nits filter values and starts the process again. Ideally, each iteration\nperforms with slightly more accuracy.",[307,3929,3930],{},"What if instead of analysing a single image, we want to analyse a video using\nmachine learning? At its core, a video is just a series of image frames. To\nanalyse a video, we can build on our CNN for image analysis. In still images,\nwe can use CNNs to identify features. But when we move to video, things get\nmore difficult since the items we're identifying might change over time. Or,\nmore likely, there's context between the video frames that's highly important\nto labelling.",[307,3932,3933],{},"For example, if there's a picture of a half full cardboard box, we might want\nto label it packing a box or unpacking a box depending on the frames before\nand after it. This is where CNNs come up lacking. They can only take into\naccount spatial features, the visual data in an image, but can't handle\ntemporal or time features - how a frame is related to the one before it.",[307,3935,3936],{},"To address this issue, we have to take the output of our CNN and feed it into\nanother model which can handle the temporal nature of our videos. This type of\nmodel is called a recurrent neural network or RNN. While a CNN treats groups\nof pixels independently, an RNN can retain information about what it's already\nprocessed and use that in its decision making. RNNs can handle many types of\ninput and output data.",[307,3938,3939],{},"For example, we train the RNN by passing it a sequence of frame descriptions -\nempty box, open box, closing box - and finally, a label - packing.",[307,3941,3942],{},[710,3943],{"alt":3944,"src":3945},"RNN","\u002Fassets\u002Fimages\u002Fblog\u002F301120\u002FRNN.jpg",[307,3947,3948],{},"As the RNN processes each sequence, it uses a loss or error function to\ncompare its predicted output with the correct label. Then it adjusts the\nweights and processes the sequence again until it achieves a higher accuracy.",[307,3950,3951],{},[710,3952],{"alt":3953,"src":3954},"wolf","\u002Fassets\u002Fimages\u002Fblog\u002F301120\u002Fwolf.jpg",[307,3956,3957],{},"The challenge of these approaches to image and video models, however, is that\nthe amount of data we need to truly mimic human vision is incredibly large. If\nwe train our model to recognize a picture of a wolf, as long as we're given\nthis one picture with the same lighting, colour, angle, and shape, we can see\nthat it's a wolf. But if you change any of that or even just rotate the wolf,\nthe algorithm might not understand what it is anymore.",[307,3959,3960],{},"Now, this is the big picture problem. To get an algorithm to truly understand\nand recognize image content the way the human brain does, you need to feed it\nincredibly large amounts of data of millions of objects across thousands of\nangles all annotated and properly defined.",[307,3962,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":3964},[],"2020-11-29","How does a computer see the world","\u002Fassets\u002Fimages\u002Fblog\u002F301120\u002Ftitle.jpg",{},{"title":62,"description":3966},"yOp2YuKqGskckgjO174dzZU5vbixnEN_ciHELy5lz8A",{"id":3972,"title":50,"author":3973,"body":3975,"date":4028,"description":4029,"extension":371,"image":4030,"meta":4031,"minRead":860,"navigation":293,"path":51,"seo":4032,"stem":52,"__hash__":4033},"blog\u002Fblog\u002FBlockchains - How and Why.md",{"name":300,"avatar":3974},{"src":302,"alt":300},{"type":304,"value":3976,"toc":4025},[3977,3980,3983,3986,3989,3992,3995,3998,4001,4004,4007,4010,4013,4016,4019,4023],[307,3978,3979],{},"Blockchains are incredibly popular nowadays. But what is a blockchain? How do\nthey work, what problems do they solve and how can they be used?",[307,3981,3982],{},"Like the name indicates, a blockchain is a chain of blocks that contains\ninformation. This technique was originally described in 1991 by a group of\nresearchers and was originally intended to timestamp digital documents so that\nit’s not possible to backdate them or to tamper with them. Almost like a\nnotary. However, it went by mostly unused until it was adapted by Satoshi\nNakamoto in 2009 to create the digital cryptocurrency Bitcoin.",[307,3984,3985],{},"A blockchain is a distributed ledger that is completely open to anyone. They\nhave an interesting property: once some data has been recorded inside a\nblockchain, it becomes very difficult to change it.",[307,3987,3988],{},"So how does that work?",[307,3990,3991],{},"Well, let’s take a closer look at a block. Each block contains some data, the\nhash of the block and the hash of the previous block. The data that is stored\ninside a block depends on the type of blockchain.",[307,3993,3994],{},"The Bitcoin blockchain for example stores the details about a transaction,\nsuch as the sender, receiver and amount of coins.",[307,3996,3997],{},"A block also has a hash. You can compare a hash to a fingerprint. It\nidentifies a block and all of its contents and it's always unique, just as a\nfingerprint.",[307,3999,4000],{},"Once a block is created, its hash is being calculated. Changing something\ninside the block will cause the hash to change. So, in other words: hashes are\nvery useful when you want to detect changes to blocks. If the fingerprint of a\nblock changes, it no longer is the same block.",[307,4002,4003],{},"The third element inside each block is the hash of the previous block. This\neffectively creates a chain of blocks and it’s this technique that makes a\nblockchain so secure.",[307,4005,4006],{},"Let's take an example. Let’s assume, we have a chain of 3 blocks. Each block\nhas a hash and the hash of the previous block. So, block number 3 points to\nblock number 2 and number 2 points to number 1. Now the first block is a bit\nspecial, it cannot point to previous blocks because it's the first one. We\ncall this the genesis block. Now let's say that you tamper with the second\nblock. This causes the hash of the block to change as well. In turn that will\nmake block 3 and all following blocks invalid because they no longer store a\nvalid hash of the previous block. So, changing a single block will make all\nfollowing blocks invalid.",[307,4008,4009],{},"But using hashes is not enough to prevent tampering. Computers these days are\nvery fast and can calculate hundreds of thousands of hashes per second. You\ncould effectively tamper with a block and recalculate all the hashes of other\nblocks to make your blockchain valid again. So, to mitigate this, blockchains\nhave something called proof-of-work. It's a mechanism that slows down the\ncreation of new blocks. In Bitcoins case: it takes about 10 minutes to\ncalculate the required proof-of-work and add a new block to the chain. This\nmechanism makes it very hard to tamper with the blocks, because if you tamper\nwith 1 block, you'll need to recalculate the proof-of-work for all the\nfollowing blocks.",[307,4011,4012],{},"So, the security of a blockchain comes from its creative use of hashing and\nthe proof-of-work mechanism. But there is one more way that blockchains secure\nthemselves and that's by being distributed.",[307,4014,4015],{},"Instead of using a central entity to manage the chain, blockchains use a\npeer-to-peer network and anyone is allowed to join. When someone joins this\nnetwork, he gets the full copy of the blockchain. The node can use this to\nverify that everything is still in order. Now let's see what happens when\nsomeone creates a new block. That new block is send to everyone on the\nnetwork. Each node then verifies the block to make sure that it hasn't been\ntampered with. If everything checks out, each node adds this block to their\nown blockchain. All the nodes in this network create consensus. They agree\nabout what blocks are valid and which aren't. Blocks that are tampered with\nwill be rejected by other nodes in the network. So, to successfully tamper\nwith a blockchain you'll need to tamper with all blocks on the chain, redo the\nproof-of-work for each block and take control of more than 50% of the\npeer-to-peer network. Only then will your tampered block become accepted by\neveryone else. This is almost impossible to do!",[307,4017,4018],{},"Blockchains are also constantly evolving. One of the more recent developments\nis the creation of smart contracts. These contracts are simple programs that\nare stored on the blockchain and can be used to automatically exchange coins\nbased on certain conditions.",[350,4020,4022],{"id":4021},"the-creation-of-blockchain-technology-peaked-a-lot-of-peoples-interest-soon-others-realized-that-the-technology-could-be-used-for-other-things-like-storing-medical-records-creating-a-digital-notary-or-even-collecting-taxes","The creation of blockchain technology peaked a lot of people’s interest. Soon, others realized that the technology could be used for other things like storing medical records, creating a digital notary or even collecting taxes.",[307,4024,2288],{},{"title":358,"searchDepth":359,"depth":359,"links":4026},[4027],{"id":4021,"depth":368,"text":4022},"2020-11-22","The basic structure and functioning of the blockchains.","\u002Fassets\u002Fimages\u002Fblog\u002F221120\u002Ftitle.jpg",{},{"title":50,"description":4029},"oNUgsH7nomrTTgIpXhTeRnDAy9pTz-NtHl52LrvINaw",{"id":4035,"title":114,"author":4036,"body":4038,"date":4105,"description":4106,"extension":371,"image":4107,"meta":4108,"minRead":969,"navigation":293,"path":115,"seo":4109,"stem":116,"__hash__":4110},"blog\u002Fblog\u002FIndustry 4.md",{"name":300,"avatar":4037},{"src":302,"alt":300},{"type":304,"value":4039,"toc":4097},[4040,4043,4046,4049,4052,4056,4059,4063,4066,4070,4073,4077,4080,4084,4087,4091,4094],[307,4041,4042],{},"Industry 4.0 refers to the fourth industrial revolution, although it is\nconcerned with areas that are not usually classified as industry applications\nin their own right. With the digitization of manufacturing, we are in the\nmidst of a significant transformation regarding the way we produce products.\nThis transition is so compelling that it is being called Industry 4.0 to\nrepresent the fourth revolution that has occurred in manufacturing.",[307,4044,4045],{},"The first industrial revolution came with the advent of mechanisation, steam\npower and water power. This was followed by the second industrial revolution,\nwhich revolved around mass production and assembly lines using electricity.\nThe third industrial revolution came with electronics, I.T. systems and\nautomation, which led to the fourth industrial revolution that is associated\nwith cyber physical systems.",[307,4047,4048],{},"When computers were introduced in Industry 3.0, it was disruptive. Now, and\ninto the future as Industry 4.0 unfolds, computers are connected and\ncommunicate with one another to ultimately make decisions without human\ninvolvement. A combination of cyber-physical systems, the Internet of Things\nand the Internet of Systems make Industry 4.0 possible and the smart factory a\nreality. As a result of the support of smart machines that keep getting\nsmarter as they get access to more data, our factories will become more\nefficient and productive and less wasteful. Ultimately, it's the network of\nthese machines that are digitally connected with one another and create and\nshare information that results in the true power of Industry 4.0.",[307,4050,4051],{},"Many organizations are implementing changes today and preparing for a future\nwhere smart machines improve their business. Here are just a few of the\npossible applications:",[314,4053,4055],{"id":4054},"autonomous-equipment-and-vehicles","Autonomous equipment and vehicles",[307,4057,4058],{},"There are shipping yards that are leveraging autonomous cranes and trucks to\nstreamline operations as they accept shipping containers from the ships.\nAutonomous vehicles can provide more efficient logistics and passenger\ntransfer methods. Furthermore, smart sensors along with implementation of\ncognitive computing and the Internet of Things (IoT) represent an AV as a\ncyber-physical system (CPS), within which information from all related\nperspectives is closely monitored and synchronized between the physical\ndevices and the cyber computational space. By utilizing advanced information\nanalytics, AVs will be able to perform more efficiently, collaboratively and\nresiliently. Thus, it is possible to integrate AVs into Industry 4.0 systems.",[314,4060,4062],{"id":4061},"internet-of-things-iot-and-the-cloud","Internet of Things (IoT) and the cloud",[307,4064,4065],{},"A key component of Industry 4.0 is the Internet of Things that is\ncharacterized by connected devices. Not only does this help internal\noperations, but through the use of the cloud environment where data is stored,\nequipment and operations can be optimized by leveraging the insights of others\nusing the same equipment or to allow smaller enterprises access to technology\nthey wouldn’t be able to on their own.",[314,4067,4069],{"id":4068},"digital-twins","Digital Twins",[307,4071,4072],{},"Since connected machines collect a tremendous volume of data that can inform\nmaintenance, performance and other issues, as well as analyse that data to\nidentify patterns and insights that would be impossible for a human to do in a\nreasonable timeframe, Industry 4.0 offers the opportunity for manufacturers to\noptimize their operations quickly and efficiently by knowing what needs\nattention.",[314,4074,4076],{"id":4075},"optimize-logistics-and-supply-chains","Optimize logistics and supply chains",[307,4078,4079],{},"A connected supply chain can adjust and accommodate when new information is\npresented. If a weather delay ties up a shipment, a connected system can\nproactively adjust to that reality and modify manufacturing priorities.",[314,4081,4083],{"id":4082},"robots","Robots",[307,4085,4086],{},"Once only possible for large enterprises with equally large budgets, robotics\nis now more affordable and available to organizations of every size. From\npicking products at a warehouse to getting them ready to ship, autonomous\nrobots can quickly and safely support manufacturers. Robots move goods around\nAmazon warehouses and also reduce costs and allow better use of floor space\nfor the online retailer.",[314,4088,4090],{"id":4089},"_3d-printing","3D Printing",[307,4092,4093],{},"This technology has improved tremendously in the last decade and has\nprogressed from primarily being used for prototyping to actual production.\nAdvances in the use of metal additive manufacturing have opened up a lot of\npossibilities for production.",[307,4095,4096],{},"Disclaimer : The views and opinions expressed in the article belong solely to the\nauthor, and not necessarily to the author's employer, organisation, committee\nor other group or individual.",{"title":358,"searchDepth":359,"depth":359,"links":4098},[4099,4100,4101,4102,4103,4104],{"id":4054,"depth":359,"text":4055},{"id":4061,"depth":359,"text":4062},{"id":4068,"depth":359,"text":4069},{"id":4075,"depth":359,"text":4076},{"id":4082,"depth":359,"text":4083},{"id":4089,"depth":359,"text":4090},"2020-11-15","The fourth industrial revolution.","\u002Fassets\u002Fimages\u002Fblog\u002F161120\u002Ftitle.jpg",{},{"title":114,"description":4106},"h1XVOAfYDJh-rrSYLRI2yFDOQyEdy4jAZjyTszy5680",{"id":4112,"title":130,"author":4113,"body":4115,"date":4192,"description":4193,"extension":371,"image":4194,"meta":4195,"minRead":969,"navigation":293,"path":131,"seo":4196,"stem":132,"__hash__":4197},"blog\u002Fblog\u002FLets talk about SOLID Principles.md",{"name":300,"avatar":4114},{"src":302,"alt":300},{"type":304,"value":4116,"toc":4183},[4117,4120,4124,4127,4131,4134,4138,4141,4149,4152,4156,4159,4163,4166,4174,4177,4181],[307,4118,4119],{},"SOLID stands for 5 important design principles for Object Oriented Programming\n(OOP). These 5 principles were introduced by Robert C. Martin (Uncle Bob), in\na paper Design Principles and Design Patterns in 2000. The actual SOLID\nacronym was, however, identified later by Michael Feathers. The intention of\nthese principles is to make software designs more understandable, easier to\nmaintain and easier to extend. As a software engineer, these 5 principles are\nessential to know!",[314,4121,4123],{"id":4122},"s-single-responsibility-principle","S — Single responsibility principle",[307,4125,4126],{},"In programming, the Single Responsibility Principle states that every module\nor class should have responsibility over a single part of the functionality\nprovided by the software. You may have heard the quote: “Do one thing and do\nit well”. This refers to the single responsibility principle. In the article\nPrinciples of Object Oriented Design, Robert C. Martin defines a\nresponsibility as a ‘reason to change’, and concludes that a class or module\nshould have one, and only one, reason to be changed.",[314,4128,4130],{"id":4129},"o-openclosed-principle","O — Open\u002Fclosed principle",[307,4132,4133],{},"In programming, the open\u002Fclosed principle states that software entities\n(classes, modules, functions, etc.) should be open for extensions, but closed\nfor modification. If you have a general understanding of OOP, you probably\nalready know about polymorphism. We can make sure that our code is compliant\nwith the open\u002Fclosed principle by utilizing inheritance and\u002For implementing\ninterfaces that enable classes to polymorphically substitute for each other.",[314,4135,4137],{"id":4136},"l-liskov-substitution-principle","L — Liskov substitution principle",[307,4139,4140],{},"This one is probably the hardest one to wrap your head around when being\nintroduced for the first time. In programming, the Liskov substitution\nprinciple states that if S is a subtype of T, then objects of type T may be\nreplaced (or substituted) with objects of type S. This can be formulated\nmathematically as",[769,4142,4143,4146],{},[772,4144,4145],{},"Let ϕ(x) be a property provable about objects x of type T.",[772,4147,4148],{},"Then ϕ(y) should be true for objects y of type S, where S is a subtype of T.",[307,4150,4151],{},"More generally it states that objects in a program should be replaceable with\ninstances of their subtypes without altering the correctness of that program.",[314,4153,4155],{"id":4154},"i-interface-segregation-principle","I — Interface segregation principle",[307,4157,4158],{},"This principle is fairly easy to comprehend. In fact, if you’re used to using\ninterfaces, chances are that you’re already applying this principle. If not,\nit’s time to start doing it! In programming, the interface segregation\nprinciple states that no client should be forced to depend on methods it does\nnot use. Put more simply: Do not add additional functionality to an existing\ninterface by adding new methods. Instead, create a new interface and let your\nclass implement multiple interfaces if needed.",[314,4160,4162],{"id":4161},"d-dependency-inversion-principle","D - Dependency inversion principle",[307,4164,4165],{},"In programming, the dependency inversion principle is a way to decouple\nsoftware modules. This principle states that",[769,4167,4168,4171],{},[772,4169,4170],{},"High-level modules should not depend on low-level modules. Both should\ndepend on abstractions.",[772,4172,4173],{},"Abstractions should not depend on details. Details should depend on\nabstractions.",[307,4175,4176],{},"To comply with this principle, we need to use a design pattern known as a\ndependency inversion pattern, most often solved by using dependency injection.\nDependency injection is a huge topic and can be as complicated or simple as\none might see the need for. Typically, dependency injection is used simply by\n‘injecting’ any dependencies of a class through the class’ constructor as an\ninput parameter.",[350,4178,4180],{"id":4179},"by-applying-these-5-principles-that-make-the-solid-acronym-we-get-to-benefit-from-a-reusable-maintainable-scalable-and-easy-testable-codebase","By applying these 5 principles that make the SOLID acronym, we get to benefit from a reusable, maintainable, scalable and easy testable codebase.",[307,4182,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":4184},[4185,4186,4187,4188,4189],{"id":4122,"depth":359,"text":4123},{"id":4129,"depth":359,"text":4130},{"id":4136,"depth":359,"text":4137},{"id":4154,"depth":359,"text":4155},{"id":4161,"depth":359,"text":4162,"children":4190},[4191],{"id":4179,"depth":368,"text":4180},"2020-11-08","A brief explanation of the SOLID design principles by Uncle Bob.","\u002Fassets\u002Fimages\u002Fblog\u002F091120\u002Ftitle.jpg",{},{"title":130,"description":4193},"g7_0hAfqJCXbWqx0kkLiFCrQb7BpLDMgixzAzmcEDFQ",{"id":4199,"title":174,"author":4200,"body":4202,"date":4484,"description":4485,"extension":371,"image":4486,"meta":4487,"minRead":969,"navigation":293,"path":175,"seo":4488,"stem":176,"__hash__":4489},"blog\u002Fblog\u002FProcesses for Better Software Volume 3.md",{"name":300,"avatar":4201},{"src":302,"alt":300},{"type":304,"value":4203,"toc":4477},[4204,4207,4211,4214,4218,4221,4224,4333,4336,4377,4381,4384,4388,4391,4461,4464,4468,4471,4473],[307,4205,4206],{},"There are many ways to write code to do something. But only when we do follow\ncertain ways, does the code remains maintainable and thus usable for a long\ntime to come.",[314,4208,4210],{"id":4209},"_1-limit-methodfunction-arguments","1. Limit method\u002Ffunction arguments.",[307,4212,4213],{},"It is always a better practice to limit our arguments\u002Fparameters to 3 or less.\nThis improves the readability and in extension, maintainability. If it is\ncrossing a number, then it is time to refactor the code. As an example, if we\ncan accommodate multiple arguments into an object, in a meaningful way, then\nwe can effectively decrease the number of arguments passed, while still\nretaining the same result.",[314,4215,4217],{"id":4216},"_2-simplify-conditional-expressions","2. Simplify conditional expressions.",[307,4219,4220],{},"We all need to use conditional expressions in our codes. The trick is\nsimplifying it in a way that it remains readable. The following two methods\ntakes in same argument and gives same output, only the function on the second\none does it in a much simpler way.",[307,4222,4223],{},"Method 1:",[4225,4226,4230],"pre",{"className":4227,"code":4228,"language":4229,"meta":358,"style":358},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","function isPersonAdult(person) {\n  if (person.age >= 18) {\n    return true;\n  } else {\n    return false;\n  }\n}\n","js",[4231,4232,4233,4260,4292,4304,4314,4323,4328],"code",{"__ignoreMap":358},[4234,4235,4238,4242,4246,4250,4254,4257],"span",{"class":4236,"line":4237},"line",1,[4234,4239,4241],{"class":4240},"spNyl","function",[4234,4243,4245],{"class":4244},"s2Zo4"," isPersonAdult",[4234,4247,4249],{"class":4248},"sMK4o","(",[4234,4251,4253],{"class":4252},"sHdIc","person",[4234,4255,4256],{"class":4248},")",[4234,4258,4259],{"class":4248}," {\n",[4234,4261,4262,4266,4270,4273,4276,4279,4282,4286,4289],{"class":4236,"line":359},[4234,4263,4265],{"class":4264},"s7zQu","  if",[4234,4267,4269],{"class":4268},"swJcz"," (",[4234,4271,4253],{"class":4272},"sTEyZ",[4234,4274,4275],{"class":4248},".",[4234,4277,4278],{"class":4272},"age",[4234,4280,4281],{"class":4248}," >=",[4234,4283,4285],{"class":4284},"sbssI"," 18",[4234,4287,4288],{"class":4268},") ",[4234,4290,4291],{"class":4248},"{\n",[4234,4293,4294,4297,4301],{"class":4236,"line":368},[4234,4295,4296],{"class":4264},"    return",[4234,4298,4300],{"class":4299},"sfNiH"," true",[4234,4302,4303],{"class":4248},";\n",[4234,4305,4306,4309,4312],{"class":4236,"line":969},[4234,4307,4308],{"class":4248},"  }",[4234,4310,4311],{"class":4264}," else",[4234,4313,4259],{"class":4248},[4234,4315,4316,4318,4321],{"class":4236,"line":860},[4234,4317,4296],{"class":4264},[4234,4319,4320],{"class":4299}," false",[4234,4322,4303],{"class":4248},[4234,4324,4325],{"class":4236,"line":3191},[4234,4326,4327],{"class":4248},"  }\n",[4234,4329,4330],{"class":4236,"line":2305},[4234,4331,4332],{"class":4248},"}\n",[307,4334,4335],{},"Method 2:",[4225,4337,4339],{"className":4227,"code":4338,"language":4229,"meta":358,"style":358},"function isPersonAdult(person) {\n  return person.age >= 18;\n}\n",[4231,4340,4341,4355,4373],{"__ignoreMap":358},[4234,4342,4343,4345,4347,4349,4351,4353],{"class":4236,"line":4237},[4234,4344,4241],{"class":4240},[4234,4346,4245],{"class":4244},[4234,4348,4249],{"class":4248},[4234,4350,4253],{"class":4252},[4234,4352,4256],{"class":4248},[4234,4354,4259],{"class":4248},[4234,4356,4357,4360,4363,4365,4367,4369,4371],{"class":4236,"line":359},[4234,4358,4359],{"class":4264},"  return",[4234,4361,4362],{"class":4272}," person",[4234,4364,4275],{"class":4248},[4234,4366,4278],{"class":4272},[4234,4368,4281],{"class":4248},[4234,4370,4285],{"class":4284},[4234,4372,4303],{"class":4248},[4234,4374,4375],{"class":4236,"line":368},[4234,4376,4332],{"class":4248},[314,4378,4380],{"id":4379},"_3-declare-variables-near-to-their-usage","3. Declare variables near to their usage.",[307,4382,4383],{},"Some of us (including myself), usually have a tendency to declare all the\nvariables at one place. Usually at the top. Even if the variables are\nfollowing good naming conventions such that one look will give you the idea\nwhat it is used for, it is still a better way and a good practice to declare\nit near to where it is being used. One adverse effect of declaring all\nvariables in one place is we might scroll up and down a lot while trying to\nunderstand the variable and it is highly likely to get distracted during that\nprocess. We might be in the middle of creating a feature or fixing a bug and\nit is always better to finish the job at hand before jumping into another.",[314,4385,4387],{"id":4386},"_4-avoid-unintended-consequences-in-your-function","4. Avoid unintended consequences in your function.",[307,4389,4390],{},"If you are creating a function with a name associated with its job, then that\nparticular function should do just that. Nothing more, nothing less. Again, in\nthe long run this makes the code more maintainable. For example,",[4225,4392,4394],{"className":4227,"code":4393,"language":4229,"meta":358,"style":358},"function addNumbers(numberOne, numberTwo) {\n  emailService.send(\"Addition is done.\");\n  return numberOne + numberTwo;\n}\n",[4231,4395,4396,4418,4443,4457],{"__ignoreMap":358},[4234,4397,4398,4400,4403,4405,4408,4411,4414,4416],{"class":4236,"line":4237},[4234,4399,4241],{"class":4240},[4234,4401,4402],{"class":4244}," addNumbers",[4234,4404,4249],{"class":4248},[4234,4406,4407],{"class":4252},"numberOne",[4234,4409,4410],{"class":4248},",",[4234,4412,4413],{"class":4252}," numberTwo",[4234,4415,4256],{"class":4248},[4234,4417,4259],{"class":4248},[4234,4419,4420,4423,4425,4428,4430,4433,4437,4439,4441],{"class":4236,"line":359},[4234,4421,4422],{"class":4272},"  emailService",[4234,4424,4275],{"class":4248},[4234,4426,4427],{"class":4244},"send",[4234,4429,4249],{"class":4268},[4234,4431,4432],{"class":4248},"\"",[4234,4434,4436],{"class":4435},"sfazB","Addition is done.",[4234,4438,4432],{"class":4248},[4234,4440,4256],{"class":4268},[4234,4442,4303],{"class":4248},[4234,4444,4445,4447,4450,4453,4455],{"class":4236,"line":368},[4234,4446,4359],{"class":4264},[4234,4448,4449],{"class":4272}," numberOne",[4234,4451,4452],{"class":4248}," +",[4234,4454,4413],{"class":4272},[4234,4456,4303],{"class":4248},[4234,4458,4459],{"class":4236,"line":969},[4234,4460,4332],{"class":4248},[307,4462,4463],{},"Usually, there is no need for the line “emailService.send(“Addition is\ndone.”);” inside this function. Either change the name of the function\naccordingly or just remove the line to make a more sensible, readable and\nmaintainable function.",[314,4465,4467],{"id":4466},"_5-avoid-zombie-code","5. Avoid zombie code.",[307,4469,4470],{},"This is simply dead code but with a chance to come alive. In layman’s terms,\nzombie code is usually commented code, kept by engineers, who cannot decide\nwhether it should be deleted or not because there might be a slight chance\nthat they might have to use it at some point in the future. This again will\nmost probably distract any other engineer who comes into maintain the code.\nThey will not be sure whether to keep it not, mainly because they do not know\nwhy it was created in the first place and will spend a lot of time on the\nsame. One thing for sure is we must never put this inside a production code.",[307,4472,4096],{},[4474,4475,4476],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}",{"title":358,"searchDepth":359,"depth":359,"links":4478},[4479,4480,4481,4482,4483],{"id":4209,"depth":359,"text":4210},{"id":4216,"depth":359,"text":4217},{"id":4379,"depth":359,"text":4380},{"id":4386,"depth":359,"text":4387},{"id":4466,"depth":359,"text":4467},"2020-11-01","Best practices for software engineers.","\u002Fassets\u002Fimages\u002Fblog\u002F021120\u002Ftitle.jpg",{},{"title":174,"description":4485},"TCvMeoxwBxGr8i0XK3-nCmtDXsswfu-SnE7bW3Os4fE",{"id":4491,"title":270,"author":4492,"body":4494,"date":4595,"description":4596,"extension":371,"image":4597,"meta":4598,"minRead":860,"navigation":293,"path":271,"seo":4599,"stem":272,"__hash__":4600},"blog\u002Fblog\u002FWhat are Digital Twins.md",{"name":300,"avatar":4493},{"src":302,"alt":300},{"type":304,"value":4495,"toc":4585},[4496,4499,4502,4506,4511,4514,4518,4523,4526,4530,4535,4538,4541,4545,4550,4553,4557,4563,4566,4570,4576,4579,4583],[307,4497,4498],{},"Digital Twin is the ability to take a virtual representation of the elements\nand dynamics of how an Internet of things (IoT) device operates and works.\nIt’s more than a blueprint or schematic. It’s not just a picture. It’s lot\nmore than a pair of glasses. It’s the understanding of how a device operates\nand lives throughout its life-cycle. It’s the understanding of all of the\ndevice’s dynamics, no matter whether it’s the enclosed parts are being moved\nor if it’s the device that moving itself. It’s about the elements that compose\nit and the dynamics of how that device is put together.",[307,4500,4501],{},"Done correctly, a digital twin will influence how design, build and operations\nof a device are constructed in a single life-cycle.",[314,4503,4505],{"id":4504},"design","Design",[307,4507,4508],{},[710,4509],{"alt":4504,"src":4510},"\u002Fassets\u002Fimages\u002Fblog\u002F261020\u002Fdesign.jpg",[307,4512,4513],{},"The design phase is where the engineering tooling comes together, bringing\ntogether physical elements, physical bill of materials and pulling together\nthe virtual elements. For example, the softwares on the cars and all the\ndifferent elements, being able to coordinate and collaborate into a single\nfacility of operational oriented design that is designed to bring out the\nhighest quality product.",[314,4515,4517],{"id":4516},"build","Build",[307,4519,4520],{},[710,4521],{"alt":4516,"src":4522},"\u002Fassets\u002Fimages\u002Fblog\u002F261020\u002Fbuild.jpg",[307,4524,4525],{},"In the build phase, it is about understanding how the devices that make the\nproduct influence the product’s tolerances, stresses and designs. It’s about\nbetter manufacturing to drive the correct tolerances and correct outcomes that\nyou want to see for the product that you are actually making.",[314,4527,4529],{"id":4528},"operations","Operations",[307,4531,4532],{},[710,4533],{"alt":4528,"src":4534},"\u002Fassets\u002Fimages\u002Fblog\u002F261020\u002Foperations.jpg",[307,4536,4537],{},"The digital twin facilitates the actual operation of the product as well.\nProduct’s age, different environments the products go through – they deal with\nthings like whether and they will have different tolerances and they will\ndrift along with the product as they age and that feedback. When done\ncorrectly, not only facilitates the operations of the product, but helps\nfacilitate better design and better manufacturing by the lessons that are\nlearned and the re-calibrations takes place along the way.",[307,4539,4540],{},"Now, there are essential capabilities that must be present in a digital twin.",[314,4542,4544],{"id":4543},"analytics","Analytics",[307,4546,4547],{},[710,4548],{"alt":4543,"src":4549},"\u002Fassets\u002Fimages\u002Fblog\u002F261020\u002Fanalytics.jpg",[307,4551,4552],{},"First, you have to apply analytics at every single step. The amount of\ninformation that we are dealing with to ply digital twin to a small device or\nto a complex device such as an automobile or an aircraft is staggering.\nAnalytics has to be real-time, but has to be operational, has to have quality,\nit has to be predictive oriented in its nature.",[314,4554,4556],{"id":4555},"open-and-federated-data","Open and Federated Data",[307,4558,4559],{},[710,4560],{"alt":4561,"src":4562},"data","\u002Fassets\u002Fimages\u002Fblog\u002F261020\u002Fdata.jpg",[307,4564,4565],{},"The data that comes from the digital twin need to be open, you have to be able\nto access it for a variety of different sources, you have to be able to pull\nit together into a federated model and you have to be able to bring it\ntogether so you can get that interaction, that dynamics to play. It’s not just\na schematic or a picture that you are making, you are actually making a\ndynamic model that you are going to shift as you go through the design, the\nbuild and the operation phase of what you do with the life-cycle of that\nproduct.",[314,4567,4569],{"id":4568},"industry-context","Industry Context",[307,4571,4572],{},[710,4573],{"alt":4574,"src":4575},"industry","\u002Fassets\u002Fimages\u002Fblog\u002F261020\u002Findustry.jpg",[307,4577,4578],{},"You may actually use the same product differently in two different industries\nand have two different digital twins for that one product based on how the\nindustry uses that product. For example, a pump used in the oil and gas or the\npump that used in the municipal or wellness and water, the outcome is based on\nthe industry context of how that device is going to be used. So, the digital\ntwin not only captures the engineering aspects, but it also captures the\nindustry context, the dynamics of how that product is used at the same time.",[350,4580,4582],{"id":4581},"the-digital-representation-provides-both-the-elements-and-the-dynamics-of-how-an-internet-of-things-iot-device-operates-and-lives-throughout-its-life-cycle","The digital representation provides both the elements and the dynamics of how an Internet of things (IoT) device operates and lives throughout its life cycle",[307,4584,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":4586},[4587,4588,4589,4590,4591,4592],{"id":4504,"depth":359,"text":4505},{"id":4516,"depth":359,"text":4517},{"id":4528,"depth":359,"text":4529},{"id":4543,"depth":359,"text":4544},{"id":4555,"depth":359,"text":4556},{"id":4568,"depth":359,"text":4569,"children":4593},[4594],{"id":4581,"depth":368,"text":4582},"2020-10-25","A brief introduction to digital twins.","\u002Fassets\u002Fimages\u002Fblog\u002F261020\u002Ftitle.jpg",{},{"title":270,"description":4596},"qQu8-yivuhJWgziW_AS1LVt9xTBXpf6_BzbiCky8fX4",{"id":4602,"title":94,"author":4603,"body":4605,"date":4671,"description":4672,"extension":371,"image":4673,"meta":4674,"minRead":368,"navigation":293,"path":95,"seo":4675,"stem":96,"__hash__":4676},"blog\u002Fblog\u002FGood practices for Git.md",{"name":300,"avatar":4604},{"src":302,"alt":300},{"type":304,"value":4606,"toc":4664},[4607,4610,4613,4617,4620,4623,4634,4638,4641,4645,4648,4652,4655,4659,4662],[307,4608,4609],{},"Git has become the most preferred Version Control System (VCS) by software\nengineers. It adds great value to engineering teams, where several personnel\nwork together and is a need for integrating everyone’s code reliably.",[307,4611,4612],{},"Git is a powerful tool. “But with great power, comes great responsibility”. If\nwe do not follow certain conventions, it could end up as a bite in the back.\nSo, here are some best practices for Git.",[314,4614,4616],{"id":4615},"_1-make-clean-single-purpose-commits","1. Make clean, single-purpose commits.",[307,4618,4619],{},"There is a great chance for engineers to get sidetracked and do something else\nwhen they are working on something. For example, you might be fixing a bug.\nThen you find another bug. You probably cannot resist the urge to fix that as\nwell, and another and another. Soon, you will end up with so many changes\ngoing in one commit.",[307,4621,4622],{},"Commits are better kept small and focused as possible for many reasons:",[769,4624,4625,4628,4631],{},[772,4626,4627],{},"It makes easier for anyone looking at your change, making code reviews more\nefficient.",[772,4629,4630],{},"It is easier to roll back.",[772,4632,4633],{},"It is straightforward to track these changes with your ticketing system.",[314,4635,4637],{"id":4636},"_2-commit-early-and-often","2. Commit early and often",[307,4639,4640],{},"Git works best and, in our favor, when we commit our work often. It is better\nto work in small chunks and keep committing our work rather than to wait for\nmaking the perfect commit. It could help us mitigate conflicts when we are\nworking on a feature that might take a long time to finish. Git will only take\nresponsibility for the data we commit. It will help us from losing our work,\nreverting changes and help trace what we did when.",[314,4642,4644],{"id":4643},"_3-write-meaningful-commit-messages","3. Write meaningful commit messages",[307,4646,4647],{},"This is the simplest of all. Descriptive and insightful commit messages that\nconcisely describe what changes are being made as part of a commit make life\neasier for others as well as for our future self. If you are using a ticketing\nsystem, you should also include the ticket id in the description.",[314,4649,4651],{"id":4650},"_4-dont-commit-generated-files","4. Don’t commit generated files",[307,4653,4654],{},"The files actually worth committing are the ones that was created with manual\neffort and cannot be generated. Usually, the generated files can be\nre-generated at will and normally do not work with line-based diff tracking as\nwell. We always need to make sure to add a .gitignore file in our repositories\nto automatically tell git which files or paths we do not want to track.",[314,4656,4658],{"id":4657},"_5-dont-alter-published-history","5. Don’t alter published history",[307,4660,4661],{},"Once a commit has been merged to an upstream default branch, it is strongly\nadvised not to alter history. Git and other VCS tools do allow to rewrite\nbranch history, but doing so is problematic for everyone who has access to the\nrepository. git-rebase is a useful feature. But it should only be used on\nbranches that only one person is working with. Nevertheless, there would\ninevitably be some situations where there is a need for a history rewrite on a\npublished branch. But do it with extreme care.",[307,4663,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":4665},[4666,4667,4668,4669,4670],{"id":4615,"depth":359,"text":4616},{"id":4636,"depth":359,"text":4637},{"id":4643,"depth":359,"text":4644},{"id":4650,"depth":359,"text":4651},{"id":4657,"depth":359,"text":4658},"2020-10-18","What are the good practices to make git work in our favor.","\u002Fassets\u002Fimages\u002Fblog\u002F191020\u002Ftitle.jpg",{},{"title":94,"description":4672},"7d1dMf6slVhBYAhBpCqdYIle79rtE3voNfV6Qh4vXgU",{"id":4678,"title":98,"author":4679,"body":4681,"date":4766,"description":4767,"extension":371,"image":4768,"meta":4769,"minRead":969,"navigation":293,"path":99,"seo":4770,"stem":100,"__hash__":4771},"blog\u002Fblog\u002FHow do browsers work.md",{"name":300,"avatar":4680},{"src":302,"alt":300},{"type":304,"value":4682,"toc":4759},[4683,4686,4689,4693,4699,4702,4706,4712,4715,4719,4725,4728,4732,4738,4741,4745,4751,4754,4757],[307,4684,4685],{},"Without the modern browsers, the internet will be pretty much a boring place.\nYou just enter an address and the browser will take care of everything. Ever\nwondered what is going on behind the scene?",[307,4687,4688],{},"**Here is a high-level view of what happens.",[314,4690,4692],{"id":4691},"_1-resource-gathering","1. Resource Gathering.",[307,4694,4695],{},[710,4696],{"alt":4697,"src":4698},"resources","\u002Fassets\u002Fimages\u002Fblog\u002F121020\u002Fresources.jpg",[307,4700,4701],{},"When you provide an address to the browser, provided you have the access\nrights to the said address, the browser will start resource gathering. The\nresources will include everything from HTML, CSS, JS, images, etc. Simply put,\nthe browser will gather everything that needs to be displayed.",[314,4703,4705],{"id":4704},"_2-parse-html-and-create-dom-tree","2. Parse HTML and create DOM tree.",[307,4707,4708],{},[710,4709],{"alt":4710,"src":4711},"domTree","\u002Fassets\u002Fimages\u002Fblog\u002F121020\u002FdomTree.jpg",[307,4713,4714],{},"As you know, HTML works in the DOM (Document Object Model). As you can see in\nthe image above, there is a root html element. Then, head and body. Then there\nare more and more nested tags inside both and it goes on and on. The browser\nwill create this DOM from the html resource that was gathered in step 1. DOM\nis regulated by W3 and well documented. Even if the one(s) who wrote the code\nfor got to close some tags, the browser will still go ahead with rectifying\nthose small mistakes and displaying the page.",[314,4716,4718],{"id":4717},"_3-create-render-tree-from-dom-tree","3. Create Render Tree from DOM tree.",[307,4720,4721],{},[710,4722],{"alt":4723,"src":4724},"renderTree","\u002Fassets\u002Fimages\u002Fblog\u002F121020\u002FrenderTree.jpg",[307,4726,4727],{},"In this step, the browser applies styles to the objects in the DOM tree and\ncreates a render tree. The CSS files gathered will be made use of to do this\naction. The CSS file(s) will contain the styling for all the elements in the\nDOM tree. One major difference between the DOM tree and render tree would be,\nthe render tree would only contain the elements that are to be displayed in\nthe browser. So, if a DOM object has its styling as “display:none;”, it will\nnot be present in the render tree.",[314,4729,4731],{"id":4730},"_4-layout","4. Layout.",[307,4733,4734],{},[710,4735],{"alt":4736,"src":4737},"layout","\u002Fassets\u002Fimages\u002Fblog\u002F121020\u002Flayout.jpg",[307,4739,4740],{},"All the HTML elements can be considered as boxes. The CSS box model is\nessentially a box that wraps around every HTML element consisting of margins,\nborders, padding and the actual content. All of these will be applied to the\nelements in the previous step. But even after that, the browser needs to\n“size” and “position” these elements. In this step the browser does that and\nforces the DOM and render tree to be rebuilt.",[314,4742,4744],{"id":4743},"_5-painting","5. Painting.",[307,4746,4747],{},[710,4748],{"alt":4749,"src":4750},"painting","\u002Fassets\u002Fimages\u002Fblog\u002F121020\u002Fpainting.jpg",[307,4752,4753],{},"Now, the browser knows which elements are to be displayed and their computed\nstyles and geometry. In this final step, this information is then converted to\nactual pixels on the screen with the help of the operating system and graphics\nengine of the device. The z-coordinate or z-index in CSS terms are also\nfinalized in this step. The previous step will determine the position I the\nx-y plane. This step is also called rasterization.",[307,4755,4756],{},"These are just the steps involved in loading and showing the page for the\nfirst time. These steps are undergone every time you load a new page. There is\nobviously a lot more. The JS files are responsible for adding interactivity\nand behavior to the page.",[307,4758,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":4760},[4761,4762,4763,4764,4765],{"id":4691,"depth":359,"text":4692},{"id":4704,"depth":359,"text":4705},{"id":4717,"depth":359,"text":4718},{"id":4730,"depth":359,"text":4731},{"id":4743,"depth":359,"text":4744},"2020-10-11","How does a typical browser loads and displays a webpage.","\u002Fassets\u002Fimages\u002Fblog\u002F121020\u002Ftitle.jpg",{},{"title":98,"description":4767},"FzDf41up2edZrv4JWDoTJ2GAvhzPnB5sH1Hlpdst9rU",{"id":4773,"title":194,"author":4774,"body":4776,"date":4876,"description":4877,"extension":371,"image":4878,"meta":4879,"minRead":860,"navigation":293,"path":195,"seo":4880,"stem":196,"__hash__":4881},"blog\u002Fblog\u002FReflections on how we code.md",{"name":300,"avatar":4775},{"src":302,"alt":300},{"type":304,"value":4777,"toc":4868},[4778,4781,4784,4788,4793,4796,4799,4802,4805,4808,4812,4818,4821,4824,4828,4834,4837,4840,4844,4850,4853,4856,4859,4862,4866],[307,4779,4780],{},"It is no secret that different engineers or team of engineers have different\nstandards for what they consider as quality in code. Sometimes, some engineers\nconsider something as the way to do it. But that opinion might not be shared\nby many others.",[307,4782,4783],{},"Now, there are a lot of things I mean from them like paradigms, how we\nseparate concerns or even whether using nested ternaries is good or bad. Not\njust the use of semicolons, tabs vs. spaces or formatting. Most of these\npreferences and ideals are influenced by our environments, technologies we use\nand coworkers.",[350,4785,4787],{"id":4786},"coworkers","Coworkers",[307,4789,4790],{},[710,4791],{"alt":4786,"src":4792},"\u002Fassets\u002Fimages\u002Fblog\u002F051020\u002Fcoworkers.jpg",[307,4794,4795],{},"In our careers, almost all of us will encounter people from many spectrums.\nThere will be people who are extremely motivated and passionate about what\nthey are building. Also, there are people who are just the opposite. Yes, it\nis not just black and white, there is a lot of grey in between.",[307,4797,4798],{},"No engineer can’t do it all by themselves. There might be someone who reads\nthis and having a smirk saying, I am a team of one or I code this many hours a\nday, I turned my startup to unicorn all by myself. But you still might have\nused open source frameworks or might have stumbled upon a problem and had\nhelp. Point is, you have had help from other human beings. (Oh, if you have\ndone it without any of these. Respect!)",[307,4800,4801],{},"The people we work with, greatly influences the way we code. Certain\nengineers, as all humans do, will have predilections. For example, whoever\nstarted building the product might have loved a certain framework and would\nhave refused to let it go even though its time has come and gone long ago. Or\nthey didn’t like seeing style.css files in your project and done all the\nstyling with inline CSS. Now, you might have to follow through as this may be\nthe available option.",[307,4803,4804],{},"But it goes beyond that. Even the choices of people working on the product\nfrom another team will also mold your code. If you are a front-end engineer,\nyou will probably need some data. Those data will be usually from the back-end\nengineers. They are going to tell you, how and when you are going to get it\nand in which format. So, this will influence how you write your interactions\nwith the API and your data layer, if you might.",[307,4806,4807],{},"Also, if you are working with people who are significantly smarter, with more\nexperience and cares about us and our code getting better, you will find\nyourself writing better code through time.",[350,4809,4811],{"id":4810},"environmental-influences","Environmental influences",[307,4813,4814],{},[710,4815],{"alt":4816,"src":4817},"environment","\u002Fassets\u002Fimages\u002Fblog\u002F051020\u002Fenvironment.jpg",[307,4819,4820],{},"Your priorities are going mainly to be a function of the size of your company\nor your team. Consider two teams, one might be weighted under the bureaucracy\nof middle or upper management and enterprise release cycles while the other\nmight be struggling to release a product before they run out of resources.",[307,4822,4823],{},"The matter of urgency also contributes to this. If there isn’t any, you might\nnot get things done as quickly as you could have. Instead, you might write\nmore tests or write less future legacy codes. Now the following are how the\nsize of your team or company could influence your code.",[314,4825,4827],{"id":4826},"small-companies","Small Companies",[307,4829,4830],{},[710,4831],{"alt":4832,"src":4833},"small","\u002Fassets\u002Fimages\u002Fblog\u002F051020\u002Fsmall.jpg",[307,4835,4836],{},"You have to get things done. This could mean you writing less unit tests. The\nnumber of people who look and review your code will be less. There might not\neven be a manual Quality Assurance before the release. You will have to find a\nway to write less brittle code or find an efficient and effective way of\nwriting automation that delivers what it is supposed to.",[307,4838,4839],{},"You will deal with legacy code more. You might be writing code that might have\nto be thrown out completely and start over. Ideally you keep in mind that\nevery chunk of code has a timeline and you should write it accordingly.",[314,4841,4843],{"id":4842},"big-companies","Big Companies",[307,4845,4846],{},[710,4847],{"alt":4848,"src":4849},"big","\u002Fassets\u002Fimages\u002Fblog\u002F051020\u002Fbig.jpg",[307,4851,4852],{},"Horizontal organisational structures are rare in big companies. This means\nthere could be someone on your team that will only merge code if it satisfies\ntheir definition of ‘good code’. Now, this could be good or bad.",[307,4854,4855],{},"You are most probably not in a hurry. Your output will be diminished. Your job\nusually won’t be on the line because money is usually not an issue in an\nestablished, profitable company.",[307,4857,4858],{},"You will still have to work with legacy code. You might be dealing with\ntechnologies that aren’t well documented or easy to work with. This will add\ntime to your work and make you slower.",[307,4860,4861],{},"CI\u002FCD will just work if someone senior or more involved has done their job.\nYou wouldn’t have to spend time with the hassles around the infrastructure.\nThis could make you faster.",[350,4863,4865],{"id":4864},"good-engineers-who-learns-constantly-will-observe-radical-changes-in-the-way-they-write-code","Good engineers who learns constantly will observe radical changes in the way they write code.",[307,4867,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":4869},[4870,4871,4872,4873],{"id":4786,"depth":368,"text":4787},{"id":4810,"depth":368,"text":4811},{"id":4826,"depth":359,"text":4827},{"id":4842,"depth":359,"text":4843,"children":4874},[4875],{"id":4864,"depth":368,"text":4865},"2020-10-04","What are some of the factors that help the way we evolve as an engineer.","\u002Fassets\u002Fimages\u002Fblog\u002F051020\u002Ftitle.jpg",{},{"title":194,"description":4877},"Y328QFY5q2VZmaRyah_3L5XLYWLfuArNpqaCf1sDwZI",{"id":4883,"title":106,"author":4884,"body":4886,"date":4998,"description":4999,"extension":371,"image":5000,"meta":5001,"minRead":969,"navigation":293,"path":107,"seo":5002,"stem":108,"__hash__":5003},"blog\u002Fblog\u002FHow to be an effective Engineer.md",{"name":300,"avatar":4885},{"src":302,"alt":300},{"type":304,"value":4887,"toc":4989},[4888,4891,4894,4898,4904,4907,4918,4921,4929,4933,4939,4942,4946,4952,4955,4958,4962,4968,4971,4975,4980,4983,4987],[307,4889,4890],{},"Every software engineer or developer might have asked this question to\nthemselves or to their colleagues at some point. How to make myself better as\nan engineer or developer? If you haven’t, you should.",[307,4892,4893],{},"The answers would differ from person to person. Some might even go very\nspecific. But there are somethings that so many agree upon which could be\napplied by pretty much every one in the industry.",[314,4895,4897],{"id":4896},"_1-analysis-of-scenarios","1. Analysis of scenarios",[307,4899,4900],{},[710,4901],{"alt":4902,"src":4903},"analysis","\u002Fassets\u002Fimages\u002Fblog\u002F280920\u002Fanalysis.jpg",[307,4905,4906],{},"The ability to consider many different scenarios is a must have trait for any\ngood engineer. This applies both to the internal and external events that can\noccur as well as the logic in the program. Asking the following questions\nmight help us discover what types of events the software needs to handle.",[769,4908,4909,4912,4915],{},[772,4910,4911],{},"What if this queue becomes full?",[772,4913,4914],{},"What if other server restarts while this server is restarting?",[772,4916,4917],{},"What if there is no response to this request?",[307,4919,4920],{},"Also, the following questions might help us find the different paths in the\nlogic.",[769,4922,4923,4926],{},[772,4924,4925],{},"What if none of these arguments are true?",[772,4927,4928],{},"What happens if the argument is null? Etc.",[314,4930,4932],{"id":4931},"_2-problem-decomposition","2. Problem Decomposition",[307,4934,4935],{},[710,4936],{"alt":4937,"src":4938},"problem","\u002Fassets\u002Fimages\u002Fblog\u002F280920\u002Fproblem.jpg",[307,4940,4941],{},"Software is primarily about solving problems. So, before we start writing\ncode, we need to be clear on how to solve the problem. The ability to break\ndown a problem into smaller chunks is a formidable weapon in any engineer’s\narsenal. But it doesn’t stop there. We should be able to model the problem in\nsuch a way that the resulting program is easy to reason about, easy to\nimplement and test.",[314,4943,4945],{"id":4944},"_3-naming","3. Naming",[307,4947,4948],{},[710,4949],{"alt":4950,"src":4951},"naming","\u002Fassets\u002Fimages\u002Fblog\u002F280920\u002Fnaming.jpg",[307,4953,4954],{},"Properly naming classes, methods, functions and variables goes a long way.\nWhen done well, the software becomes self-documenting. That is, the function\nof the code is quite clear just from reading the source code. Self-documenting\ncodes naturally leads to smaller methods, rather than a few large ones, simply\nbecause we get more places to put meaningful names.",[307,4956,4957],{},"Naming things is not easy as it sounds. It needs to be clear in our mind what\neach name represents. Sometimes that might change during the development\nprocess. That is why renaming is just as important as naming.",[314,4959,4961],{"id":4960},"_4-consistency","4. Consistency",[307,4963,4964],{},[710,4965],{"alt":4966,"src":4967},"consistency","\u002Fassets\u002Fimages\u002Fblog\u002F280920\u002Fconsistency.jpg",[307,4969,4970],{},"Managing complexity is undoubtedly one of the biggest challenges in software\ndevelopment. Consistency is key here. It reduces some of the complexity by\nallowing us to see patterns and infer how things are named, used and handled.\nWe do not require to use much brain power to remember exceptions and random\nvariations, with consistency. Consistency applies to variable names and\ngrouping, method naming, the division into modules, directory structure,\ndocumentation, the GUI, logging, error-handling etc. For instance, if some\nvariables are related and appear together, try to use them in the same order.\nThis will make it easier to see if any goes missing or if they have been mixed\nup. There is a high chance for inconsistencies while modifying a software.\nGood engineers always ensure that even the small parts are right and the\nconsistency is kept while modification.",[314,4972,4974],{"id":4973},"_5-learning","5. Learning",[307,4976,4977],{},[710,4978],{"alt":2214,"src":4979},"\u002Fassets\u002Fimages\u002Fblog\u002F280920\u002Flearning.jpg",[307,4981,4982],{},"We are constantly learning as a software engineer. We have to understand what\na feature is supposed to do before adding it. It goes without saying prior to\nthat we must understand what the existing code does. It will make the addition\nof the new feature that much simpler. We also have to learn about the\nsurrounding systems in order to interface with them appropriately. Obviously,\nthe ability to learn fast will make us more effective, but not necessarily\nalways.",[350,4984,4986],{"id":4985},"if-we-have-these-skills-we-can-learn-new-languages-and-tools-much-quicker-and-create-exceptional-software","If we have these skills, we can learn new languages and tools much quicker and create exceptional software.",[307,4988,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":4990},[4991,4992,4993,4994,4995],{"id":4896,"depth":359,"text":4897},{"id":4931,"depth":359,"text":4932},{"id":4944,"depth":359,"text":4945},{"id":4960,"depth":359,"text":4961},{"id":4973,"depth":359,"text":4974,"children":4996},[4997],{"id":4985,"depth":368,"text":4986},"2020-09-28","The necessary skills needed for any software engineer.","\u002Fassets\u002Fimages\u002Fblog\u002F280920\u002FeeTitle.jpg",{},{"title":106,"description":4999},"NU1Y6pIQTmem5PjqpcfoWnXHMUCPfa8sjYuIYUrlmKQ",{"id":5005,"title":278,"author":5006,"body":5008,"date":5132,"description":5133,"extension":371,"image":5134,"meta":5135,"minRead":969,"navigation":293,"path":279,"seo":5136,"stem":280,"__hash__":5137},"blog\u002Fblog\u002FWhy Game Engines.md",{"name":300,"avatar":5007},{"src":302,"alt":300},{"type":304,"value":5009,"toc":5129},[5010,5013,5016,5027,5030,5033,5047,5050,5053,5059,5062,5065,5068,5071,5074,5077,5094,5100,5103,5106,5117,5121,5127],[307,5011,5012],{},"What are game engines exactly? It is natural to ask yourself the same question\nevery time a company comes along and boasts about their new game engine.\nSimply put, Game Engines are frameworks for game development. Nowadays, they\nare responsible for rendering graphics, memory management, collision\ndetection, artificial intelligence and so much more.",[307,5014,5015],{},"These frameworks usually cover the necessary parts required for a game such\nas:",[769,5017,5018,5021,5024],{},[772,5019,5020],{},"Graphics",[772,5022,5023],{},"Audio and",[772,5025,5026],{},"Logic.",[307,5028,5029],{},"These aforementioned are required no matter you are creating an indie or AAA\ngame.",[307,5031,5032],{},"On top of these most modern game engines also cover areas like:",[769,5034,5035,5038,5041,5044],{},[772,5036,5037],{},"Physics",[772,5039,5040],{},"Artificial Intelligence",[772,5042,5043],{},"Networking",[772,5045,5046],{},"Optimization etc.",[307,5048,5049],{},"But, why and how did they came into existence?",[307,5051,5052],{},"To understand, we need to go back in time.",[307,5054,5055],{},[710,5056],{"alt":5057,"src":5058},"oldGames","\u002Fassets\u002Fimages\u002Fblog\u002F210920\u002FoldGames.jpg",[307,5060,5061],{},"Back in the day almost every game was built from scratch.",[307,5063,5064],{},"Let’s say you are part of a development team and you just got the design for a\nnew game. You will have to tell the system which graphics to show at what\ncoordinates in the screen. In addition, you will need to destroy or delete any\ngraphics that is currently not in use or simply not in the vicinity of the\nscreen so as to save memory and hence providing better performance.",[307,5066,5067],{},"So, if there was a system that could keep track of all the objects and\nautomatically destroy them it would make the process much easier. Creating\nthis system might also take up a lot more memory but will save hours of\ndevelopment and that is a just trade-off.",[307,5069,5070],{},"You might also have noticed that most of the games have objects, characters\nand enemies. So better to create a system that can handle any game rather than\ncreate the same thing over and over again. Enter game engines. Frameworks that\nprovides the tools and structure required for almost every game to function.",[307,5072,5073],{},"Today, the games can handle high complexities with much ease. But this was not\nthe case not so long ago. Memory was so limited and precious. Even 512KB was a\nluxury.",[307,5075,5076],{},"A game engine usually contains five components.",[769,5078,5079,5082,5085,5088,5091],{},[772,5080,5081],{},"Game logic.",[772,5083,5084],{},"Rendering engine - to generate 3D animated graphics.",[772,5086,5087],{},"Audio engine – with algorithms related to sounds.",[772,5089,5090],{},"Physics engine- to implement the physical laws and",[772,5092,5093],{},"Artificial Intelligence.",[307,5095,5096],{},[710,5097],{"alt":5098,"src":5099},"newGames","\u002Fassets\u002Fimages\u002Fblog\u002F210920\u002FnewGames.jpg",[307,5101,5102],{},"Third-party game engines became popular since the rise for the demand of 3D\ngames. Studios started to use them in order to speed up the development\nprocess. But still most companies prefer cooking up their own game engines.",[307,5104,5105],{},"Third-party game engines will save you a lot of time in development while\nin-house game engines will help you achieve better optimization. Obvious\nchoices as third -party game engines would have been Unreal Engine and Unity\n3D for a long time. Some of the prominent in-house game engines are:",[769,5107,5108,5111,5114],{},[772,5109,5110],{},"CD Projekt RED – REDengine 4",[772,5112,5113],{},"Rockstar Games – RAGE",[772,5115,5116],{},"Ubisoft - AnvilNext",[350,5118,5120],{"id":5119},"game-engines-are-not-just-for-creating-games-now-they-have-taken-over-various-areas-such-as-high-fidelity-simulations-real-time-graphics-rendering-in-movies-and-so-much-more","Game engines are not just for creating games now. They have taken over various areas such as high fidelity simulations, real-time graphics rendering in movies and so much more.",[307,5122,5123],{},[710,5124],{"alt":5125,"src":5126},"newAreas","\u002Fassets\u002Fimages\u002Fblog\u002F210920\u002FnewAreas.jpg",[307,5128,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":5130},[5131],{"id":5119,"depth":368,"text":5120},"2020-09-21","What are the needs for game engines and how they came to be.","\u002Fassets\u002Fimages\u002Fblog\u002F210920\u002FgeTitle.jpg",{},{"title":278,"description":5133},"lUSECwuIDQyuaBQwNPXSJ5Hv2fwq_ldKCJpIV8_L2bM",{"id":5139,"title":266,"author":5140,"body":5142,"date":5227,"description":5228,"extension":371,"image":5229,"meta":5230,"minRead":368,"navigation":293,"path":267,"seo":5231,"stem":268,"__hash__":5232},"blog\u002Fblog\u002FWhat are Best Practices.md",{"name":300,"avatar":5141},{"src":302,"alt":300},{"type":304,"value":5143,"toc":5218},[5144,5147,5151,5157,5160,5164,5170,5173,5177,5183,5186,5190,5196,5199,5203,5209,5212,5216],[307,5145,5146],{},"Best practices are a set of empirically proven approaches to software\ndevelopment. When used in combination they strike at the root causes of\nsoftware development problems. Lets have a look at some of the important ones.",[314,5148,5150],{"id":5149},"_1-manage-requirements","1. Manage Requirements",[307,5152,5153],{},[710,5154],{"alt":5155,"src":5156},"manage","\u002Fassets\u002Fimages\u002Fblog\u002F140920\u002Fmanage.jpg",[307,5158,5159],{},"The user’s own understanding of the requirements will evolve over time. That\nwill then change the requirements. So, a software engineer should always be\nexpecting changes during software development. It is also important to reach\nan agreement with the user on what the software should do, not how to do it.\nThat is, after all, your job. Also always maintain forward and backward\ntraceability of the requirements.",[314,5161,5163],{"id":5162},"_2-use-component-based-architecture","2. Use Component-based Architecture",[307,5165,5166],{},[710,5167],{"alt":5168,"src":5169},"components","\u002Fassets\u002Fimages\u002Fblog\u002F140920\u002Fcomponents.jpg",[307,5171,5172],{},"The use of components improves the maintainability and extensibility\nphenomenally. Almost all of the trending frameworks now allow and promote\ncomponent-based architecture. This will also help in clean division of work\namong teams. Also, component-based architecture makes the reuse possible.",[314,5174,5176],{"id":5175},"_3-develop-iteratively","3. Develop Iteratively",[307,5178,5179],{},[710,5180],{"alt":5181,"src":5182},"iterative","\u002Fassets\u002Fimages\u002Fblog\u002F140920\u002Fiterative.jpg",[307,5184,5185],{},"Always create objective milestones while creating a software. That will help\nyou concentrate on the small parts. But we also should never lose the context.\nCritical risks should be resolved before making large investments. Initial\niterations will help us get early user feedback and this save the engineer\nfrom making drastic changes at last while helping the engineer make sure\nhe\u002Fshe is on track. Goes without saying that the testing and integration will\nbe and should be continuous.",[314,5187,5189],{"id":5188},"_4-verify-software-quality","4. Verify Software Quality",[307,5191,5192],{},[710,5193],{"alt":5194,"src":5195},"verify","\u002Fassets\u002Fimages\u002Fblog\u002F140920\u002Fverify.jpg",[307,5197,5198],{},"What is quality anyway? It is the characteristic of producing a product which\nmeets or exceeds agreed upon requirements by some agreed upon objective\nmeasure. Once deployed, software issues are significantly costly to repair.\nSo, it would be wise to develop functionality, performance and reliability\ntest suites for every iteration.",[314,5200,5202],{"id":5201},"_5-control-changes-to-software","5. Control Changes to Software",[307,5204,5205],{},[710,5206],{"alt":5207,"src":5208},"control","\u002Fassets\u002Fimages\u002Fblog\u002F140920\u002Fcontrol.jpg",[307,5210,5211],{},"Without explicit control while developing as a team, everything becomes chaos.\nSo, while developing as a team the architecture should be decomposed into\nsmaller subsystems and responsibility of each should be assigned to a team. It\nshould be done in such a way that the changes made by one team affect other\nteams the least or ideally, have none. Control mechanisms should be\nestablished for change requests. These mechanisms should make sure the change\nrequests are the priority. The impact of the change request should always be\nassessed and there should be a plan to handle change requests for every\niteration.",[350,5213,5215],{"id":5214},"they-are-called-best-practices-not-because-we-can-precisely-quantify-their-value-but-rather-they-are-observed-to-be-commonly-used-in-industry-by-successful-organizations","They are called \"best practices\" not because we can precisely quantify their value but rather, they are observed to be commonly used in industry by successful organizations.",[307,5217,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":5219},[5220,5221,5222,5223,5224],{"id":5149,"depth":359,"text":5150},{"id":5162,"depth":359,"text":5163},{"id":5175,"depth":359,"text":5176},{"id":5188,"depth":359,"text":5189},{"id":5201,"depth":359,"text":5202,"children":5225},[5226],{"id":5214,"depth":368,"text":5215},"2020-09-14","Brief explanation of commonly agreed upon best practices in software engineering.","\u002Fassets\u002Fimages\u002Fblog\u002F140920\u002Ftitle.jpg",{},{"title":266,"description":5228},"JhevbP4Adv5AvKdeOi8MpTkn0tDF08wiuJq1hQ6DpvE",{"id":5234,"title":74,"author":5235,"body":5237,"date":5328,"description":5329,"extension":371,"image":5330,"meta":5331,"minRead":860,"navigation":293,"path":75,"seo":5332,"stem":76,"__hash__":5333},"blog\u002Fblog\u002FDesign Patterns - Why and How.md",{"name":300,"avatar":5236},{"src":302,"alt":300},{"type":304,"value":5238,"toc":5322},[5239,5242,5245,5248,5251,5255,5261,5264,5267,5270,5273,5276,5279,5282,5285,5288,5291,5294,5297,5300,5304,5310,5313,5316,5320],[307,5240,5241],{},"Design patterns are bound to pop up in the horizon of most software engineers\nsooner or later. Undoubtedly on of the most powerful weapon in one’s arsenal\nif used correctly.",[307,5243,5244],{},"Now, a design pattern is not a piece of reusable code or library that you can\nincorporate in your software. It is more like a way of thinking about a\nproblem and coming up with a good strategy of execution to solve the same.",[307,5246,5247],{},"Obviously, they didn’t just pop out of somewhere overnight. They are the\nresult of lessons learned, years of experience, learning from mistakes as well\nas sharing those experiences with other engineers.",[307,5249,5250],{},"In short, design patterns try to solve the issues that come along with change.",[314,5252,5254],{"id":5253},"ever-changing-software","Ever Changing Software",[307,5256,5257],{},[710,5258],{"alt":5259,"src":5260},"change","\u002Fassets\u002Fimages\u002Fblog\u002F070920\u002Fchange.jpg",[307,5262,5263],{},"Version 1.0 is just an incomplete software. Every good software that stood the\ntrial of time has undergone constant evolution. Google and Apple just didn’t\nrelease Android and iOS respectively stood back. Both Operating Systems went\nconstant upgrades and are at stable versions of version 10 and 13 right now\nand they are still evolving.",[307,5265,5266],{},"All this just doesn’t happen by magic. They were required careful analysis,\nplanning and changes in the source code.",[307,5268,5269],{},"Changing any source can result in make rise to a number of problems. It is\ncommon knowledge that when you make changes to your source code to accommodate\nnew features, it might result in unwelcome breakage at someplace else. The\ntechnical explanation for this is, the code is tightly coupled in the\nobject-oriented programming.",[307,5271,5272],{},"In object-oriented programming, application is broken down into tiny pieces\ncalled classes which are responsible for taking care of certain functionality\nof the software. One class could be handling logging while another is taking\ncare of database management.",[307,5274,5275],{},"By breaking it down like this, the engineer avoids creating a giant monolithic\napplication. The resulting application and its components will be easier to\nunderstand to not only the engineer\u002Fs who creates this, but also the engineers\nwho then later inherit the responsibility of maintaining the same. It also\nhelps understand how the components interact with each other.",[307,5277,5278],{},"But object-oriented programming does have its perils. Chief among them being –\ntight coupling. As mentioned before, classes will interact with each other to\nmake the software work. Classes cannot exist as independent and self-isolated\nin object-oriented programming.",[307,5280,5281],{},"Since one class may need to depend on the services and functionality of one or\nmore other classes, changing the definition or functionality could cause\nunwanted rippling effect on the classes that depend on them and that is called\ntight coupling.",[307,5283,5284],{},"This is where the knowledge of design patterns comes in handy. An engineer\ncould analyze the problem and then implement appropriate design pattern\u002Fs.\nWhen implemented appropriately, this will make the code easier to modify. A\ncode that is easier to change is easy to maintain as well.",[307,5286,5287],{},"But the design patterns have also opened doors for new problems as well.\nCaused by the abuse of the same. They are called Anti-patterns.",[307,5289,5290],{},"** Anti-Patterns** **",[307,5292,5293],{},"Throughout the brief history of software design and development, every new\nprogramming language, every methodology was always thought by most to be the\nultimate solution. But as time goes on, every engineer would realize that\nthere has never been an ultimate solution or an “ultimate silver bullet\nsolution”.",[307,5295,5296],{},"As in most, one thing that constant for software engineering is also change.\nThere will always be newer technology stacks, new programming languages and\nnew software design methodologies. Agile and Scrum are relatively new to the\ngame, but one day they too shall be replaced by something else. Something\nbetter.",[307,5298,5299],{},"But we can safely say that there is but one golden and universal design\npattern – KISS (Keep It Simple, Stupid).",[314,5301,5303],{"id":5302},"kiss-keep-it-simple-stupid","KISS (Keep It Simple, Stupid)",[307,5305,5306],{},[710,5307],{"alt":5308,"src":5309},"kiss","\u002Fassets\u002Fimages\u002Fblog\u002F070920\u002Fkiss.jpg",[307,5311,5312],{},"Every new line of code that we write is a new potential thing which can go\nwrong. So, logically, the less we write, the time and effort we need to spend\nfixing, maintaining or refactoring it will also be less. Any code you write\nshould be simple, easy to read by other engineers and easy to change, which is\neasier said than done.",[307,5314,5315],{},"But we might be inspired to do it always right if we think like the following.",[350,5317,5319],{"id":5318},"always-code-as-if-the-guy-who-ends-up-maintain-your-code-will-be-a-violent-psychopath-who-knows-where-you-live","Always code as if the guy who ends up maintain your code will be a violent psychopath who knows where you live.",[307,5321,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":5323},[5324,5325],{"id":5253,"depth":359,"text":5254},{"id":5302,"depth":359,"text":5303,"children":5326},[5327],{"id":5318,"depth":368,"text":5319},"2020-09-07","A brief explanation of the need and use of design patterns.","\u002Fassets\u002Fimages\u002Fblog\u002F070920\u002FdpTitle.jpg",{},{"title":74,"description":5329},"GTr0lQaSbQL7lK1Sw2g7qKSYocNFZvQexqdIHHF4efk",{"id":5335,"title":170,"author":5336,"body":5338,"date":5420,"description":5421,"extension":371,"image":5422,"meta":5423,"minRead":368,"navigation":293,"path":171,"seo":5424,"stem":172,"__hash__":5425},"blog\u002Fblog\u002FProcesses for Better Software Volume 2.md",{"name":300,"avatar":5337},{"src":302,"alt":300},{"type":304,"value":5339,"toc":5413},[5340,5343,5346,5350,5356,5359,5363,5369,5372,5376,5382,5385,5389,5395,5398,5402,5408,5411],[307,5341,5342],{},"Every engineer\u002Fdeveloper has the right to do their work the right way, not\nnecessarily the easy way.",[307,5344,5345],{},"There are a lot of reasons a software fails to serve its intended purpose. But\nmost of them could be avoided if we implement the so called good practices\ninto the software development life-cycle.",[314,5347,5349],{"id":5348},"_1-accurate-understanding-of-end-user-needs","1. Accurate understanding of end-user needs",[307,5351,5352],{},[710,5353],{"alt":5354,"src":5355},"userNeeds","\u002Fassets\u002Fimages\u002Fblog\u002F020920\u002FuserNeeds.jpg",[307,5357,5358],{},"No matter you are making software as a product or for a client, you have to\nhave a clear understanding of the end-user needs. Significant man hours have\ngone to waste and so have many applications built during it just by failing to\nunderstand the same. The end-user or client needs cannot usually be determined\nby one single meeting. It requires good research and understanding the problem\nstatement first-hand. Then and only then we could try and solve the problem\nmore efficiently.",[314,5360,5362],{"id":5361},"_2-taking-it-slow","2. Taking it slow",[307,5364,5365],{},[710,5366],{"alt":5367,"src":5368},"slow","\u002Fassets\u002Fimages\u002Fblog\u002F020920\u002Fslow.jpg",[307,5370,5371],{},"“Slow and steady wins the race”. Sure, you could actually make the software\ndevelopment process much faster, but usually at the expense of compromising\nsome vital steps. The applications developed skipping these “non-essential\nsteps” might sooner or later become a big problem. It might be true that you\ncould save the time and resources while building it in the first place. But,\nwhen (not if) it comes back with bugs, it will cost you more of both.",[314,5373,5375],{"id":5374},"_3-refactor","3. Refactor",[307,5377,5378],{},[710,5379],{"alt":5380,"src":5381},"refactor","\u002Fassets\u002Fimages\u002Fblog\u002F020920\u002Frefactor.jpg",[307,5383,5384],{},"There is usually the need to upgrade and maintain a software as time goes on.\nWhenever you see the need and have the chance do not hesitate to refactor the\ncode. Refactoring will usually help create a code base with increased\nreadability, smooth execution, less bugs and higher performance.",[314,5386,5388],{"id":5387},"_4-make-code-correct-first-and-fast-second","4. Make code correct first and fast second",[307,5390,5391],{},[710,5392],{"alt":5393,"src":5394},"correctFirst","\u002Fassets\u002Fimages\u002Fblog\u002F020920\u002FcorrectFirst.jpg",[307,5396,5397],{},"Your primary focus should always be achieving the desired functionality. It\ndoesn’t matter how better the design or how fast the response is, if it cannot\nproduce appropriate output, that software is useless and a liability.",[314,5399,5401],{"id":5400},"_5-using-version-control","5. Using version control",[307,5403,5404],{},[710,5405],{"alt":5406,"src":5407},"versionControl","\u002Fassets\u002Fimages\u002Fblog\u002F020920\u002FversionControl.jpg",[307,5409,5410],{},"Do not wait for the software to grow beyond a certain size to incorporate\nversion control applications such as GitHub or bitbucket. It is always a good\npractice to create repositories from day one. Create branches and maintain it\nresponsibly. My method is to always keep at least three branches even for a\nsingle engineer. One for release, one with the latest stable version and one\nfor the working copy. Any method would be good as long as it helps to keep a\nbackup as well as a smooth workflow.",[307,5412,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":5414},[5415,5416,5417,5418,5419],{"id":5348,"depth":359,"text":5349},{"id":5361,"depth":359,"text":5362},{"id":5374,"depth":359,"text":5375},{"id":5387,"depth":359,"text":5388},{"id":5400,"depth":359,"text":5401},"2020-09-02","Best practices for software engineers continued.","\u002Fassets\u002Fimages\u002Fblog\u002F020920\u002Fprocess2Title.jpg",{},{"title":170,"description":5421},"IwZHSsDiezT5zPUsXPlp-3hm_wWiY5Udr5pT1Dsc8mk",{"id":5427,"title":166,"author":5428,"body":5430,"date":5512,"description":5513,"extension":371,"image":5514,"meta":5515,"minRead":969,"navigation":293,"path":167,"seo":5516,"stem":168,"__hash__":5517},"blog\u002Fblog\u002FProcesses for Better Software Volume 1.md",{"name":300,"avatar":5429},{"src":302,"alt":300},{"type":304,"value":5431,"toc":5505},[5432,5435,5438,5442,5448,5451,5455,5461,5464,5468,5474,5477,5481,5487,5490,5494,5500,5503],[307,5433,5434],{},"There are a lot of things to keep in mind and processes to follow to make\nbetter software. By striving to uphold them, the developers\u002Fengineers are not\nonly creating good software, but also a reputation for themselves.",[307,5436,5437],{},"They are termed good practices and we will go through some of them today,\nwhich by following, has helped me personally to create better software.",[314,5439,5441],{"id":5440},"_1-planning","1. Planning",[307,5443,5444],{},[710,5445],{"alt":5446,"src":5447},"planning","\u002Fassets\u002Fimages\u002Fblog\u002F240820\u002Fplanning.jpg",[307,5449,5450],{},"One should always have a plan of action while developing, no matter which\ntechnology\u002Ftechnologies is\u002Fare involved. Being impulsive and just winging it\nmight get you the results in short term, but rest assured, it will come to\nstab you in the back sooner or later. For example, if you are building a web\napplication, you should consider the requirements beforehand and analyze which\ntechnologies and frameworks are apt for those and then start the project, not\non the fly.",[314,5452,5454],{"id":5453},"_2-modularising","2. Modularising",[307,5456,5457],{},[710,5458],{"alt":5459,"src":5460},"modularising","\u002Fassets\u002Fimages\u002Fblog\u002F240820\u002Fmodularising.jpg",[307,5462,5463],{},"My favorite OOP concept. Files\u002Fclasses\u002Ffunctions\u002Fmethods should be kept as\nshort as possible and doing only the job they are supposed to do. Nothing more\nand certainly nothing less. This not only ensures and increases the\nreadability of the entire code but also helps in scaling the application in\nthe future.",[314,5465,5467],{"id":5466},"_3-commenting-and-documenting","3. Commenting and documenting",[307,5469,5470],{},[710,5471],{"alt":5472,"src":5473},"commenting","\u002Fassets\u002Fimages\u002Fblog\u002F240820\u002Fcommenting.jpg",[307,5475,5476],{},"This might certainly be the most overlooked part of development. How many of\nus have went back to something written by ourselves 1 or more years back and\nwondered what it is all about. (You’ll probably wonder how could you have\ncoded something that bad, but that’s not what I am talking about now). If you\nhave had incorporated necessary comments and prepared a proper documentation,\nyou’d have a much easier job of understanding what it was and how you might be\nable to improve it.",[314,5478,5480],{"id":5479},"_4-writing-tests","4. Writing tests",[307,5482,5483],{},[710,5484],{"alt":5485,"src":5486},"tests","\u002Fassets\u002Fimages\u002Fblog\u002F240820\u002Ftests.jpg",[307,5488,5489],{},"Test driven development should come naturally to every software engineer. You\nmight be tempted to skip it all and get to the results faster. Yes, it most\nprobably will get you the results faster but almost always at some cost. Every\nsoftware should be tested before going into production. So, if you are not\nwriting tests the first time, your testing team will bring you bug\u002Fbugs and\ntrust me it won’t always be at the most convenient of times or worse, the\nbug\u002Fbugs might only be found in production. Now, I am not saying just by\nwriting tests, you can create a completely bug free software, but it will\ncertainly help you bring down their numbers significantly.",[314,5491,5493],{"id":5492},"_5-making-use-of-frameworks","5. Making use of frameworks",[307,5495,5496],{},[710,5497],{"alt":5498,"src":5499},"frameworks","\u002Fassets\u002Fimages\u002Fblog\u002F240820\u002Fframeworks.jpg",[307,5501,5502],{},"Maybe you are the fan of creating everything from scratch and there is\nabsolutely nothing wrong with that. But sometimes you might be solving\nproblems that has already been solved. That is simply wasting time. Nowadays,\nwe have an abundance of frameworks in every technology that are open source\nand with the backing of huge communities. Use them and concentrate on solving\nactual problems rather than reinventing the wheel.",[307,5504,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":5506},[5507,5508,5509,5510,5511],{"id":5440,"depth":359,"text":5441},{"id":5453,"depth":359,"text":5454},{"id":5466,"depth":359,"text":5467},{"id":5479,"depth":359,"text":5480},{"id":5492,"depth":359,"text":5493},"2020-08-24","Best practices for Software Engineers.","\u002Fassets\u002Fimages\u002Fblog\u002F240820\u002Fprocess1Title.jpg",{},{"title":166,"description":5513},"pJh6vS9U3v7-3DLap3GVtDoulftrGSGxDvvKsH6o-qQ",{"id":5519,"title":230,"author":5520,"body":5522,"date":5606,"description":5607,"extension":371,"image":5608,"meta":5609,"minRead":2305,"navigation":293,"path":231,"seo":5610,"stem":232,"__hash__":5611},"blog\u002Fblog\u002FThe Perils of Ray-Tracing.md",{"name":300,"avatar":5521},{"src":302,"alt":300},{"type":304,"value":5523,"toc":5601},[5524,5527,5530,5533,5536,5539,5542,5549,5552,5555,5558,5561,5564,5567,5570,5574,5577,5580,5583,5586,5589,5592,5595,5599],[307,5525,5526],{},"Ray tracing is arguably the most significant change to the real-time graphics\npipeline in the last decade. It gives developers new tools in the box of\ntricks they use to carefully persuade today’s GPUs to draw immersive,\nrealistic, high-quality scenes at high performance.",[307,5528,5529],{},"Within the last couple of years, products have hit the high-end PC market that\nsupport Microsoft’s DirectX Ray Tracing (DXR) specification. A number of\nhigh-profile games that use DXR showcase the potential of the technology.",[307,5531,5532],{},"The great folks at Khronos have also recently released their view of ray\ntracing as it applies to Vulkan. The resulting API will feel familiar to\nstudents of DXR, giving developers another ray-tracing API to target and a\nmeans to expand over time to platforms that aren't Windows.",[307,5534,5535],{},"However, at the time of writing, all of the public implementations come from a\nsingle vendor, Nvidia. Consequently, developers have a rather narrow view of\nwhat makes an accelerated ray-tracing implementation based on DXR or Vulkan\nray tracing tick.",[307,5537,5538],{},"That's no fault of Nvidia, the graphics giant taking advantage of their\nability to strong arm their view of ray tracing into DirectX and therefore\nrobustly influence the resulting capabilities in Vulkan. Any other vendor in\nNvidia's position would do the same, and the company's ability to productize\nthe output of its incredible research team is second to none.",[307,5540,5541],{},"However, if that's how a new graphics capability comes into being, driven\nalmost completely by a single vendor in the beginning, resulting in a narrow\nspectrum of implementations with limited market share, developers need to be\ncareful as that landscape of implementations broadens over time.",[307,5543,5544,5548],{},[5545,5546,5547],"strong",{},"Multiple Design Paths"," **",[307,5550,5551],{},"That's especially true when it comes to a largely black box feature like ray\ntracing. What do we mean by black box? For any given hardware and software\nspecification in the semiconductor world, and that isn't limited to GPUs,\nthere's a huge design space you can explore to implement it.",[307,5553,5554],{},"There's no one way to build a CPU for example, leading to a wide range of\npractical instruction set architectures (ISAs) that can all run roughly the\nsame software. GPUs enjoy an even wider range of potential implementations\nfrom different vendors because there's no standard ISA from which the industry\ndesigns its implementations.",[307,5556,5557],{},"GPU vendors take advantage of that to innovate more rapidly under the hood\ncompared to CPUs. That’s because the combination of hardware and software at\nwork can more readily hide what's under the hood doing the work at the silicon\nlevel.",[307,5559,5560],{},"So, when Nvidia proposed what became DXR to Microsoft, when specifying the\nprogramming model and API that developers need to target to perform ray\ntracing in their renderer, they left certain parts of it almost completely\nundefined.",[307,5562,5563],{},"That lack of guidance in parts of the specification is completely on purpose.\nWhy? It allows the underlying implementation of that bit of the specification\nto be entirely specific to a given GPU and its driver. In fact, parts of DXR\nand Vulkan ray tracing don't even need to run on the GPU at all!",[307,5565,5566],{},"And therein lies the rub: because of that, unlike almost every other feature\never added to the real-time graphics pipeline in GPU history, ray tracing will\nbe very difficult for developers to target in a uniform way.",[307,5568,5569],{},"That's further complicated by the fact that ray tracing is also bifurcating\nfrom the developer's point of view, too, with a simpler model having emerged\nfrom the full ray pipelines first specified. This allows for easier\nimplementation of some specific effects, particularly ray-traced shadows.",[314,5571,5573],{"id":5572},"advice-for-developers","Advice for Developers",[307,5575,5576],{},"So, with two ray-tracing programming models for developers to target and still\nonly one generation of shipping accelerators to try it out on, and with key\nparts of DXR and Vulkan ray tracing specified as completely\nimplementation-dependent, what should developers be aware of as things develop\nin the ray-tracing acceleration space?",[307,5578,5579],{},"As a company developing ray-tracing acceleration for its future GPUs, where\nour solution will have microarchitectural performance characteristics that are\nnecessarily different—and better by far, we hope—to those implementations from\nother vendors, we have some simple advice.",[307,5581,5582],{},"First, avoid any marketing claims about ray-tracing performance since there's\nno standard way to describe it. The black box nature of the ray-tracing\nspecifications makes it almost impossible to do so anyway. Let's pick on one\nof the most impressive GPUs ever made to push home the point: Nvidia's TU102\nin GeForce RTX 2080 Ti form. It's a competing product so I shouldn't really\nsay this, but woof, it's one heck of a GPU.",[307,5584,5585],{},"Nvidia says there's a peak ray flow of 10 Grays\u002Fsec in that product, which is\nan incredibly impressive headline number. Sadly, though, it doesn't actually\nsay anything concrete that you can understand as a consumer, developer, or\nanyone else interested in the technology and how it works.",[307,5587,5588],{},"Does it only measure miss-only rate with empty rays, or is it measuring\nreal-world usable ray flow on rays with a proper payload? It's a marketing\nnumber, so it's definitely a lot closer to the former than the latter,\nunfortunately. It also doesn't tell you anything about the location of the\nperformance cliffs. Nor does it tell you how ray-tracing throughput degrades\nwith complexity of ray, hierarchy, or any of the other moving parts of the\nray-tracing system, and how it's all integrated with the rest of the rendering\nworkload.",[307,5590,5591],{},"As a result, you're left with testing and measuring as your only realistic way\nto determine what's possible with a given level of ray-tracing performance in\na GPU. That’s because Nvidia's 10 Grays\u002Fsec won't mean the same thing as the\nsame number quoted by Imagination, or any of the other vendors that will try\ntheir hand at useful DXR or Vulkan ray-tracing acceleration for that matter.\nIt won't even mean the same thing generationally for Nvidia!",[307,5593,5594],{},"Lastly, does that mean the graphics market now has a need for public software\nthat tests meaningful peak microarchitectural ray flow to expose\nimplementation-specific details, along with some measures of real-world\nperformance in idiomatic game-like settings? Absolutely, and we'd love to talk\nto anyone who wants to tackle that problem, since it's a big missing piece of\nthe puzzle.",[350,5596,5598],{"id":5597},"real-time-graphics-has-entered-a-new-era-with-the-advent-of-ray-tracing-which-delivers-more-realistic-scenes-than-ever-before-but-all-current-implementations-centre-around-one-vendorand-that-raises-issues-especially-when-the-competitive-field-expands","Real-time graphics has entered a new era with the advent of ray tracing, which delivers more realistic scenes than ever before. But all current implementations centre around one vendor—and that raises issues, especially when the competitive field expands.",[307,5600,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":5602},[5603],{"id":5572,"depth":359,"text":5573,"children":5604},[5605],{"id":5597,"depth":368,"text":5598},"2020-08-17","There are certain perils for ray tracing among most of the advances it provides.","\u002Fassets\u002Fimages\u002Fblog\u002F170820\u002FrtPerilsTitle.jpg",{},{"title":230,"description":5607},"CMmuUuVK1oaFUFO2oTLe19ELrsQD2Z3kwTIJuiyFtw8",{"id":5613,"title":90,"author":5614,"body":5616,"date":5675,"description":5676,"extension":371,"image":5677,"meta":5678,"minRead":969,"navigation":293,"path":91,"seo":5679,"stem":92,"__hash__":5680},"blog\u002Fblog\u002FExtended Reality Simplified.md",{"name":300,"avatar":5615},{"src":302,"alt":300},{"type":304,"value":5617,"toc":5669},[5618,5621,5625,5628,5632,5638,5641,5645,5651,5654,5658,5664,5667],[307,5619,5620],{},"Imagine what it might be like to live and work in our world in 2030 and\nbeyond. Perhaps, thanks to advancements in extended reality (XR), an umbrella\nterm used to describe immersive technologies that can merge the physical and\nvirtual worlds, you might be able to shop for a new home anywhere in the world\nas if you were actually on-site or head to lunch in some faraway land. By\n2022, the XR market is expected to reach $209 billion, which is eight times\nwhat it is today. This tremendous growth could mean the realities of our 2030\nlives are beyond our imagination’s ability to grasp.",[314,5622,5624],{"id":5623},"what-is-extended-reality-xr","What is extended reality (XR)?",[307,5626,5627],{},"XR is an emerging umbrella term for all the immersive technologies. The ones\nwe already have today—augmented reality (AR), virtual reality (VR), and mixed\nreality (MR) plus those that are still to be created. All immersive\ntechnologies extend the reality we experience by either blending the virtual\nand “real” worlds or by creating a fully immersive experience. Recent research\nrevealed that more than 60% of respondents believed XR will be mainstream in\nthe next five years. To get a better picture of XR, let’s review each of the\nexisting technologies that exist today.",[314,5629,5631],{"id":5630},"virtual-reality-vr","Virtual reality (VR)",[307,5633,5634],{},[710,5635],{"alt":5636,"src":5637},"vrXr","\u002Fassets\u002Fimages\u002Fblog\u002F100820\u002FvrXr.jpg",[307,5639,5640],{},"In virtual reality, users are fully immersed in a simulated digital\nenvironment. Individuals must put on a VR headset or head-mounted display to\nget a 360 -degree view of an artificial world that fools their brain into\nbelieving they are, e.g., walking on the moon, swimming under the ocean or\nstepped into whatever new world the VR developers created. The gaming and\nentertainment industry were early adopters of this technology; however,\ncompanies in several industries such as healthcare, construction, engineering,\nthe military, and more are finding VR to be very useful.",[314,5642,5644],{"id":5643},"augmented-reality-ar","Augmented reality (AR)",[307,5646,5647],{},[710,5648],{"alt":5649,"src":5650},"arXr","\u002Fassets\u002Fimages\u002Fblog\u002F100820\u002FarXr.jpg",[307,5652,5653],{},"In augmented reality, virtual information and objects are overlaid on the real\nworld. This experience enhances the real world with digital details such as\nimages, text, and animation. You can access the experience through AR glasses\nor via screens, tablets, and smartphones. This means users are not isolated\nfrom the real world and can still interact and see what’s going on in front of\nthem. The most well-known examples of AR are the Pokémon GO game that overlays\ndigital creatures onto the real world or Snapchat filters that put digital\nobjects such as hats or glasses onto your head.",[314,5655,5657],{"id":5656},"mixed-reality-mr","Mixed reality (MR)",[307,5659,5660],{},[710,5661],{"alt":5662,"src":5663},"mrXr","\u002Fassets\u002Fimages\u002Fblog\u002F100820\u002FmrXr.jpg",[307,5665,5666],{},"In mixed reality, digital and real-world objects co-exist and can interact\nwith one another in real-time. This is the latest immersive technology and is\nsometimes referred to as hybrid reality. It requires an MR headset and a lot\nmore processing power than VR or AR. Microsoft's HoloLens is a great example\nthat, e.g., allows you to place digital objects into the room you are standing\nin and give you the ability to spin it around or interact with the digital\nobject in any way possible. Companies are exploring ways they can put mixed\nreality to work to solve problems, support initiatives, and make their\nbusinesses better.",[307,5668,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":5670},[5671,5672,5673,5674],{"id":5623,"depth":359,"text":5624},{"id":5630,"depth":359,"text":5631},{"id":5643,"depth":359,"text":5644},{"id":5656,"depth":359,"text":5657},"2020-08-10","Extended Reality Explained.","\u002Fassets\u002Fimages\u002Fblog\u002F100820\u002FexRealtitle.jpg",{},{"title":90,"description":5676},"Yur2DyTgdaaHy40c-E92uo8MPkcxabZzjxN6MBJW7KU",{"id":5682,"title":202,"author":5683,"body":5685,"date":5768,"description":5769,"extension":371,"image":5770,"meta":5771,"minRead":860,"navigation":293,"path":203,"seo":5772,"stem":204,"__hash__":5773},"blog\u002Fblog\u002FSelf Driving Cars - A Better Tomorrow.md",{"name":300,"avatar":5684},{"src":302,"alt":300},{"type":304,"value":5686,"toc":5759},[5687,5690,5694,5700,5703,5707,5713,5716,5720,5726,5729,5733,5739,5742,5746,5753,5757],[307,5688,5689],{},"With more than 40 companies actively investing in autonomous vehicle\ntechnology, it’s fair to say that most traditional car manufacturers – plus\nthe odd tech heavyweight, like Google parent company Alphabet – are busy\nchasing the self-driving car dream. As a result, we’re likely to see the first\ntruly autonomous, commercially viable driverless cars hit the market in the\ncoming years. If that happens, autonomous vehicles have the potential to\nimprove our world and make everyday life that little bit easier. Here are five\nways I think society will benefit from autonomous cars.",[314,5691,5693],{"id":5692},"_1-easier-parking","1. Easier Parking",[307,5695,5696],{},[710,5697],{"alt":5698,"src":5699},"parking","\u002Fassets\u002Fimages\u002Fblog\u002F030820\u002Fparking.jpg",[307,5701,5702],{},"It's also hoped that autonomous vehicles will improve parking in congested\ncities because driverless vehicles could simply drop passengers off and move\non. This becomes increasingly realistic if the motorists of the future choose\nnot to purchase their own self-driving vehicle, but instead make use of\nautomated ride-sharing or taxi services. As an added bonus, with fewer people\nneeding to find a parking space, land that is currently used for huge car\nparks could be repurposed for much-needed housing or attractive public spaces.\nWith this in mind, the city of Chandler in Arizona has already changed its\nzoning laws to accommodate autonomous vehicles; developers will now be able to\nbuild properties with fewer parking spaces, so long as they provide suitable\ncurb-side passenger loading zones. In other words, the buildings of the future\nmay no longer be flanked by huge, ugly car parks, and will instead favour\ndedicated areas for drop-offs and pick-ups.",[314,5704,5706],{"id":5705},"_2-emission-reduction","2. Emission Reduction",[307,5708,5709],{},[710,5710],{"alt":5711,"src":5712},"emission","\u002Fassets\u002Fimages\u002Fblog\u002F030820\u002Femission.jpg",[307,5714,5715],{},"In the future, with the majority of self-driving vehicles being electric or\nhybrids, and given the fact that autonomous vehicles drive more efficiently\nthan humans, we could see a serious reduction in emissions. That’s the hope,\nanyway. One study by the University of California, Davis suggests that\nautomated vehicles could reduce greenhouse gas emissions by as much as 80\npercent by 2050 – but only if the vehicles are electric and shared. If we\ndon't transition towards more shared vehicles, then the worrying prediction is\nemissions could actually increase (by as much as 50 percent by 2050, according\nto the same study). This is because self-driving cars could make car ownership\npossible for people who cannot drive, potentially increasing the number of\nvehicles and miles driven. Therefore, this benefit is far from a foregone\nconclusion. As a society, we’ll need to rethink our attitude towards car\nownership if we’re to reap the full environmental benefits of autonomous\nvehicles.",[314,5717,5719],{"id":5718},"_3-cutting-domestic-air-travel","3. Cutting domestic air travel",[307,5721,5722],{},[710,5723],{"alt":5724,"src":5725},"domesticTravel","\u002Fassets\u002Fimages\u002Fblog\u002F030820\u002FdomesticTravel.jpg",[307,5727,5728],{},"Volvo’s 360c concept car, which was unveiled in 2018, provides a glimpse of a\nfuture in which self-driving cars are no longer just cars – they're places to\nwork, sleep, and relax. Almost a cross between a hotel room and the\nfirst-class cabin of a plane. Volvo’s vision is one of a luxurious, driverless\nfuture in which a car can pick you up and take you wherever you need to go,\npotentially eliminating the need for short-haul, domestic air travel. With\nVolvo’s concept, you would be able to order a car, pre-order food and drink,\nand then recline and relax in the back while the car transports you to your\ndestination. You then arrive fresh-faced and relaxed, having endured none of\nthe stress and exhaustion of plane travel. Particularly for journeys that\ncould be made overnight, this vision could seriously disrupt the travel\nindustry – and cut the carbon footprint associated with travel.",[314,5730,5732],{"id":5731},"_4-making-our-roads-safer","4. Making our roads safer",[307,5734,5735],{},[710,5736],{"alt":5737,"src":5738},"saferRoad","\u002Fassets\u002Fimages\u002Fblog\u002F030820\u002FsaferRoad.jpg",[307,5740,5741],{},"While there have been some high-profile cases of autonomous vehicles being\ninvolved in tragic fatal accidents, data suggests that self-driving cars will\nultimately make our roads safer. Statistics from the National Highway Traffic\nSafety Administration (NHTSA) show that driver error is by far the biggest\ncause of road traffic accidents, due to factors like miscalculations, errors\nof judgment, speeding, drink-driving, and phone use. In fact, an alarming 94\npercent of serious crashes are down to human error. Fully autonomous vehicles\nwould take human error out of the equation, thereby making our roads safer not\njust for drivers, but also passengers, cyclists, and pedestrians. For that\nreason, the NHTSA has championed the safety benefits of autonomous vehicles.",[314,5743,5745],{"id":5744},"_5-making-the-daily-commute-more-bearable","5. Making the daily commute more bearable",[307,5747,5748,5752],{},[710,5749],{"alt":5750,"src":5751},"commute","\u002Fassets\u002Fimages\u002Fblog\u002F030820\u002Fcommute.jpg","\nWhen we reach the point where human intervention behind the wheel is no longer\nneeded, autonomous vehicles will drastically improve the daily commute.\nImagine, instead of sitting behind the wheel, you’ll be able to stretch out in\nthe back, get ahead on some work, or simply relax and catch up on your latest\nNetflix obsession. When you think that Americans spend 19 full working days a\nyear stuck in traffic on their commute, that’s an awful lot of time commuters\nwill be able to claw back for themselves.",[350,5754,5756],{"id":5755},"as-more-and-more-companies-are-leaning-into-virtual-test-driving-this-list-could-only-increase-and-contribute-more-for-a-driver-less-future","As more and more companies are leaning into Virtual Test Driving, this list could only increase and contribute more for a driver-less future.",[307,5758,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":5760},[5761,5762,5763,5764,5765],{"id":5692,"depth":359,"text":5693},{"id":5705,"depth":359,"text":5706},{"id":5718,"depth":359,"text":5719},{"id":5731,"depth":359,"text":5732},{"id":5744,"depth":359,"text":5745,"children":5766},[5767],{"id":5755,"depth":368,"text":5756},"2020-08-03","How self driving cars might help us create a better future.","\u002Fassets\u002Fimages\u002Fblog\u002F030820\u002FselfDriveTitle.jpg",{},{"title":202,"description":5769},"K5jsFOciEzgK0HMG8eekobEyOheEa4YoiV6bmY3oThQ",{"id":5775,"title":102,"author":5776,"body":5778,"date":5953,"description":5954,"extension":371,"image":5955,"meta":5956,"minRead":3191,"navigation":293,"path":103,"seo":5957,"stem":104,"__hash__":5958},"blog\u002Fblog\u002FHow to be a Full Stack Engineer.md",{"name":300,"avatar":5777},{"src":302,"alt":300},{"type":304,"value":5779,"toc":5941},[5780,5783,5787,5790,5796,5802,5816,5819,5822,5826,5829,5833,5836,5840,5843,5847,5850,5853,5857,5860,5863,5886,5889,5893,5896,5899,5903,5906,5923,5926,5929,5932,5936,5939],[307,5781,5782],{},"Full stack engineer has become one of the most sought-after positions in the\ntechnology domain. The boom in this area has led to the mushrooming of both\nweb-based and in-class training centers, which help individuals become full\nstack engineers. Some of these centers also support trainees to get plum\ncoding jobs at the end of the course.",[314,5784,5786],{"id":5785},"who-is-a-full-stack-engineer","Who is a full stack engineer?",[307,5788,5789],{},"A programmer skilled in coding both the frontend and the backend parts of a\nweb application is called a full stack web engineer.",[307,5791,5792,5795],{},[5545,5793,5794],{},"The frontend:"," This is the part of the web application that the user\nsees and uses.",[307,5797,5798,5801],{},[5545,5799,5800],{},"The backend:"," These are parts of the application that function behind\nthe scenes and execute the commands issued by the user. This usually includes:",[769,5803,5804,5807,5810,5813],{},[772,5805,5806],{},"logical processes",[772,5808,5809],{},"database-related processes",[772,5811,5812],{},"validation of users",[772,5814,5815],{},"server configuration",[307,5817,5818],{},"A full stack engineer is not expected to be an expert in all areas pertaining\nto the frontends and backends. The individual needs to be knowledgeable in all\nthe technologies involved and should be able to understand the processes\nhappening within the entire application.",[307,5820,5821],{},"You can become a full stack engineer by following a few simple steps, such as:",[314,5823,5825],{"id":5824},"_1-learn-the-necessary-programming-languages","1. Learn the necessary programming languages",[307,5827,5828],{},"A full stack engineer needs to know the following technologies:",[350,5830,5832],{"id":5831},"htmlcss","HTML\u002FCSS",[307,5834,5835],{},"The web is built on these technologies. HTML is the tool that helps engineers\ninput content into a website and CSS is a designing tool used to alter the\nappearance of web applications. Both are essential tools for a full stack\nengineer and are taught in all courses, whether online or in-person.",[350,5837,5839],{"id":5838},"javascript","JavaScript",[307,5841,5842],{},"This is a must-have for any full stack engineer. This can be used in both\nfront-end and back-end processes. Browsers are built on it and JavaScript can\nbe used as a server-side language as well.",[350,5844,5846],{"id":5845},"backend-technologies","Backend technologies",[307,5848,5849],{},"After mastering HTML\u002FCSS and JavaScript, you need to learn at least one\nlanguage used for coding backend processes. The functions occurring in the\nbackend of a web application are database operations, user validation, and\nlogical operations.",[307,5851,5852],{},"Any course, whether online or otherwise, most often will teach you backend\ntechnology — PHP, Java, Python, or SQL. Learning one of the languages should\nsuffice but you should attain proficiency in it.",[314,5854,5856],{"id":5855},"_2-refine-the-knowledge","2. Refine the knowledge",[307,5858,5859],{},"To understand complex concepts, you need to be sure about the fundamentals.\nJavaScript & HTML\u002FCSS form the base of web development. For any novice, you\nshould be clear about all aspects of these technologies.",[307,5861,5862],{},"Knowledge of programming concepts can help improve coding skills. Some\ntheories\u002Fknowledge to acquire before pushing ahead are:",[769,5864,5865,5868,5871,5874,5877,5880,5883],{},[772,5866,5867],{},"Servers and their functioning.",[772,5869,5870],{},"Networks and their nuances.",[772,5872,5873],{},"Web-hosting environments.",[772,5875,5876],{},"Algorithms and their formulation.",[772,5878,5879],{},"Data structures (types, properties, and use).",[772,5881,5882],{},"Programming technologies.",[772,5884,5885],{},"Databases and their management",[307,5887,5888],{},"You should be able to piece together the different parts of the application\nand create a whole out of the parts. For this, you should understand how each\npart works, its role in the bigger scheme of things and how one part connects\nto the other.",[314,5890,5892],{"id":5891},"_3-become-familiar-with-all-technologies-but-a-master-of-one","3. Become familiar with all technologies but a master of one",[307,5894,5895],{},"As the scope of your leaning expands, you will realize that there is much more\nto learn than you possibly can master. Most programmers fail because they try\nto learn too much of too many things. There is no need for such efforts.\nMaster one and understand the rest. Learn how to work in them and that should\nbe good enough.",[307,5897,5898],{},"As your experience grows, your ease with the technologies will also improve.\nTake pains to specialize in one technology. Choose a technology popular among\nclients. This should help you compete effectively with others in the field and\nproduce outstanding work. And with the way this economy is growing with lower\ntaxes, you should have a bright career ahead and be able to relocate other\nstates if you wish to.",[314,5900,5902],{"id":5901},"_4-get-practical-exposure","4. Get practical exposure",[307,5904,5905],{},"The most challenging part of the process is when you have a thorough\nunderstanding of all the necessary technologies—HTML\u002FCSS, JavaScript, back-end\nprogramming, databases, and HTTP\u002FREST. Time has come to use all this knowledge\nin an application. For this, you need to know:",[769,5907,5908,5911,5914,5917,5920],{},[772,5909,5910],{},"The right way to structure code.",[772,5912,5913],{},"Means to separate files.",[772,5915,5916],{},"Environment to host large media files.",[772,5918,5919],{},"The right data structures to use.",[772,5921,5922],{},"Location of each computational task (client-side or server-side).",[307,5924,5925],{},"Theoretical knowledge can be obtained by reading online materials, but to\nunderstand application architecture properly, you must implement an actual web\napplication.",[307,5927,5928],{},"Working with a team is the ideal way to accomplish this through an individual\ncan also develop an application alone. This exercise adds the all-essential\npractical exposure to the technology toolkit of a full-stack engineer.",[307,5930,5931],{},"A few companies may insist on an applicant having a degree in computer science\nto apply for the position, but most will overlook education if a candidate can\nexhibit the necessary coding abilities.",[314,5933,5935],{"id":5934},"_5-take-up-additional-assignments","5. Take up additional assignments",[307,5937,5938],{},"Join additional projects in your company that work on technologies outside\nyour expertise. This way you will upskill and add extra value to your\norganization as well. Most companies will appreciate these types of\ninitiatives — just don’t try to show anyone up and courteous in your pursuit\nof learning.",[307,5940,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":5942},[5943,5944,5949,5950,5951,5952],{"id":5785,"depth":359,"text":5786},{"id":5824,"depth":359,"text":5825,"children":5945},[5946,5947,5948],{"id":5831,"depth":368,"text":5832},{"id":5838,"depth":368,"text":5839},{"id":5845,"depth":368,"text":5846},{"id":5855,"depth":359,"text":5856},{"id":5891,"depth":359,"text":5892},{"id":5901,"depth":359,"text":5902},{"id":5934,"depth":359,"text":5935},"2020-07-26","An article to help you accelerate on your path to become a Full Stack Engineer.","\u002Fassets\u002Fimages\u002Fblog\u002F260720\u002FfullStackTitle.jpg",{},{"title":102,"description":5954},"MqsLe2bPUcwp2SQSLnPdmeX1q5atj4RBlfYIba2wpBA",{"id":5960,"title":190,"author":5961,"body":5963,"date":6009,"description":6010,"extension":371,"image":6011,"meta":6012,"minRead":368,"navigation":293,"path":191,"seo":6013,"stem":192,"__hash__":6014},"blog\u002Fblog\u002FRay tracing - What you need to know.md",{"name":300,"avatar":5962},{"src":302,"alt":300},{"type":304,"value":5964,"toc":6006},[5965,5968,5971,5974,5977,5982,5985,5988,5991,5994,5997,6000,6004],[307,5966,5967],{},"Ray tracing has long been the holy grail of graphics rendering technology.\nSince it was announced back in Gamescom 2018, NVIDIA Turing has been the talk\nof the town. From there, you could have this technology through NVIDIA’s RTX\nlineup.",[307,5969,5970],{},"Ray tracing has actually been around for long back before 2018 though. Movies\nand TV shows have been using it to create amazing CG which entertained us with\nincredible and real-life like visuals. What NVIDIA has produced (and soon, AMD\nas well) is Real-time Ray tracing. Ray tracing requires a lot of horsepower,\nwhich simply wasn’t a trait the predecessors of NVIDIA RTX lineup. Now, we can\nrender the same effects in everyday computers and as a result, we now have ray\ntracing games.",[307,5972,5973],{},"So, what is ray tracing?",[307,5975,5976],{},"Ray tracing is a rendering technique that can produce incredibly realistic\nlighting effects. An algorithm can trace the path of light and simulate the\nway the light interacts with the virtual objects it hits in the computer\ngenerated world.",[307,5978,5979],{},[710,5980],{"alt":5207,"src":5981},"\u002Fassets\u002Fimages\u002Fblog\u002F200720\u002Fcontrol.jpg",[307,5983,5984],{},"The lighting effects in games have been becoming more and more realistic over\nthe years. But, the benefits of ray tracing are much more about how it\ninteracts with the world rather than the light itself.",[307,5986,5987],{},"Ray tracing improves translucence and scattering along with lifelike shadows\nand reflections. Where the light hits is taken into account by the algorithm\nand it calculates the interaction and interplay much like the human eye would\nprocess real light, reflections and shadows.",[307,5989,5990],{},"With enough computational power at your disposal, it is possible to produce\nastonishingly realistic computer generated environments that are\nindistinguishable from real life. But, that has been the problem: most gaming\nPCs only has so much GPU power to work with, let alone a modern gaming\nconsole.",[307,5992,5993],{},"Ray tracing have been in use for movies and TV shows because studios have had\nthe capital and capability to harness the power from a server farm or cloud\ncomputing to get the job done. But still, it might take long hours to get the\nresults. Previously, doing it all on the fly has been far too taxing for\nexisting hardwares.",[307,5995,5996],{},"Video games have used rasterization, traditionally. It is a faster way to\nrender computer graphics. It converts 3D graphics into 2D pixels to display on\nthe screen, but requires shaders to depict realistic lighting. But the shift\nhas now started and more and more games have now started to take advantage of\nthe latest hardware that now NVIDIA seemingly has a monopoly over, to use the\nreal time ray tracing.",[307,5998,5999],{},"Even after nearly two years since it has been introduced to the market, the\nresults, if I may are not super mind-blowing. But it is getting better by\ntime. The revolution in the gaming industry has already started.",[350,6001,6003],{"id":6002},"with-amds-ray-tracing-graphics-around-the-corner-and-the-resulting-competition-one-can-only-hope-that-it-brings-advancements-in-ray-tracing-in-an-exponential-rate","With AMD’s ray tracing graphics around the corner and the resulting competition, one can only hope, that it brings advancements in ray tracing in an exponential rate.",[307,6005,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":6007},[6008],{"id":6002,"depth":368,"text":6003},"2020-07-20","Explaining Ray tracing.","\u002Fassets\u002Fimages\u002Fblog\u002F200720\u002FrayTracingTitle.jpg",{},{"title":190,"description":6010},"6wyLmio9wQ_hvT3qKEk2OdIUkagXXv9RYIqJJFbv8hk",{"id":6016,"title":254,"author":6017,"body":6019,"date":6108,"description":6109,"extension":371,"image":6110,"meta":6111,"minRead":969,"navigation":293,"path":255,"seo":6112,"stem":256,"__hash__":6113},"blog\u002Fblog\u002FVirtual Reality Advantages.md",{"name":300,"avatar":6018},{"src":302,"alt":300},{"type":304,"value":6020,"toc":6099},[6021,6024,6028,6031,6034,6038,6041,6044,6055,6059,6062,6065,6079,6083,6086,6090,6093,6097],[307,6022,6023],{},"Virtual reality has demonstrated its ability to transform and drive results in\nthe learning and training arena–and the world is starting to pay more\nattention. From traditional classroom environments to extreme training\nsituations, VR reduces investment and increases enrichment across a range of\nindustries. When it comes to absorbing, retaining, and applying new skills, VR\ndelivers distinct advantages.",[314,6025,6027],{"id":6026},"_1-offering-experiences-that-promote-repetition-and-retention","1. Offering Experiences That Promote Repetition and Retention",[307,6029,6030],{},"New skills require practice. But what if the skill is heart surgery? And what\nif you need to be able to strategise a response to an enemy ambush on the fly?\nSimulations have been part of professional and military training as long as\nanyone can remember, but it’s never been easy or cheap to set them up for the\nsake of practice. VR training options offer controlled, easily generated\nenvironments that allow for the repetition students need to master a new skill\nor process.",[307,6032,6033],{},"When it comes to a classroom environment, students often have trouble engaging\nfor long periods of time with limited stimulation. But when the classroom\nsuddenly transforms into the Amazon or the oval office, enthusiasm is\ninevitable. A VR environment encourages information retention by offering\nstudents fresh, immersive learning opportunities. With customisable sessions,\nthe responses of the teaching module can also evolve as the students improve\nand retain.",[314,6035,6037],{"id":6036},"_2-reducing-training-budget-and-providing-scalability","2. Reducing Training Budget and Providing Scalability**",[307,6039,6040],{},"VR is tied to results. It’s possible to collect metrics from virtual\neducation, showing the improvement in outcomes. Anything learned — whether\nfacts or skills — can be tested, and an organisation can easily compare\ncurrent methods to a virtual learning course. VR modules also provide feedback\nduring the training period, so instructors can iterate.",[307,6042,6043],{},"Savings also take the form of:",[769,6045,6046,6049,6052],{},[772,6047,6048],{},"Equipment longevity.",[772,6050,6051],{},"Logistics reduction.",[772,6053,6054],{},"Time savings.",[314,6056,6058],{"id":6057},"_3-delivering-results-to-a-wide-range-of-industries","3. Delivering Results to a Wide Range of Industries",[307,6060,6061],{},"Continued learning and increased efficiency are staples for any company or\ninstitution worth its salt. Absorbing material quickly, optimising\napplication, and streamlining interaction\u002Fworkflow directly influences the\nbottom line.",[307,6063,6064],{},"VR is already making headway in a range of industries such as:",[769,6066,6067,6070,6073,6076],{},[772,6068,6069],{},"Healthcare.",[772,6071,6072],{},"Machine Operations.",[772,6074,6075],{},"Rehabilitation.",[772,6077,6078],{},"Corporate Training.",[314,6080,6082],{"id":6081},"_4-appealing-to-a-variety-of-learning-styles","4. Appealing to a Variety of Learning Styles",[307,6084,6085],{},"Classic teaching and training methods convey content to students according to\nthe instructor’s preferred style of learning. These styles are classified as\nvisual, auditory, tactical, and kinaesthetic. But what if multiple styles of\nlearning could be satisfied simultaneously? With VR learning, this is a new\nreality. Although recent research raises questions about the utility of\naddressing certain learning styles, the fact remains that people have strong\npreferences for acquiring new skills and information. VR experiences access\nall the senses, a variety of preferences can be satisfied and delighted. It\noffers the ability to simultaneously reach students across at least three of\nthe four classical learning styles. Among education specialists in particular,\nthere is universal agreement on VR technology’s effectiveness and potential to\nbreathe new life into traditional teaching methods.",[314,6087,6089],{"id":6088},"_5-eliminating-risk-and-safety-concerns","5. Eliminating Risk and Safety Concerns",[307,6091,6092],{},"Medical students need to practice procedures without potentially harming a\npatient through inexperience, or even curiosity. Firefighters and military\npersonnel need to learn how to respond in dangerous situations without risking\ntheir lives.",[350,6094,6096],{"id":6095},"vr-experiences-can-build-extreme-environments-and-situations-allowing-users-to-test-and-learn-without-severe-consequences-this-not-only-eliminates-risk-liability-and-injury-it-also-allows-users-to-more-easily-train-and-master-procedures-so-when-the-time-comes-theyre-prepared-for-the-real-deal-added-bonus-with-greater-safety-comes-fewer-costs","VR experiences can build extreme environments and situations, allowing users to test and learn without severe consequences. This not only eliminates risk, liability, and injury; it also allows users to more easily train and master procedures, so, when the time comes, they’re prepared for the real deal. Added bonus: With greater safety, comes fewer costs.",[307,6098,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":6100},[6101,6102,6103,6104,6105],{"id":6026,"depth":359,"text":6027},{"id":6036,"depth":359,"text":6037},{"id":6057,"depth":359,"text":6058},{"id":6081,"depth":359,"text":6082},{"id":6088,"depth":359,"text":6089,"children":6106},[6107],{"id":6095,"depth":368,"text":6096},"2020-07-13","The advatages of implementing Virtual Reality.","\u002Fassets\u002Fimages\u002Fblog\u002F130720\u002FVRadvTitle.jpg",{},{"title":254,"description":6109},"PYiHXmXq3VRcAI3DcxKz7YHrev6tDbRCUBEgbjclPgw",{"id":6115,"title":258,"author":6116,"body":6118,"date":6199,"description":6200,"extension":371,"image":6201,"meta":6202,"minRead":860,"navigation":293,"path":259,"seo":6203,"stem":260,"__hash__":6204},"blog\u002Fblog\u002FVirtual Test Drive & Autonomous Driving.md",{"name":300,"avatar":6117},{"src":302,"alt":300},{"type":304,"value":6119,"toc":6191},[6120,6123,6126,6129,6132,6135,6139,6145,6148,6152,6158,6161,6165,6171,6174,6178,6184,6187,6189],[307,6121,6122],{},"Autonomous vehicles are becoming more and more realistic by time. Thousands of\nvehicles are being tested on the roads by companies such as Tesla, Uber,\nWaymo, Cruise, Didi, etc. Almost all of these companies have accumulated\nmillions of miles of road-testing data, which in result have helped them\nenhance and validate their respective algorithms.",[307,6124,6125],{},"Just like every other vehicle, autonomous vehicles should also undergo almost\nevery traditional testing and quality assurance. On top of that, it should\nalso prove to be as much as safe or reliable as a human operator or better.",[307,6127,6128],{},"So, the algorithms should inevitably should prove the same, for it to be let\nout into the world. But most regulations will not allow these as it is not\nthat safe yet - even for testing. Although now some cities have allowed\ncertain companies to do the testing on the road, that too, in limited areas\nand in limited capacity, that simply won’t present much scenarios for the\nalgorithms to learn.",[307,6130,6131],{},"The virtual testing environments have now the capability to solve much of\nthese problems. That is why most of the top players are pursuing the same. But\nwhat solutions does the Virtual Test Drive (VTD) offer and how can they be\nleveraged to our current needs.",[307,6133,6134],{},"Let’s go through some of them.",[314,6136,6138],{"id":6137},"_1-cost-saving","1. Cost Saving",[307,6140,6141],{},[710,6142],{"alt":6143,"src":6144},"costSaving","\u002Fassets\u002Fimages\u002Fblog\u002F050720\u002FcostSaving.jpg",[307,6146,6147],{},"A fully equipped autonomous vehicle may cost around half a million dollars.\nThus, making the cost for a small fleet of 20 cost around 10-12 million\ndollars of investment, just for the hardware. There are a lot to go still on\nregulations and approvals and then finally testing on road. In case of VTD,\nyou only need to create a base model and then make variations accordingly in\norder to test it on virtual environments. You will still have to test it\nphysically on the road though. But now, the algorithm would have learned so\nmuch from the virtual environments before it even hits the road. Money will be\nsaved by reducing number of prototypes in effect.",[314,6149,6151],{"id":6150},"_2-distance-coverage","2. Distance Coverage",[307,6153,6154],{},[710,6155],{"alt":6156,"src":6157},"distanceCoverage","\u002Fassets\u002Fimages\u002Fblog\u002F050720\u002FdistanceCoverage.jpg",[307,6159,6160],{},"Back in 2018, the commonly accepted number of 1 Billion miles was supposed to\nbe required for developing an autonomous driving system. By January 2020,\nWaymo had covered around 20 million miles on public roads, but around 7\nBillion in virtual environments, since its inception back in 2009. Today that\nnumber is over 10 Billion miles. Now, if they had only relied on the testing\non public roads and followed through with the same rate, it would have taken\naround roughly them around 5.5 centuries to reach the 1st Billion.",[314,6162,6164],{"id":6163},"_3-more-scenarios-to-learn-from","3. More Scenarios to learn from",[307,6166,6167],{},[710,6168],{"alt":6169,"src":6170},"moreScenarios","\u002Fassets\u002Fimages\u002Fblog\u002F050720\u002FmoreScenarios.jpg",[307,6172,6173],{},"We could test them on real roads, if you only need to check a few use cases.\nHowever, we could never assure the use cases we encounter in real roads by\nchance would be enough for the autonomous vehicles to be fully ready. The\nnumber of conditions to be checked will scale quickly to millions and there is\nno way to meet these needs without virtual environments. For instance, what\nhappens if a city decides to paint all the road signs yellow instead of white?\nWhat happens if trees grew larger to block the view from seeing the\npedestrians? What of children dressed as pumpkins out for a walk in Halloween?\nThese scenarios are to be considered but might not be encountered in the real\nworld.",[314,6175,6177],{"id":6176},"_4-safety","4. Safety",[307,6179,6180],{},[710,6181],{"alt":6182,"src":6183},"safety","\u002Fassets\u002Fimages\u002Fblog\u002F050720\u002Fsafety.jpg",[307,6185,6186],{},"There is a high probability of the vehicle not detecting a person or an animal\nand having a head on collision while testing. There is a chance of hitting\nother vehicles on the road or parked on the side of the road. There is a\nchance of not recognising a traffic sign and meeting with an accident. The\nvehicle might go out of the lane or even the road. All these scenarios will\nstill occur in the virtual environment. But the differences are, there won’t\nbe any harm to any person or animal and no lasting damage to the vehicle\nprototype or third-party property.",[350,6188,5756],{"id":5755},[307,6190,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":6192},[6193,6194,6195,6196],{"id":6137,"depth":359,"text":6138},{"id":6150,"depth":359,"text":6151},{"id":6163,"depth":359,"text":6164},{"id":6176,"depth":359,"text":6177,"children":6197},[6198],{"id":5755,"depth":368,"text":5756},"2020-07-05","How autonomous driving technology can help us.","\u002Fassets\u002Fimages\u002Fblog\u002F050720\u002FVTDtitle.jpg",{},{"title":258,"description":6200},"M9854JJaZtYxzwPrpcSy0L6ok5QYSsWFhfMW0VrIGxU",{"id":6206,"title":110,"author":6207,"body":6209,"date":6388,"description":6389,"extension":371,"image":6390,"meta":6391,"minRead":6392,"navigation":293,"path":111,"seo":6393,"stem":112,"__hash__":6394},"blog\u002Fblog\u002FHow to choose components for a desktop PC on your own.md",{"name":300,"avatar":6208},{"src":302,"alt":300},{"type":304,"value":6210,"toc":6374},[6211,6214,6217,6220,6252,6255,6260,6263,6266,6271,6274,6277,6283,6286,6289,6294,6297,6300,6306,6309,6312,6318,6321,6324,6329,6332,6335,6341,6344,6347,6353,6356,6359,6365,6368,6372],[307,6212,6213],{},"It is quite natural to get overwhelmed with all the possible variables that\nmay arise while building a desktop on your own. The first thing you need to\nunderstand and reach a decision on is what kind of PC do you need. When you\nhave a clear picture of that, it would be much easier to get the most out of\nyour build. Do you want a Performance PC or one to do regular works such as\nchecking emails, creating simple documents, browsing, etc. If you are not\nlooking for a performance build, I would suggest you go for a laptop as it\nmight serve all of these needs and you have the ease of portability. But if\nyou are looking for a performance PC, then you need to assess what kind of\nperformance are you looking for. The gaming PCs and the creator PCs have\ndifferent DNAs.",[307,6215,6216],{},"Bottlenecking will be present however good you are. Your goal should be to\nminimize the bottlenecks rather than trying to eliminate them as it is not\npossible as of now.",[307,6218,6219],{},"So, what are the key components on any PC builds?",[769,6221,6222,6225,6228,6231,6234,6237,6240,6243,6246,6249],{},[772,6223,6224],{},"Processor",[772,6226,6227],{},"Motherboard",[772,6229,6230],{},"Memory (RAM)",[772,6232,6233],{},"Storage",[772,6235,6236],{},"Graphics Card",[772,6238,6239],{},"Power Supply (PSU)",[772,6241,6242],{},"Case",[772,6244,6245],{},"Fans and Coolers",[772,6247,6248],{},"Monitor\u002Fs",[772,6250,6251],{},"Keyboard & Mouse",[314,6253,6224],{"id":6254},"processor",[307,6256,6257],{},[710,6258],{"alt":6254,"src":6259},"\u002Fassets\u002Fimages\u002Fblog\u002F290620\u002Fprocessor.jpg",[307,6261,6262],{},"This is the first component you have to choose when you are building a PC.\nNow, the big players out there are AMD and Intel. Both have their own areas\nthey excel. For instance, Intel is widely chosen by most for regular office\nworks as well as a first choice for most of the gamers. But AMD has been\ncatching up on this and with the release of Ryzen 3rd generation processors,\nsome might say, they even surpassed Intel on many grounds. Also, AMD provides\ngood performance at cheaper costs compared to Intel.",[314,6264,6227],{"id":6265},"motherboard",[307,6267,6268],{},[710,6269],{"alt":6265,"src":6270},"\u002Fassets\u002Fimages\u002Fblog\u002F290620\u002Fmotherboard.jpg",[307,6272,6273],{},"This is one of the primary components you want to choose. This component will\ndictate the physical form factor and size of your PC build. It will also\ndetermine what other components you can use in the build. Each processor will\nhave a compatible chipset. The motherboard chipset should be compatible with\nyour Processor not to mention the socket. It will determine what kind of RAM\n(DDR4, DDR3, DDR2, …) you can use and how many, the GPU – the interface,\nwhether combining the power of multiple GPUs is an option, storage – how many\nand what type, etc.",[314,6275,6230],{"id":6276},"memory-ram",[307,6278,6279],{},[710,6280],{"alt":6281,"src":6282},"ram","\u002Fassets\u002Fimages\u002Fblog\u002F290620\u002Fram.jpg",[307,6284,6285],{},"Even long after your build, by adding more memory, you could give your PC a\ngood performance boost. The latest technology is DDR4. You should keep in mind\nthat your processor as well as your motherboard is capable of providing the\nsupport for the Memory you are choosing. The RAMs also have a speed that they\nare operating on. The Processor as well as the motherboard will also have\ncertain speeds that they will support and there will be maximum limits which\nthey could handle. If you are choosing a slower RAM, the RAM will be a\nbottleneck and if you choose a faster RAM, your processor or some other\ncomponents will be the bottleneck. As I said, try and reduce those\nbottlenecks.",[314,6287,6233],{"id":6288},"storage",[307,6290,6291],{},[710,6292],{"alt":6288,"src":6293},"\u002Fassets\u002Fimages\u002Fblog\u002F290620\u002Fstorage.jpg",[307,6295,6296],{},"Your files and data are saved long-term on your storage device. Currently the\ntwo available choices – Hard Disk Drive (HDD) and Solid State Drive (SSD).\nRight now, the HDD will offer you more storage space for the same amount of\nmoney than an SSD. But SSDs are about 6 times faster and 90 times energy\nefficient compared to HDD. The difference in speed comes from how the two\nstorage devices read and write data. HDDs use small mechanical moving parts\nand spinning platters to do this and SSDs use NAND flash technology. The\nresult will be better speed, efficiency and durability. The spinning platters\nare much more susceptible to physical damage than NAND. You have to make sure\nthat your motherboard does have ports for SSDs. Almost all the motherboards do\nsupport HDDs.",[314,6298,6236],{"id":6299},"graphics-card",[307,6301,6302],{},[710,6303],{"alt":6304,"src":6305},"gpu","\u002Fassets\u002Fimages\u002Fblog\u002F290620\u002Fgpu.jpg",[307,6307,6308],{},"There are various types and classes of GPUs out there now. The big players\nhere are AMD and NVIDIA. When choosing your GPU, you have to understand what\nkind of performance are you looking for. The GPUs that offer high gaming\nperformance are not the ones that provide smooth operation on rendering\nsoftwares. For instance, in NVIDIA, the GeForce Lineup provides high\nperformance on gaming and game engines while the Quadro Lineup helps with high\nrendering softwares. The Real-time raytracing supported GPU lineup from NVIDIA\nhas given them an edge over AMD for now. But if not considering raytracing\nsupport for now, one could say the AMD GPUs are on par with NVIDIA. While\nbuying the GPU, you have to make sure that the GPU you select I compatible\nwith the motherboard and will not offer much of a bottleneck to your processor\nor the memory. The connection ports should also be kept in mind because, if\nthe port version on the motherboard is older than that of the GPU, it will\nresult in slower speeds than expected.",[314,6310,6239],{"id":6311},"power-supply-psu",[307,6313,6314],{},[710,6315],{"alt":6316,"src":6317},"psu","\u002Fassets\u002Fimages\u002Fblog\u002F290620\u002Fpsu.jpg",[307,6319,6320],{},"Undoubtedly, this is one of the most overlooked part while building a PC. You\nhave to keep in mind the power requirement of every other component in your\nbuild and then while choosing the PSU, it should cover all those needs. Always\ngo for PSUs with an 80+ certification. There are 80+ white, bronze, silver,\ngold, platinum and titanium certifications. It just refers to the efficiency\nof the PSU in delivering the power. 80+ means, it will do it with at least 80%\nefficiency. If you did not choose the PSU well, it might even cost you the\nwhole build.",[314,6322,6242],{"id":6323},"case",[307,6325,6326],{},[710,6327],{"alt":6323,"src":6328},"\u002Fassets\u002Fimages\u002Fblog\u002F290620\u002Fcase.jpg",[307,6330,6331],{},"Nowadays there are a wide variety of choices for the cases. But you have to\nconsider the size of your components before deciding on a model, especially\nyour Motherboard. The cases come from mini-ATX to ATX sizes. The ATX cases\nwill usually support smaller motherboards but not vice-versa. Also, you have\nto make sure you have enough space to install extra fans in order t provide\nbetter cooling to your build.",[314,6333,6245],{"id":6334},"fans-and-coolers",[307,6336,6337],{},[710,6338],{"alt":6339,"src":6340},"fans","\u002Fassets\u002Fimages\u002Fblog\u002F290620\u002Ffans.jpg",[307,6342,6343],{},"When you are building a high-performance PC, the components are going to\ngenerate a good amount of heat. Most of the components cannot work beyond a\nlevel of temperature. The CPU should have a dedicated cooler – no questions\nasked. You can have air\u002Fwater cooling according to your need and convenience.\nMost of the new AMD processors, comes with a stock cooler, but you could opt\nfor another cooler as per your need. In case of Intel, you have to buy a\nseparate cooler. Also, the Case accumulate more and more heat, if there was\nnot enough circulation. So, you have to make sure of the same in order to keep\nyour components in an optimum temperature, which will not only result in\nhigher performance, but also the longevity of them.",[314,6345,6248],{"id":6346},"monitors",[307,6348,6349],{},[710,6350],{"alt":6351,"src":6352},"monitor","\u002Fassets\u002Fimages\u002Fblog\u002F290620\u002Fmonitor.jpg",[307,6354,6355],{},"This should be a no-brainer. You must have a monitor. But now there are lot of\nchoices out there. If you are a creator, it is better to go with a monitor\nthat offer high resolution and more colors. But if you are building a gaming\nPC, a 1080p or 1440p resolution screen with high refresh rate and response\ntime is the one you should go with. There are screens that offer higher\nresolution and high refresh rate together. But they are much more costly and\nyou also need costlier components to push that much data into the monitor.",[314,6357,6251],{"id":6358},"keyboard-mouse",[307,6360,6361],{},[710,6362],{"alt":6363,"src":6364},"keymouse","\u002Fassets\u002Fimages\u002Fblog\u002F290620\u002Fkeymouse.jpg",[307,6366,6367],{},"There are lot of options for keyboard and mouse now. These components are\nunavoidable for the inputs. With the choices available, I think one should\nexplore on this one and choose for themselves. If it were me, I would go with\na branded model which serves all the necessary needs, nothing fancy.",[350,6369,6371],{"id":6370},"knowing-and-choosing-the-individual-components-for-your-pc-will-make-you-understand-more-about-how-it-all-works-and-will-help-you-get-the-most-out-your-pc","Knowing and choosing the individual components for your PC will make you understand more about how it all works and will help you get the most out your PC.",[307,6373,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":6375},[6376,6377,6378,6379,6380,6381,6382,6383,6384,6385],{"id":6254,"depth":359,"text":6224},{"id":6265,"depth":359,"text":6227},{"id":6276,"depth":359,"text":6230},{"id":6288,"depth":359,"text":6233},{"id":6299,"depth":359,"text":6236},{"id":6311,"depth":359,"text":6239},{"id":6323,"depth":359,"text":6242},{"id":6334,"depth":359,"text":6245},{"id":6346,"depth":359,"text":6248},{"id":6358,"depth":359,"text":6251,"children":6386},[6387],{"id":6370,"depth":368,"text":6371},"2020-06-29","An article to help you choose the perfect components for your next PC build.","\u002Fassets\u002Fimages\u002Fblog\u002F290620\u002FpcChoiceTitle.jpg",{},9,{"title":110,"description":6389},"mYv5oo9A6mAOKBHg6FXu1WFd9pyX_FJ4YafRITakvZ0",{"id":6396,"title":118,"author":6397,"body":6399,"date":6472,"description":6473,"extension":371,"image":6474,"meta":6475,"minRead":969,"navigation":293,"path":119,"seo":6476,"stem":120,"__hash__":6477},"blog\u002Fblog\u002FIndustry 4 & Mixed Reality.md",{"name":300,"avatar":6398},{"src":302,"alt":300},{"type":304,"value":6400,"toc":6463},[6401,6404,6407,6410,6414,6420,6423,6427,6430,6434,6440,6443,6447,6450,6454,6457,6461],[307,6402,6403],{},"The Industry 4.0 or the Fourth Industrial Revolution is the current\ntransformation of traditional manufacturing and industrial practices with the\nlatest smart technologies. This primarily focuses on the use of large-scale\nmachine to machine communication (M2M) and Internet of Things (IoT)\ndeployments to provide increased automation, improved communication and\nself-monitoring, as well as smart machines that can analyse and diagnose\nissues without the need for human intervention.",[307,6405,6406],{},"Like Augmented Reality, Mixed Reality is an overlay of digital content in to\nthe real world. But, the fact that content appears in form of hologram is what\nmakes it even more exciting to the eye and the Industry 4.0, along with a\nplethora of other features.",[307,6408,6409],{},"But what can Mixed Reality contribute to the Industry 4.0?",[314,6411,6413],{"id":6412},"_1-speed-up-the-quality-control-process","1. Speed up the Quality Control process",[307,6415,6416],{},[710,6417],{"alt":6418,"src":6419},"speedUpCP","\u002Fassets\u002Fimages\u002Fblog\u002F220620\u002FspeedUpCP.jpg",[307,6421,6422],{},"Leveraging the use of overlaid information is also gaining supporters in\nQuality Control, using both HMDs and handheld IoT devices. Aerospace is one\nsuch sector where Quality Assurance is of huge importance, but the time and\ncosts of processes can be huge. Adding text, icons, images, 3D models, and\nanimations to real-world production lines means faster assembly – with fewer\nmistakes. For example, since adopting mixed reality in their production\nenvironments, Airbus has reported a reduction in time required to inspect A380\nfuselage brackets, from three weeks to just three days.",[314,6424,6426],{"id":6425},"_2-minimize-skilled-labour-shortage","2. Minimize skilled labour shortage",[307,6428,6429],{},"It is estimated that there will be almost 3.5 million manufacturing jobs\navailable over the next decade as ‘Baby Boomers’ exit the workforce. Already\ndealing with pressure to fill current open positions, how can manufacturers\nuse mixed reality to help with future resourcing? The speed at which new staff\ncan be trained is one key factor. In addition, any valuable skills lost by\nretiring workers can be retained in a mixed reality-led environment by using\nremote support via HMDs. And when it comes to attracting the right talent, by\nintegrating new technologies familiar to a younger demographic, manufacturers\ncan experience a smoother on-boarding journey.",[314,6431,6433],{"id":6432},"_3-improve-employee-training","3. Improve employee training",[307,6435,6436],{},[710,6437],{"alt":6438,"src":6439},"improveTraining","\u002Fassets\u002Fimages\u002Fblog\u002F220620\u002FimproveTraining.jpg",[307,6441,6442],{},"Whether class-based or following study guides in the form of books and online\ncourses, training sessions can now be enhanced or even replaced using mixed\nreality. Users can be guided step-by-step through modules, with training\ninformation overlaid onto real-world parts and assemblies in front of them;\nreducing the time needed to improve worker’s skill sets. There may also be\nless need to remove staff from the production line, since training can take\nplace on-the-job. BAE Systems have introduced this concept on one of their\nproduction lines, for electric propulsion systems. Not only have they\nwitnessed a more efficient training output, they have cut time taken to create\nthe training modules as well as cost; which is now a tenth of what it was.",[314,6444,6446],{"id":6445},"_4-stay-competitive","4. Stay competitive",[307,6448,6449],{},"Combining the benefits of mixed reality with the analytics-driven power of IoT\ncan leverage significant improvements. The potential opportunities are huge;\nand with the industry predicted to grow to US$108bn by 2021, new innovations\nwill be emerging rapidly. Together, these technologies are set to contribute\ngreatly towards the Industry 4.0 movement; capturing and contextualizing data,\nand automating manufacturing processes to optimize efficiency and reduce\nwaste.",[314,6451,6453],{"id":6452},"_5-reduce-call-out-times-for-maintenance","5. Reduce call out times for maintenance",[307,6455,6456],{},"Organizations that used to rely on engineers, working with heavy and often\noutdated manuals, are now using mixed reality to dramatically cut call out\ntimes. One such company is elevator manufacturer ThyssenKrupp. Engineers\nequipped with HMDs not only get the most up-to-date information, they also\nview this hands-free; greatly reducing the time needed to knowledge-check. And\nthat’s not all – when engineers place a call to a support line, the remote\nexpert has a ‘you see what I see’ view, allowing them to provide guidance as\nif they were physically present on the customer site.",[350,6458,6460],{"id":6459},"by-adopting-the-right-technology-such-as-mixed-reality-at-the-right-time-businesses-will-thrive-as-the-industry-40-gathers-pace","By adopting the right technology such as Mixed Reality, at the right time, businesses will thrive as the Industry 4.0 gathers pace.",[307,6462,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":6464},[6465,6466,6467,6468,6469],{"id":6412,"depth":359,"text":6413},{"id":6425,"depth":359,"text":6426},{"id":6432,"depth":359,"text":6433},{"id":6445,"depth":359,"text":6446},{"id":6452,"depth":359,"text":6453,"children":6470},[6471],{"id":6459,"depth":368,"text":6460},"2020-06-22","How could Mixed Reality revolutionize Industry 4.0.","\u002Fassets\u002Fimages\u002Fblog\u002F220620\u002Fmri4Title.jpg",{},{"title":118,"description":6473},"MMb8BOnFtLPhep34CDR3akWR7T0k1r_VwcsyMGiUxGc",{"id":6479,"title":30,"author":6480,"body":6482,"date":6575,"description":6576,"extension":371,"image":6577,"meta":6578,"minRead":969,"navigation":293,"path":31,"seo":6579,"stem":32,"__hash__":6580},"blog\u002Fblog\u002F6 Levels of Autonomous Vehicles.md",{"name":300,"avatar":6481},{"src":302,"alt":300},{"type":304,"value":6483,"toc":6565},[6484,6487,6490,6494,6497,6501,6504,6508,6511,6515,6521,6524,6528,6534,6537,6541,6547,6550,6553,6559,6563],[307,6485,6486],{},"The ideas and experimentations for self-driving cars has been going on since\nthe 1920s. It took around 3 decades still to see something promising and even\nthough slow, the work has been proceeding from there. In the 1980s, Carnegie\nMellon University’s Navlab and ALV projects (1984) and Mercedes-Benz and\nBundeswehr University Munich’s Eureka Prometheus Project (1987) were a\nsignificant leap forward.",[307,6488,6489],{},"With the media coverage, it may feel like autonomous vehicles are already\namong us, they are not quite as smart as portrayed in pop culture yet. Let’s\nexamine the levels of autonomous vehicles.",[314,6491,6493],{"id":6492},"_1-level-0-no-automation","1. Level 0 – No Automation",[307,6495,6496],{},"This is your ordinary car, sometimes equipped with cruise control and that’s\nit. Most of the vehicles on the road still fall under this category.",[314,6498,6500],{"id":6499},"_2-level-1-driver-assistance","2. Level 1 – Driver Assistance",[307,6502,6503],{},"This is the level in which you will find the adaptive cruise control and lane\nkeep assist to help the driver. Adaptive cruise control will keep a safe\ndistance between the vehicle you are in and the vehicle ahead with the help of\nRADARs and\u002For cameras. It will apply brakes when traffic slows down and resume\nthe speed when the traffic clears. Lane keep assist will tap you back into the\nlane if you deviate from it. Mind you, these systems are in place to assist\nthe driver. It still requires the driver to be in control. 2018 Toyota Corolla\nand 2018 Nissan Sentra are examples of Level 1 cars.",[314,6505,6507],{"id":6506},"_3-level-2-partial-automation","3. Level 2 – Partial Automation",[307,6509,6510],{},"This is the level where it gets interesting. The cars in this level can assist\nin controlling speed as well as steering. But the driver must have hands on\nthe wheel and be ready to take control at any given moment. It will help you\nkeep centred on a lane. Also, it will help with stop-and-go traffic by\nmaintaining distance between you and the vehicle in front of you. Tesla\nAutopilot, Volvo Pilot Assist, Audi Traffic Jam assist are some examples.",[314,6512,6514],{"id":6513},"_4-level-3-conditional-automation","4. Level 3 – Conditional Automation",[307,6516,6517],{},[710,6518],{"alt":6519,"src":6520},"level3","\u002Fassets\u002Fimages\u002Fblog\u002F150620\u002Flevel3.jpg",[307,6522,6523],{},"This is the level that is going to be available to the general public.\nCurrently only Tesla and Mercedes-Benz holds the approval for the same. These\nvehicles are supposed to be driving themselves, but only on ideal conditions\nand with certain limitations, such as limited-access divided highways at\ncertain speed. Drivers can take their hands off the wheel. Still a driver is\nrequired behind the wheel, should the prior mentioned ideal conditions are not\npresent.",[314,6525,6527],{"id":6526},"_5-level-4-high-automation","5. Level 4 – High Automation",[307,6529,6530],{},[710,6531],{"alt":6532,"src":6533},"level4","\u002Fassets\u002Fimages\u002Fblog\u002F150620\u002Flevel4.jpg",[307,6535,6536],{},"Level 4 autonomous vehicles can drive themselves without human interactions.\nYes, the passenger still need to enter the destination. The level 4 will still\nbe restricted to known use cases. We might not be too far from seeing\ndriverless cars on the road. Waymo has developed level 4 vehicles capable of\ndriving themselves, but are now restricted by certain regulations. They have\npermissions to give ride to passengers in the Silicon Valley and Arizona. They\nare also in the process of testing vehicles capable of driving in most\nenvironments and road conditions.",[314,6538,6540],{"id":6539},"_6-level-5-full-automation","6. Level 5 – Full Automation",[307,6542,6543],{},[710,6544],{"alt":6545,"src":6546},"level5","\u002Fassets\u002Fimages\u002Fblog\u002F150620\u002Flevel5.jpg",[307,6548,6549],{},"In this level, we arrive at true driverless cars. Level 5 vehicles should be\nable to monitor and manoeuvre through all road conditions and require no human\ninterventions whatsoever. This will eliminate the need of a steering wheel as\nwell as pedals. Combine it with a capable voice assistant and you will have\nyour very own K.I.T.T from Knight Rider (1982).",[307,6551,6552],{},"Below are the status of some OEMs on the autonomous field:",[307,6554,6555],{},[710,6556],{"alt":6557,"src":6558},"status","\u002Fassets\u002Fimages\u002Fblog\u002F150620\u002Fstatus.jpg",[350,6560,6562],{"id":6561},"due-to-various-reason-and-the-technology-level-5-vehicles-are-probably-still-many-years-away","Due to various reason and the technology Level 5 vehicles are probably still many years away.",[307,6564,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":6566},[6567,6568,6569,6570,6571,6572],{"id":6492,"depth":359,"text":6493},{"id":6499,"depth":359,"text":6500},{"id":6506,"depth":359,"text":6507},{"id":6513,"depth":359,"text":6514},{"id":6526,"depth":359,"text":6527},{"id":6539,"depth":359,"text":6540,"children":6573},[6574],{"id":6561,"depth":368,"text":6562},"2020-06-15","An article describing the levels involved in autonomous driving.","\u002Fassets\u002Fimages\u002Fblog\u002F150620\u002FadLevelTitle.jpg",{},{"title":30,"description":6576},"GZXvnjStvE_AokVONfraPYZ6ntXmKwTpGeLrigWa48w",{"id":6582,"title":42,"author":6583,"body":6585,"date":6764,"description":6765,"extension":371,"image":6766,"meta":6767,"minRead":969,"navigation":293,"path":43,"seo":6768,"stem":44,"__hash__":6769},"blog\u002Fblog\u002FBest 5 Hybrid Mobile App Development Frameworks.md",{"name":300,"avatar":6584},{"src":302,"alt":300},{"type":304,"value":6586,"toc":6754},[6587,6590,6593,6597,6603,6606,6611,6625,6629,6635,6638,6642,6656,6660,6666,6669,6673,6687,6691,6697,6700,6704,6718,6722,6728,6731,6734,6748,6752],[307,6588,6589],{},"Nowadays, people require valuable business information at their fingertips.\nThe number of companies that enter into the mobile applications rather than\njust to go with a desktop website is increasing day by day. This will play a\nmajor role in helping them solve important issues on the go as well as control\ntheir online exposure. Recent emergence of large number of hybrid application\ndevelopment frameworks are results of these events. Choosing the right\ntechnology stack can help a company to achieve its goals and ultimately be a\nsuccess.",[307,6591,6592],{},"With the number of tools out there, it might be sometime difficult on settling\non a particular stack. So, here are the best tools according to my humble\nopinion.",[314,6594,6596],{"id":6595},"_1-flutter","1. Flutter",[307,6598,6599],{},[710,6600],{"alt":6601,"src":6602},"flutter","\u002Fassets\u002Fimages\u002Fblog\u002F080620\u002Fflutter.jpg",[307,6604,6605],{},"Flutter was launched by Google in 2017 and is among the top contenders in the\nindustry. It is used to produce native-looking products for various operating\nsystems.",[307,6607,6608,5548],{},[5545,6609,6610],{},"Features",[769,6612,6613,6616,6619,6622],{},[772,6614,6615],{},"Hot Reload.",[772,6617,6618],{},"Minimal Code.",[772,6620,6621],{},"Fast Development.",[772,6623,6624],{},"Access to Native Feature.",[314,6626,6628],{"id":6627},"_2-react-native","2. React Native",[307,6630,6631],{},[710,6632],{"alt":6633,"src":6634},"reactNative","\u002Fassets\u002Fimages\u002Fblog\u002F080620\u002FreactNative.jpg",[307,6636,6637],{},"React Native brings with it, the features of JavaScript and React. It is also\npreferred for native application development and is able to give flutter a run\nfor their money.",[307,6639,6640,5548],{},[5545,6641,6610],{},[769,6643,6644,6647,6650,6653],{},[772,6645,6646],{},"Modular and intuitive architecture similar to React.",[772,6648,6649],{},"Live Reload.",[772,6651,6652],{},"Strong performance for mobile environments.",[772,6654,6655],{},"Community-driven.",[314,6657,6659],{"id":6658},"_3-ionic","3. Ionic",[307,6661,6662],{},[710,6663],{"alt":6664,"src":6665},"ionic","\u002Fassets\u002Fimages\u002Fblog\u002F080620\u002Fionic.jpg",[307,6667,6668],{},"This platform is based on CSS and reaches its maximum potential when used\njointly with AngularJS.",[307,6670,6671,5548],{},[5545,6672,6610],{},[769,6674,6675,6678,6681,6684],{},[772,6676,6677],{},"JavaScript components.",[772,6679,6680],{},"Influence from Angular.",[772,6682,6683],{},"Based on web standards.",[772,6685,6686],{},"Cordova based plugins.",[314,6688,6690],{"id":6689},"_4-jquery-mobile","4. jQuery Mobile",[307,6692,6693],{},[710,6694],{"alt":6695,"src":6696},"jQueryMobile","\u002Fassets\u002Fimages\u002Fblog\u002F080620\u002FjQueryMobile.jpg",[307,6698,6699],{},"This one does not try to adopt a native look. It keeps its individuality while\nworking flawlessly in various platforms. It is a great choice if you want to\ncreate something exceptional instead of sticking to template designs.",[307,6701,6702,5548],{},[5545,6703,6610],{},[769,6705,6706,6709,6712,6715],{},[772,6707,6708],{},"Built on jQuery core.",[772,6710,6711],{},"HTML5 Markup-driven configuration.",[772,6713,6714],{},"Unified UI widgets.",[772,6716,6717],{},"Powerful Ajax-powered navigation system.",[314,6719,6721],{"id":6720},"_5-xamarin","5. Xamarin",[307,6723,6724],{},[710,6725],{"alt":6726,"src":6727},"xamarin","\u002Fassets\u002Fimages\u002Fblog\u002F080620\u002Fxamarin.jpg",[307,6729,6730],{},"Xamarin does have a good track record as well as a large community of\nsatisfied followers. This framework allows you to create universal apps and\nrun them on different devices without sacrificing native design",[314,6732,6610],{"id":6733},"features",[769,6735,6736,6739,6742,6745],{},[772,6737,6738],{},"Simplified testing.",[772,6740,6741],{},"Support from Microsoft.",[772,6743,6744],{},"Interesting platform-specific options to supplement the general codebase.",[772,6746,6747],{},"Performance is similar to native products.",[350,6749,6751],{"id":6750},"to-make-the-right-choice-you-should-analyse-your-needs-draft-an-image-of-your-end-product-and-select-the-most-suitable-technology-stack","To make the right choice, you should analyse your needs, draft an image of your end product, and select the most suitable technology stack.",[307,6753,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":6755},[6756,6757,6758,6759,6760,6761],{"id":6595,"depth":359,"text":6596},{"id":6627,"depth":359,"text":6628},{"id":6658,"depth":359,"text":6659},{"id":6689,"depth":359,"text":6690},{"id":6720,"depth":359,"text":6721},{"id":6733,"depth":359,"text":6610,"children":6762},[6763],{"id":6750,"depth":368,"text":6751},"2020-06-08","An article regarding the prominent hybrid mobile application development tools.","\u002Fassets\u002Fimages\u002Fblog\u002F080620\u002FhybridTitle.jpg",{},{"title":42,"description":6765},"Ce9oEc_0iYMuf8_UUnQGsnIb5FmnzckvRpQQO5_3Eog",{"id":6771,"title":242,"author":6772,"body":6774,"date":6859,"description":6860,"extension":371,"image":6861,"meta":6862,"minRead":969,"navigation":293,"path":243,"seo":6863,"stem":244,"__hash__":6864},"blog\u002Fblog\u002FTop Trends in Augmented Reality.md",{"name":300,"avatar":6773},{"src":302,"alt":300},{"type":304,"value":6775,"toc":6850},[6776,6779,6783,6789,6792,6796,6802,6805,6809,6815,6818,6822,6828,6831,6835,6841,6844,6848],[307,6777,6778],{},"In 2019, Augmented Reality(AR) has grown in a record pace. With Microsoft,\nGoogle, Apple, Facebook and Amazon with serous commitments , commercial\nsupport is definitely strong for AR. The installed user base for AR, this time\nlast year was over 1 billion which is only going to go north.",[314,6780,6782],{"id":6781},"_1-automotive-industry","1. Automotive Industry",[307,6784,6785],{},[710,6786],{"alt":6787,"src":6788},"arAutomotive","\u002Fassets\u002Fimages\u002Fblog\u002F010620\u002FarAutomotive.jpg",[307,6790,6791],{},"Heads-up displays have been a fixture in military aerospace for decades, but\nAR is only now beginning to bring that potential to the automotive world. This\nwill help the driver see the directions without having to look down at a GPS\npanel on the dashboard. Motorists can be alerted to hazards, providing\ndirections and given warnings about traffic. On a more whimsical note, systems\ncan also provide drivers and passengers with information about nearby\nlandmarks and destinations. Of course, this is just scratching the surface of\nthe possibilities with which AR can revolutionize the Automotive Industry.\nDesigning, Planning, Testing, Quality Assurance, etc. are some of the areas\nthat could easily adopt the benefits and it surely doesn't stop there.",[314,6793,6795],{"id":6794},"_2-mobile-ar","2. Mobile AR",[307,6797,6798],{},[710,6799],{"alt":6800,"src":6801},"arMobile","\u002Fassets\u002Fimages\u002Fblog\u002F010620\u002FarMobile.jpg",[307,6803,6804],{},"Since the introduction of Google’s ARCore and Apple’s ARKit Software\nDevelopment Kits in 2017 has standardized the development tools. This played a\nmajor role in doubling the amount of AR-enabled devices and tripling the\nnumber of active users. With the unveiling of ARKit 2.0 at WWDC 2018 and ARKit\n3.0 at WWDC 2019, Apple seems to have an upper hand in the market. However,\nARCore is also growing rapidly bringing in new features more often. The\ncompetition for dominance can only benefit the developers and undoubtedly the\nend users.",[314,6806,6808],{"id":6807},"_3-webar","3. WebAR",[307,6810,6811],{},[710,6812],{"alt":6813,"src":6814},"arWeb","\u002Fassets\u002Fimages\u002Fblog\u002F010620\u002FarWeb.jpg",[307,6816,6817],{},"Instead of needing to use specialized apps, users can simply log on to\nAR-enabled websites to access the same level of functionality. Google and\nMozilla are engaged with WebAR in order to bring AR solutions to Chrome and\nFirefox respectively, though the prior is far ahead. Apple, Samsung and\nMicrosoft web browser offerings are also rapidly adopting the WebAR standards.",[314,6819,6821],{"id":6820},"_4-shopping","4. Shopping",[307,6823,6824],{},[710,6825],{"alt":6826,"src":6827},"arShopping","\u002Fassets\u002Fimages\u002Fblog\u002F010620\u002FarShopping.jpg",[307,6829,6830],{},"At least 100 million users were expected to utilize AR-enabled shopping by\n2020, according to a report from Gartner. The increase in the number of\nAR-enabled mobile devices makes the job much easier for the industry. Everyone\ncan now comfortably use it as part of their daily experience. American\nApparel, Uniqlo and Lacoste have already deployed showrooms and fitting rooms\nthat provide try-before-you-buy options while IKEA has provided the customers\nwith the ability to browse and place furniture in their houses to see how it\nwould look. This might get adopted by many more retailers in the future not\njust because it is convenient for the parties involved, but also because of\nthe new social distancing norms. Virtual assistants will also significantly\nchange the shopping experience.",[314,6832,6834],{"id":6833},"_5-navigation","5. Navigation",[307,6836,6837],{},[710,6838],{"alt":6839,"src":6840},"arNavigation","\u002Fassets\u002Fimages\u002Fblog\u002F010620\u002FarNavigation.jpg",[307,6842,6843],{},"This is the obvious one. AR can not only be used for heads up displays in\nautomobiles, but also can make a significant contribution to indoor\nnavigation. Google maps already provides the consumers a good experience in\noutdoor navigation. But now, AR can help them find their way indoors. ARCore\nand ARKit based applications can already provide directions in airports,\nmalls, hospitals and office campuses. Last August, Google Maps launched a beta\nversion of its augmented reality walking directions feature that will\navailable to all AR-compatible Android and iOS mobile devices. With the help\nof the inbuilt camera, users were able to see information regarding their\nsurroundings in real-time. The AR powered navigation is expected to conquer\nnew territories.",[350,6845,6847],{"id":6846},"according-to-experts-the-arvrmrxr-industry-will-be-dominating-in-the-future-and-the-growth-will-continue-to-be-steady","According to experts, the AR\u002FVR\u002FMR\u002FXR industry will be dominating in the future and the growth will continue to be steady.",[307,6849,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":6851},[6852,6853,6854,6855,6856],{"id":6781,"depth":359,"text":6782},{"id":6794,"depth":359,"text":6795},{"id":6807,"depth":359,"text":6808},{"id":6820,"depth":359,"text":6821},{"id":6833,"depth":359,"text":6834,"children":6857},[6858],{"id":6846,"depth":368,"text":6847},"2020-06-01","An overview of the trends associated with Augmented Reality.","\u002Fassets\u002Fimages\u002Fblog\u002F010620\u002FarTitle.jpg",{},{"title":242,"description":6860},"Gnu7gA87UgXbv4uFlpfzTmXUnsycv81xEMG68OFQ7o8",{"id":6866,"title":274,"author":6867,"body":6869,"date":6966,"description":6967,"extension":371,"image":6968,"meta":6969,"minRead":969,"navigation":293,"path":275,"seo":6970,"stem":276,"__hash__":6971},"blog\u002Fblog\u002FWhat makes Mixed Reality the next big thing.md",{"name":300,"avatar":6868},{"src":302,"alt":300},{"type":304,"value":6870,"toc":6957},[6871,6874,6877,6883,6886,6890,6896,6899,6903,6909,6912,6916,6922,6925,6929,6935,6938,6942,6948,6951,6955],[307,6872,6873],{},"Still on its early phases, Mixed Reality have been around for a while. It\nbecoming more mainstream and the benefits could be limitless for most of the\nindustries.",[307,6875,6876],{},"A ball can bounce off furniture and walls. It could disappear behind a pillar.\nThe user could interact and manipulate the objects. If you achieve all of the\nabove(and much more), you are in the Mixed Reality. One could say that Mixed\nReality or MR is Augmented Reality(AR) on steroids.",[307,6878,6879],{},[710,6880],{"alt":6881,"src":6882},"mr_AMMXS","\u002Fassets\u002Fimages\u002Fblog\u002F250520\u002Fmr_AMMXS.jpg",[307,6884,6885],{},"So, where can we make use of the fairly new mixed reality.",[314,6887,6889],{"id":6888},"_1-automotive","1. Automotive",[307,6891,6892],{},[710,6893],{"alt":6894,"src":6895},"mr_automotive","\u002Fassets\u002Fimages\u002Fblog\u002F250520\u002Fmr_automotive.jpg",[307,6897,6898],{},"The leaders in automotive industry have been embracing the digital for a while\nnow and mixed reality is no exception. As it happens, it holds a predominant\nposition in the transformation to Industry 4.0. Design, engineering,\nmanufacturing, quality assurance, testing, validation, marketing, after-sales,\netc. are some of its applications in the industry. It could also be used in\ntraining as well as implementing standard operating procedure.",[314,6900,6902],{"id":6901},"_2-architecture","2. Architecture",[307,6904,6905],{},[710,6906],{"alt":6907,"src":6908},"mr_architecture","\u002Fassets\u002Fimages\u002Fblog\u002F250520\u002Fmr_architecture.jpg",[307,6910,6911],{},"The architecture industry is no stranger to high fidelity 3D application. But\nthe applications have been limited to design and planning for a long time. Not\nanymore. The mixed reality not only enhances the designing and planning with\nan option for simultaneous collaboration from multiple users, but now it can\nalso be used in construction sites. It can and had helped the construction\nworkers to implement the plans down to the detail with almost nothing lost in\ntranslation.",[314,6913,6915],{"id":6914},"_3-medicine","3. Medicine",[307,6917,6918],{},[710,6919],{"alt":6920,"src":6921},"mr_medicine","\u002Fassets\u002Fimages\u002Fblog\u002F250520\u002Fmr_medicine.jpg",[307,6923,6924],{},"This should be a given and with the current circumstances, mixed reality could\ndo much more for this field. From training the students about the anatomy, to\nthe surgeons having a trial run before a major surgery and even showing the\nvitals of patients during procedures, the applications can be virtually\nendless.",[314,6926,6928],{"id":6927},"_4-education","4. Education",[307,6930,6931],{},[710,6932],{"alt":6933,"src":6934},"mr_education","\u002Fassets\u002Fimages\u002Fblog\u002F250520\u002Fmr_education.jpg",[307,6936,6937],{},"Mixed reality can be complementing the standard curriculum. Graphics, video\nand audio can be included into a student’s environment. The ability to see and\ninteract with something will make the learning experience engaging and\nmemorable. This could help students experience historical events, exploring\nand learning much more details of the events and the area which they took\nplace.",[314,6939,6941],{"id":6940},"_5-gaming","5. Gaming",[307,6943,6944],{},[710,6945],{"alt":6946,"src":6947},"mr_gaming","\u002Fassets\u002Fimages\u002Fblog\u002F250520\u002Fmr_gaming.jpg",[307,6949,6950],{},"The inevitable! The gaming industry is usually the first to adopt every\nupcoming technologies such as Virtual Reality (VR), Augmented Reality (AR),\nMixed Reality (MR) as well as Extended Reality (XR). It shouldn’t be\nsurprising as most of the game engines support these technologies. Even the\napplications used for other fields are usually made with the help of these\ngame engines.",[350,6952,6954],{"id":6953},"combining-the-benefits-of-mixed-reality-with-the-analytics-driven-power-of-iot-can-leverage-significant-improvements","Combining the benefits of mixed reality with the analytics-driven power of IoT can leverage significant improvements.",[307,6956,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":6958},[6959,6960,6961,6962,6963],{"id":6888,"depth":359,"text":6889},{"id":6901,"depth":359,"text":6902},{"id":6914,"depth":359,"text":6915},{"id":6927,"depth":359,"text":6928},{"id":6940,"depth":359,"text":6941,"children":6964},[6965],{"id":6953,"depth":368,"text":6954},"2020-05-25","Which areas can benefit from the use of Mixed Reality.","\u002Fassets\u002Fimages\u002Fblog\u002F250520\u002FmrTitle.jpg",{},{"title":274,"description":6967},"SJ38hrTBOkFjRbbMrXl95eVP2qRGRQOcUWvJp8bnxqg",{"id":6973,"title":246,"author":6974,"body":6976,"date":7055,"description":7056,"extension":371,"image":7057,"meta":7058,"minRead":969,"navigation":293,"path":247,"seo":7059,"stem":248,"__hash__":7060},"blog\u002Fblog\u002FTop features of Unreal Engine.md",{"name":300,"avatar":6975},{"src":302,"alt":300},{"type":304,"value":6977,"toc":7046},[6978,6981,6984,6987,6990,6994,6997,7000,7004,7010,7013,7017,7023,7026,7030,7033,7037,7040,7044],[307,6979,6980],{},"Unreal Engine brings the word Photorealism to most minds. That is something\nhas been associated with Unreal for some time now. From ray-tracing to\nreal-time technology, destruction systems and physics, unreal has demonstrated\nits “Epic” capabilities.",[307,6982,6983],{},"The photorealism is one of the driving factors of Unreal Engine and it is the\nreason for it being used outside of gaming industry as well. Architecture,\nproduct design and filmmaking as well. It was used in the Star Wars TV series,\nThe Mandalorian and The Lion King(2019).",[307,6985,6986],{},"Unreal Engine now supports a wide variety of platforms: Windows, PlayStation\n4+, Xbox One, Mac OS X, iOS, Android, AR, VR, Linux, SteamOS and HTML5. With\nmore than 7.5 million developers using Unreal -- according to Epic CEO Tim\nSweeney at GDC 2019 -- it is one of the most popular game engines.",[307,6988,6989],{},"Well, with my brief time with Unreal Engine, I think the following are some of\nthe best it can offer.",[314,6991,6993],{"id":6992},"_1-unreal-engine-is-free","1. Unreal Engine is Free",[307,6995,6996],{},"Development as well as releasing products with Unreal Engine is free. Well\nalmost. Initially, you had to pay a 5% royalty to Epic Games, but only when\nthe product passes $3000 per quarter. But along with the announcement of\nUnreal Engine 5, the company removed all royalties on the first $1 million in\nrevenue of the product. You are to report your earnings to Unreal with a form\nthey provide.",[307,6998,6999],{},"Even still, this is amazing for small companies and studios as well as for the\nstudents who are interested in a cutting-edge game engine.",[314,7001,7003],{"id":7002},"_2-blueprints","2. Blueprints",[307,7005,7006],{},[710,7007],{"alt":7008,"src":7009},"blueprint","\u002Fassets\u002Fimages\u002Fblog\u002F180520\u002Fblueprint.jpg",[307,7011,7012],{},"Unreal Engine's visual scripting system, Blueprint, is the main reason the\nengine is a great tool for prototyping and iteration. You drag-and-drop nodes\nand add wires to connect them and add logic in Blueprint. This node-based\ninterface allows designers who don't have a technical background to explore\ntheir ideas without needing to know how to code.",[314,7014,7016],{"id":7015},"_3-broad-toolset","3. Broad Toolset",[307,7018,7019],{},[710,7020],{"alt":7021,"src":7022},"ueeditor","\u002Fassets\u002Fimages\u002Fblog\u002F180520\u002Fueeditor.jpg",[307,7024,7025],{},"Unreal Engine's ease of use is also supported by a wide range of features and\ntools, within an intuitive editor that is accessible to many disciplines. It\nprovides solutions for pretty much every macro task we will need to address.\nCinematics, scene layout, visual scripting, particle system, animation\nnetwork, light-mapping, performance and memory tracking tools for\noptimisation, etc… are some of the examples.",[314,7027,7029],{"id":7028},"_4-ability-to-handle-wide-variety-of-projects","4. Ability to handle wide variety of projects",[307,7031,7032],{},"Flexibility is one of the driving factors of Unreal Engine. It can handle a\nwide variety of projects with ease. Including the fact that it serves a wide\nvariety of industries it also can handle various genres of games –\naction-adventure, open-world, side-scrollers, racing, etc… The Epic team has\nalso made efforts for 2D games, but, to my humble opinion, not as extensively\nas its competitors.",[314,7034,7036],{"id":7035},"_5-access-to-source-code","5. Access to source code",[307,7038,7039],{},"Epic games gives you access to the entire C++ source code of the Unreal\nEngine. You can download the code from GitHub, tweak it and the best part is,\nyou don’t have to pay for it as well. The ability to access the source code of\nthe engine and modify it to specific needs did drive some companies to choose\nUnreal as their game engine. This also allows the users to fix the issues of\nthe engine, themselves.",[350,7041,7043],{"id":7042},"along-with-enhancing-the-existing-features-unreal-engine-5-does-bring-a-lot-new-to-the-table-it-does-give-its-competitors-a-lot-more-than-a-run-for-their-money","Along with enhancing the existing features, Unreal Engine 5 does bring a lot new to the table. It does give its competitors a lot more than a run for their money.",[307,7045,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":7047},[7048,7049,7050,7051,7052],{"id":6992,"depth":359,"text":6993},{"id":7002,"depth":359,"text":7003},{"id":7015,"depth":359,"text":7016},{"id":7028,"depth":359,"text":7029},{"id":7035,"depth":359,"text":7036,"children":7053},[7054],{"id":7042,"depth":368,"text":7043},"2020-05-18","Article about benefits of using Unreal Engine.","\u002Fassets\u002Fimages\u002Fblog\u002F180520\u002FunrealTitle.jpg",{},{"title":246,"description":7056},"AEXwyAcHlFm_fhOlAfD8ZRQrdH1n6_gFb9WmmCZdkrQ",{"id":7062,"title":250,"author":7063,"body":7065,"date":7149,"description":7150,"extension":371,"image":7151,"meta":7152,"minRead":969,"navigation":293,"path":251,"seo":7153,"stem":252,"__hash__":7154},"blog\u002Fblog\u002FUnity 3D - Why to go with it.md",{"name":300,"avatar":7064},{"src":302,"alt":300},{"type":304,"value":7066,"toc":7140},[7067,7070,7073,7076,7079,7082,7086,7092,7095,7099,7104,7107,7111,7114,7118,7124,7127,7131,7134,7138],[307,7068,7069],{},"Developing game applications for different platforms was quite a task, just a\ndecade before, as a mobile game development for various platforms involved a\nlot of time, effort and money. But, the launch of the Unity engine surely\nturned the tables. The powerful cross-platform engine enabled the game app\ndevelopment for more than 25 platforms and distinct devices in a user-friendly\ndevelopment environment. It provides a plethora of resources containing\nready-made assets, clear documentation, tutorials, intuitive tools and online\ncommunity at free to create amazing content.",[307,7071,7072],{},"Scripting, rendering, asset tracking and physics are some of the features of\nUnity 3D that reduce the time and cost of development. It offers flexibility\nto deploy projects on multiple platforms. The benefits have stacked up the\nUnity engine on the top of the cross-platform game development ladder.",[307,7074,7075],{},"Times sure have changed and game engines aren't just meant to develop games\nanymore. They serve the needs of various industries. Of the top of my mind the\ntop three would be Game development, Architecture and the Automotive industry.",[307,7077,7078],{},"The game engines are widely used by the industry leaders in automotive\nindustry to run simulations and test scenarios - with the current situation,\nwe all are going through, the virtual world does have it advantages.",[307,7080,7081],{},"So, here is what I think that are the reasons for someone to consider to\nchoose Unity 3D for their particular set of requirements.",[314,7083,7085],{"id":7084},"_1-cross-platform","1. Cross Platform",[307,7087,7088],{},[710,7089],{"alt":7090,"src":7091},"platforms","\u002Fassets\u002Fimages\u002Fblog\u002F110520\u002Fplatforms.jpg",[307,7093,7094],{},"One of the biggest advantages of using Unity3D is you are not confined to a\nsingle platform. The games you make can be rendered to be used on over 25\nplatforms across mobile, Console, Desktop, TV, AR, VR, MR, XR and the Web.\nImagine to code and develop for once and run it on all the top platforms out\nthere. That is the power Unity 3D provides you.",[314,7096,7098],{"id":7097},"_2-documentation","2. Documentation",[307,7100,7101],{},[710,7102],{"alt":1655,"src":7103},"\u002Fassets\u002Fimages\u002Fblog\u002F110520\u002Fdocumentation.jpg",[307,7105,7106],{},"For developers that are just starting out, documentations are easy to\nunderstand. Unity 3D does provide that and in detail. It includes explanation\nof every single topic, no matter big or small. It is undoubtedly, must have\nfeature for not just game engines, but all software tools.",[314,7108,7110],{"id":7109},"_3-debugging","3. Debugging",[307,7112,7113],{},"The Unity 3D has a Play mode, which the developers can make use of for rapid\niterative editing. When you press the \"Play\" button in the editor, you are\ninside your game. At any point of time, if you encounter a bug or feel that\nany functionality isn’t working as you expected, you can pause it and alter\nthe code as per your liking and can see the results instantly. You can even\ncruise through your game frame by frame and pinpoint the problems.",[314,7115,7117],{"id":7116},"_4-all-in-one-editor","4. All-in-one Editor",[307,7119,7120],{},[710,7121],{"alt":7122,"src":7123},"editor","\u002Fassets\u002Fimages\u002Fblog\u002F110520\u002Feditor.jpg",[307,7125,7126],{},"Loaded with features and with tremendous flexibility, it comes with a powerful\nand easy-to-use editor which is a complete package in itself. With features\nlike real-time global illumination, advanced memory profiling, easily\nmodifiable animations, play mode, timeline storytelling tools and a whole lot\nof other features for your aid, you would rarely go wrong with this one.",[314,7128,7130],{"id":7129},"_5-unity-analytics","5. Unity Analytics",[307,7132,7133],{},"Unity 3D has built-in analytics which you can find easily in the editor. It\ngives you information that can be used to tweak the workflow and offer an\nawesome experience for the users. It does provide key insights about what you\nare building which will in turn help you reduce most of your monetization\nefforts.",[350,7135,7137],{"id":7136},"among-todays-game-engines-unity-3d-is-considered-one-of-the-best-but-as-every-coin-has-two-faces-the-engine-also-has-some-downsides-and-benefits-the-improved-versions-of-unity-3d-have-continuously-upgraded-the-engine-and-fixed-the-issues","Among todays game engines, Unity 3D is considered one of the best. But, as every coin has two faces, the engine also has some downsides and benefits. The improved versions of Unity 3D have continuously upgraded the engine and fixed the issues.",[307,7139,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":7141},[7142,7143,7144,7145,7146],{"id":7084,"depth":359,"text":7085},{"id":7097,"depth":359,"text":7098},{"id":7109,"depth":359,"text":7110},{"id":7116,"depth":359,"text":7117},{"id":7129,"depth":359,"text":7130,"children":7147},[7148],{"id":7136,"depth":368,"text":7137},"2020-05-11","An article featuring the top features of Unity 3D that makes it stand out from the crowd.","\u002Fassets\u002Fimages\u002Fblog\u002F110520\u002Funitytitle.jpg",{},{"title":250,"description":7150},"7MK_cf8RwZDw3HBzVs6BYGQn4oPIDa6g4jFLjnRAB7w",{"id":7156,"title":10,"author":7157,"body":7159,"date":7271,"description":7272,"extension":371,"image":7273,"meta":7274,"minRead":860,"navigation":293,"path":11,"seo":7275,"stem":12,"__hash__":7276},"blog\u002Fblog\u002F2020 - The best Javascript Frameworks.md",{"name":300,"avatar":7158},{"src":302,"alt":300},{"type":304,"value":7160,"toc":7262},[7161,7164,7167,7170,7173,7176,7180,7186,7189,7192,7196,7202,7205,7208,7212,7218,7221,7224,7228,7234,7237,7240,7244,7250,7253,7256,7260],[307,7162,7163],{},"JavaScript is a robust scripting language which is used to build web, desktop,\nand mobile applications with rich features and functionality. One can make a\nwebsite more user-friendly and highly interactive applications with it. Things\nlike updating web pages, UI improvements including animations, interactive\nmaps, graphics, and much more can be created easily using JavaScript.",[307,7165,7166],{},"Many JavaScript frameworks and libraries have made their entrance over the\nyears. While some gets picked up some are left behind and eventually go\nextinct. They were loved by the web development companies and have leveraged\ntheir features to do their bidding.",[307,7168,7169],{},"So, it is imperative now more than ever to keep up with the best of them as it\nwould be the wise choice for any web developer. Knowing multiple frameworks\nwill help you analyse your needs and choose the best option available rather\nthan wasting your time on another.",[307,7171,7172],{},"The term JavaScript Framework means a library that provides developers with\npre-built website templates and pre-written JavaScript code for standard\nprogramming tasks. The use of which will phenomenally speed up the development\nprocess.",[307,7174,7175],{},"That being said, here are 5 frameworks that I think are the best int the\nmarket.",[314,7177,7179],{"id":7178},"_1-reactjs","1. ReactJS",[307,7181,7182],{},[710,7183],{"alt":7184,"src":7185},"react","\u002Fassets\u002Fimages\u002Fblog\u002F040520\u002Freact.png",[307,7187,7188],{},"ReactJS is an effective open-source Javascript Library used for making\ninteractive UIs. This quickly developing JS framework is utilised by website\nadmins to deal with the view layer of complex applications and sites. It is\nquicker than Angular and ideal for those in need of a basic, quick and\nversatile framework. The library is fundamentally a UI structure library,\nhowever, it is a solid match for building responsive single-page applications\nand cross-stage applications as well. It comes stacked with different\nhighlights, for example, little record size, adaptability, the similarity with\nnumerous libraries, and improved support process.",[307,7190,7191],{},"Notable users : Facebook, Netflix.",[314,7193,7195],{"id":7194},"_2-vuejs","2. VueJS",[307,7197,7198],{},[710,7199],{"alt":7200,"src":7201},"vue","\u002Fassets\u002Fimages\u002Fblog\u002F040520\u002Fvue.png",[307,7203,7204],{},"One of he most celebrated and my personal favourite VueJS was made by Evan You\nin 2014. It is open-source and lightweight and is used to create inventive\nUIs. VueJS is intended to be versatile and make the UI development process\nprogressively sorted out. Angular as well as React is actually receiving\nextreme challenge from VueJS as some describe it bring with the best of both\nand less of their shortcomings. It is highly probable to surpass both of them\nin the market. NuxtJS is a framework of VueJS that is also gaining popularity\nas it enhances the already existing tremendous features of VueJS.",[307,7206,7207],{},"Notable users : Adobe, Behance.",[314,7209,7211],{"id":7210},"_3-angular","3. Angular",[307,7213,7214],{},[710,7215],{"alt":7216,"src":7217},"angular","\u002Fassets\u002Fimages\u002Fblog\u002F040520\u002Fangular.png",[307,7219,7220],{},"Angular is one of the most proficient and well-known JavaScript frameworks\nthat give developers the best answers for consolidate JavaScript with HTML and\nCSS. It is an open-source front-end web framework that permits programming\ndesigners to assemble intuitive single-page web applications (SPA) like no\nother. This full-highlights framework is a piece of celebrated LAMP and MEAN\nstacks, and are considered by very good quality organisations in light of\npoints of interest like full arrangement of instruments, rich programming\nstyle, enormous condition, and top-notch code age.",[307,7222,7223],{},"Notable users : Google, Microsoft.",[314,7225,7227],{"id":7226},"_4-sveltejs","4. SvelteJS",[307,7229,7230],{},[710,7231],{"alt":7232,"src":7233},"svelte","\u002Fassets\u002Fimages\u002Fblog\u002F040520\u002Fsvelte.png",[307,7235,7236],{},"SvelteJS, an emerging framework, is similar to JavaScript frameworks such as\nReactJS and VueJS, but with a crucial difference. SvelteJS converts your app\ninto ideal JavaScript at build time, rather than interpreting your application\ncode at run time. This means you don't pay the performance cost of the\nframework's abstractions, and you don't incur a penalty when your app first\nloads. You can build your entire app with Svelte, or you can add it\nincrementally to an existing codebase. You can also ship components as\nstandalone packages that work anywhere, without the overhead of a dependency\non a conventional framework.",[307,7238,7239],{},"Notable users : NY Times, Razorpay.",[314,7241,7243],{"id":7242},"_5-emberjs","5. EmberJS",[307,7245,7246],{},[710,7247],{"alt":7248,"src":7249},"ember","\u002Fassets\u002Fimages\u002Fblog\u002F040520\u002Fember.png",[307,7251,7252],{},"EmberJS is an open-source front-end JavaScript framework that enables software\nengineers to fabricate versatile single-page, work area, and portable\napplications. It chips away at the rule of MVVM (Model-View-ViewModel) design\nand is stuffed with a few stunning highlights to help developers along. It\ncomes stacked with different functionalities like higher consistency,\nselective troubleshooting offices, and full-stack development choices that\nmake versatile application developers pick Ember over other such accessible\nchoices.",[307,7254,7255],{},"Notable users : LinkedIn, Heroku.",[350,7257,7259],{"id":7258},"choosing-a-javascript-framework-for-your-business-or-application-is-not-an-easy-task-there-are-more-framework-rising-into-market-and-might-replace-some-of-the-above-mentioned-or-totally-obliterate-them-all-that-being-said-it-is-always-important-for-the-developers-to-keep-up-with-them-so-as-to-make-the-decision-on-which-one-to-go-forward-with","Choosing a JavaScript framework for your business or application is not an easy task. There are more framework rising into market and might replace some of the above mentioned or totally obliterate them all. That being said, it is always important for the developers to keep up with them so as to make the decision on which one to go forward with.",[307,7261,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":7263},[7264,7265,7266,7267,7268],{"id":7178,"depth":359,"text":7179},{"id":7194,"depth":359,"text":7195},{"id":7210,"depth":359,"text":7211},{"id":7226,"depth":359,"text":7227},{"id":7242,"depth":359,"text":7243,"children":7269},[7270],{"id":7258,"depth":368,"text":7259},"2020-05-04","Some of the best available JavaScript to work with in 2020.","\u002Fassets\u002Fimages\u002Fblog\u002F040520\u002Fjsframeworks.jpg",{},{"title":10,"description":7272},"o5tf4vMeUemV1n2kK3bxwuZzE-FgYluahBL42NB9DqE",{"id":7278,"title":238,"author":7279,"body":7281,"date":7365,"description":7366,"extension":371,"image":7367,"meta":7368,"minRead":368,"navigation":293,"path":239,"seo":7369,"stem":240,"__hash__":7370},"blog\u002Fblog\u002FTop 5 Advantages of MongoDB.md",{"name":300,"avatar":7280},{"src":302,"alt":300},{"type":304,"value":7282,"toc":7356},[7283,7286,7290,7296,7299,7303,7308,7311,7315,7321,7324,7328,7334,7337,7341,7347,7350,7354],[307,7284,7285],{},"MongoDB is an open source platform written in C++ and has a very easy setup\nenvironment. It is a cross-platform, document-oriented and non-structured\ndatabase.",[314,7287,7289],{"id":7288},"_1-flexible-database","1. Flexible Database",[307,7291,7292],{},[710,7293],{"alt":7294,"src":7295},"pencil","\u002Fassets\u002Fimages\u002Fblog\u002F270420\u002Fpencil.jpg",[307,7297,7298],{},"MongoDB stores data in flexible JSON-like documents, which makes data\npersistence and combining easy. The objects in your application code is mapped\nto the document model, due to which working with data becomes easy. Needless\nto say that schema governance controls, data access, complex aggregations, and\nrich indexing functionality are not compromised in any way. Without downtime,\none can modify the schema dynamically. Due to this flexibility, a developer\nneeds to worry less about data manipulation.",[314,7300,7302],{"id":7301},"_2-high-speed","2. High Speed",[307,7304,7305],{},[710,7306],{"alt":1335,"src":7307},"\u002Fassets\u002Fimages\u002Fblog\u002F270420\u002Fspeed.jpg",[307,7309,7310],{},"A flexible data model with dynamic schema and with powerful GUI and command\nline tools, makes it fast for developers to build and evolve applications.\nAutomated provisioning enables continuous integration and delivery for\nproductive operations. Static relational schemas and complex operations of\nRDBMS are now something from the past. MongoDB is a document-oriented\ndatabase. It is easy to access documents by indexing. Hence, it provides fast\nquery response. The speed of MongoDB is 100 times faster than the relational\ndatabase.",[314,7312,7314],{"id":7313},"_3-auto-sharding","3. Auto-sharding",[307,7316,7317],{},[710,7318],{"alt":7319,"src":7320},"shard","\u002Fassets\u002Fimages\u002Fblog\u002F270420\u002Fshard.jpg",[307,7322,7323],{},"MongoDB can store a large data by distributing it to several servers connected\nto the application. If a server cannot handle such a big data then there will\nbe no failure condition. It supports Master–Slave replication. MongoDB uses\nnative application to maintain multiple copies of data. Preventing database\ndowntime is one of the replica set’s features as it has self-healing shard.",[314,7325,7327],{"id":7326},"_4-scalability","4. Scalability",[307,7329,7330],{},[710,7331],{"alt":7332,"src":7333},"scalable","\u002Fassets\u002Fimages\u002Fblog\u002F270420\u002Fscalable.png",[307,7335,7336],{},"With the ever evolving needs of businesses, their database systems also needed\nto be upgraded. A great advantage of MongoDB is that it is a horizontally\nscalable database. It makes it easy to fetch the data and provides continuous\nand automatic integration. When you have to handle a large data, you can\ndistribute it to several machines.",[314,7338,7340],{"id":7339},"_5-ad-hoc-query-support","5. Ad-hoc Query Support",[307,7342,7343],{},[710,7344],{"alt":7345,"src":7346},"adhoc","\u002Fassets\u002Fimages\u002Fblog\u002F270420\u002Fadhoc.jpg",[307,7348,7349],{},"Generally, when we design a schema of a database, we don’t know in advance\nabout the queries we will perform. Ad-hoc queries are the queries not known\nwhile structuring the database. So, MongoDB provides ad-hoc query support\nwhich makes it so special in this case. Ad-hoc queries are updated in real\ntime, leading to an improvement in performance. MongoDB has a very advanced\nfeature for ad hoc queries.",[350,7351,7353],{"id":7352},"being-a-nosql-database-mongodb-has-so-many-great-features-these-amazing-features-make-this-technology-very-unique-and-attractive-also-these-features-are-making-mongodb-widely-usable-and-popular","Being a NoSQL database, MongoDB has so many great features. These amazing features make this technology very unique and attractive. Also, these features are making MongoDB widely usable and popular.",[307,7355,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":7357},[7358,7359,7360,7361,7362],{"id":7288,"depth":359,"text":7289},{"id":7301,"depth":359,"text":7302},{"id":7313,"depth":359,"text":7314},{"id":7326,"depth":359,"text":7327},{"id":7339,"depth":359,"text":7340,"children":7363},[7364],{"id":7352,"depth":368,"text":7353},"2020-04-27","An article regarding the advantages of MongoDB.","\u002Fassets\u002Fimages\u002Fblog\u002F270420\u002Fmongodb.jpg",{},{"title":238,"description":7366},"8rv4F9cEuJhgBsx57my4-VttnZLTFFHQsNJCg0_kvzE",{"id":7372,"title":18,"author":7373,"body":7375,"date":7460,"description":7461,"extension":371,"image":7462,"meta":7463,"minRead":860,"navigation":293,"path":19,"seo":7464,"stem":20,"__hash__":7465},"blog\u002Fblog\u002F5 Mistakes Front-end Developers should Avoid.md",{"name":300,"avatar":7374},{"src":302,"alt":300},{"type":304,"value":7376,"toc":7451},[7377,7380,7383,7387,7393,7396,7400,7403,7406,7410,7416,7419,7423,7429,7432,7435,7438,7442,7445,7449],[307,7378,7379],{},"Front-end Developers or front-end Engineers are the responsible bunch for the\nvisual elements that the users see and interact with. From text, colours and\nsize of buttons, images, menus etc... front-end is all about what's visible to\nthe users. It is imperative that interfaces are pleasing to the eye of the\nusers as well as engaging for the success of an application, not to mention a\ngood design.",[307,7381,7382],{},"Front-end developers should understand the users to ensure prime functioning\nof their application. But still, there are some mistakes often made. Here we\nare focussing on 5 of them. These should be avoided to ensure a good user\nbase.",[314,7384,7386],{"id":7385},"_1-coding-with-older-html-standards","1. Coding with Older HTML Standards",[307,7388,7389],{},[710,7390],{"alt":7391,"src":7392},"html5","\u002Fassets\u002Fimages\u002Fblog\u002F200420\u002Fhtml5.png",[307,7394,7395],{},"Many front-end developers stopped the practice of coding with old HTML\nelements after HTML5 came into existence as the newest form of HTML. HTML5\nallowed making a lot of changes in standard page design. As a matter of fact,\nfront-end development has a heavy reliance on browser support. And, some\nbrowsers don’t get support from older HTML, which can become a burden in a\nlong run. With older HTML, the front-end of your site could also go devoid of\nmany modern and secure features that HTML5 is capable of bringing to your\nsite. Therefore, coding with older HTML could put your site at risk of\nsecurity attacks.",[314,7397,7399],{"id":7398},"_2-using-obsolete-javascript-libraries","2. Using Obsolete JavaScript Libraries",[307,7401,7402],{},"JavaScript libraries that will not be supported or maintained years later\ncould inflict adverse impacts on your site. If support is no longer available\nfor a JavaScript library that you used to build the front-end of your site,\nyou will find yourself in a difficult situation. You may eventually have a\ndependency that is no longer functional.",[307,7404,7405],{},"So, it’s good for you to choose JavaScript libraries with active support,\ndocumentation, and consistent updates by their developers. It’s also important\nto ensure that the popular libraries you choose will be maintained for years\nto come. It's always wise to go for libraries that are supported by big brands\nas they tend to last longer than most.",[314,7407,7409],{"id":7408},"_3-not-testing-code-with-major-browsers","3. Not Testing Code with Major Browsers",[307,7411,7412],{},[710,7413],{"alt":7414,"src":7415},"browsers","\u002Fassets\u002Fimages\u002Fblog\u002F200420\u002Fbrowsers.png",[307,7417,7418],{},"If you miss out on testing your code for all the major browsers, your site\ncould lose users who still like to use the same older browsers. JavaScript and\nclient-side scripting are intrinsic part of front-end development. Therefore,\nit’s important to test your code in all the major browsers. Front-end\ndevelopers can put into use their sites’ browsing analytics data to identify\ncommon browsers they would like to support.",[314,7420,7422],{"id":7421},"_4-not-creating-responsive-mobile-design","4. Not Creating Responsive Mobile Design",[307,7424,7425],{},[710,7426],{"alt":7427,"src":7428},"res","\u002Fassets\u002Fimages\u002Fblog\u002F200420\u002Fres.jpg",[307,7430,7431],{},"We have entered an era where people like to browse the web on phones rather\nthan desktops. The rising trend of internet surfing on mobile phones makes it\nimportant to create a front-end design that is responsive and mobile-friendly.\nModern front-end coding entails responsive design as default.",[307,7433,7434],{},"If users are unable to access your site on their smartphones, they become\nlikely to move to your competitors whose sites are easily accessible via their\nsmartphones. Google has also stated many times earlier that responsive design\nis their preferred mobile configuration. It means responsive site and separate\nmobile sites get ranking boost in search results way higher than those sites\nthat are unresponsive or not mobile-friendly.",[307,7436,7437],{},"Since mobile devices have varied screen sizes, it’s worth writing code that\nsupports all possible breakpoints. Developers can use emulators for testing to\navoid the hassle of dealing with several devices.",[314,7439,7441],{"id":7440},"_5-no-focus-on-site-speed","5. No Focus on Site Speed",[307,7443,7444],{},"Site speed directly affects bounce rates, conversion rates, revenue and user\nsatisfaction. Site speed depends on various factors. For example, client side\ncan become slow due to Spaghetti JavaScript code, whereas large images can\nslow down page loading speed. Slow sites frustrate users, thus it’s beneficial\nto put into use site speed testers that identify design elements responsible\nfor slowing down your site. Good site speed is also important from SEO\nperspective as it is one of the factors search engines take into account for\nrankings. Therefore, it’s a good practice to keep on testing your site and\nkeep a track over its performance.",[350,7446,7448],{"id":7447},"a-front-end-developer-could-easily-avoid-these-common-mistakes-and-ensure-that-their-site-is-easy-to-use-and-loads-fast-moreover-good-javascript-libraries-and-supported-code-help-design-a-responsive-and-mobile-friendly-site-which-has-become-the-need-of-the-hour","A front-end developer could easily avoid these common mistakes and ensure that their site is easy to use and loads fast. Moreover, good JavaScript libraries and supported code help design a responsive and mobile friendly site, which has become the need of the hour.",[307,7450,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":7452},[7453,7454,7455,7456,7457],{"id":7385,"depth":359,"text":7386},{"id":7398,"depth":359,"text":7399},{"id":7408,"depth":359,"text":7409},{"id":7421,"depth":359,"text":7422},{"id":7440,"depth":359,"text":7441,"children":7458},[7459],{"id":7447,"depth":368,"text":7448},"2020-04-20","An article regarding usual mistakes made by most Front-end Developers\u002FEngineers.","\u002Fassets\u002Fimages\u002Fblog\u002F200420\u002FfrontMistake.jpg",{},{"title":18,"description":7461},"dkMEck0G6-2ImkJsvtW_vQDBMKl00Wqa3kH0RZRxzZU",{"id":7467,"title":22,"author":7468,"body":7470,"date":7522,"description":7523,"extension":371,"image":7524,"meta":7525,"minRead":368,"navigation":293,"path":23,"seo":7526,"stem":24,"__hash__":7527},"blog\u002Fblog\u002F5 Things to motivate you to perform Unit Testing.md",{"name":300,"avatar":7469},{"src":302,"alt":300},{"type":304,"value":7471,"toc":7513},[7472,7476,7479,7483,7486,7490,7493,7497,7500,7504,7507,7511],[314,7473,7475],{"id":7474},"_1-reduce-the-number-of-bugs","1. Reduce the Number of Bugs",[307,7477,7478],{},"Taking care of bugs is not only tedious and time-consuming, but issues that\nappear in production are much more complex than if they had have been\ndiscovered in development or staging. By adding unit tests, failures can be\ndetected early on, pretty much as soon as the code is written and the team\nwould be able to take care of any unintended defect without any complications.",[314,7480,7482],{"id":7481},"_2-improve-code-design","2. Improve Code Design",[307,7484,7485],{},"When you consider implementing unit testing, you have to make sure that your\ncode is testable. Think about it, when you deal with the overall design\nconcept, and you need break down the high-level design to ‘single\nentity-multiple components’, you’ll be forced to think of each unit and make\nsure each of them is testable. This improves the overall code design by clear\nunit separation, defining better unit interfaces and the design concept.",[314,7487,7489],{"id":7488},"_3-improves-teamwork","3. Improves Teamwork",[307,7491,7492],{},"Along with the documentation, it improves teamwork. Your colleagues can review\nthe logic behind your code and coordinate their code accordingly. Being able\nto review each other’s code, the teamwork is more cohesive and Agile.",[314,7494,7496],{"id":7495},"_4-inspires-confidence","4. Inspires Confidence",[307,7498,7499],{},"You develop software and then you write tests to examine if it works. You will\nbe able to validate in the early stages whether your code is actually\nfunctional. Once your tests are passed, you feel confident knowing that your\nsoftware is in good shape. Many issues could be avoided this way - not\neverything.",[314,7501,7503],{"id":7502},"_5-easier-changes-and-refactoring-of-code","5. Easier Changes and Refactoring of Code",[307,7505,7506],{},"Automated unit tests catches bugs easily and knowing that makes you feel more\nconfident. Once an issue is detected, you feel more at ease when you have to\nmake changes to your code, even if the changes are beyond trivial ones – any\ncode issue detected before it’s released to production is a victory!",[350,7508,7510],{"id":7509},"we-as-developers-hesitate-to-add-unit-testing-to-our-work-routine-some-refuse-to-do-so-because-writing-extra-code-adds-more-time-and-effort-to-an-already-busy-day-what-is-often-not-considered-is-that-going-the-extra-mile-may-save-time-in-the-long-run-eliminating-unit-testing-is-only-time-saving-if-your-code-is-going-to-work-bug-free","We as developers hesitate to add unit testing to our work routine. Some refuse to do so because writing extra code adds more time and effort to an already busy day. What is often not considered is that going the extra mile may save time in the long run. Eliminating unit testing is only time-saving if your code is going to work bug free.",[307,7512,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":7514},[7515,7516,7517,7518,7519],{"id":7474,"depth":359,"text":7475},{"id":7481,"depth":359,"text":7482},{"id":7488,"depth":359,"text":7489},{"id":7495,"depth":359,"text":7496},{"id":7502,"depth":359,"text":7503,"children":7520},[7521],{"id":7509,"depth":368,"text":7510},"2020-04-13","An article that describes the reasons to do Unit Testing.","\u002Fassets\u002Fimages\u002Fblog\u002F130420\u002Funit.jpg",{},{"title":22,"description":7523},"TJ4BHxumFeH6CD5F5zJcTDp4GNJO4yRiGMNtvJhE6rA",{"id":7529,"title":14,"author":7530,"body":7532,"date":7609,"description":7610,"extension":371,"image":7611,"meta":7612,"minRead":359,"navigation":293,"path":15,"seo":7613,"stem":16,"__hash__":7614},"blog\u002Fblog\u002F5 Essential Reasons for E2E Testing.md",{"name":300,"avatar":7531},{"src":302,"alt":300},{"type":304,"value":7533,"toc":7599},[7534,7538,7541,7545,7548,7552,7555,7559,7562,7566,7569,7573,7577,7597],[314,7535,7537],{"id":7536},"_1-reduces-future-risks","1. Reduces Future Risks",[307,7539,7540],{},"In end-to-end testing, the application is tested rigorously after every\niteration and sprint. Thus, there are lesser chances of failure and risks in\nthe future.",[314,7542,7544],{"id":7543},"_2-correctness-health-of-the-application","2. Correctness & Health of the Application",[307,7546,7547],{},"In end-to-end testing, the application is tested and validated at all the\nlayers – data layer, business layer, integration layer and presentation layer.\nThis helps ensure complete correctness and health of the application.",[314,7549,7551],{"id":7550},"_3-decreases-repetitive-efforts","3. Decreases Repetitive Efforts",[307,7553,7554],{},"As the application is tested thoroughly, there is no looking back. End-to-end\ntesting reduces the chances of frequent breakdowns and ultimately reduces the\nrepetitive testing efforts.",[314,7556,7558],{"id":7557},"_4-increases-confidence-in-the-application","4. Increases Confidence in the Application",[307,7560,7561],{},"End-to-end testing also increases the confidence in the functioning and\nperformance of the application before its release as the application is tested\nacross different endpoints for different devices and\nplatforms comprehensively.",[314,7563,7565],{"id":7564},"_5-reduces-costs-time","5. Reduces Costs & Time",[307,7567,7568],{},"End-to-end testing via automation testing tool reduces errors\nrecurrence, which means the application doesn’t require undergoing repeated\ntesting. This considerably reduces the testing costs and time and helps\nachieve better productivity in other significant processes.",[350,7570,7572],{"id":7571},"end-to-end-testing-is-a-must-to-test-and-scale-the-application-across-a-range-of-different-systems-devices-layers-servers-database-interactions-apis-and-communicationfurther-automating-end-to-end-testing-allows-you-to-quickly-respond-to-changing-business-needs-and-adds-greater-agility-to-the-entire-testing-project","End-to-end testing is a must to test and scale the application across a range of different systems, devices, layers, servers, database interactions, APIs and communication. Further, automating end-to-end testing allows you to quickly respond to changing business needs and adds greater agility to the entire testing project.",[314,7574,7576],{"id":7575},"tools-of-my-choice-are","Tools of my choice are:",[769,7578,7579,7582,7585,7588,7591,7594],{},[772,7580,7581],{},"Selenium",[772,7583,7584],{},"Cypress",[772,7586,7587],{},"Nightwatch",[772,7589,7590],{},"Karma",[772,7592,7593],{},"Jasmine",[772,7595,7596],{},"Jest",[307,7598,4096],{},{"title":358,"searchDepth":359,"depth":359,"links":7600},[7601,7602,7603,7604,7605,7608],{"id":7536,"depth":359,"text":7537},{"id":7543,"depth":359,"text":7544},{"id":7550,"depth":359,"text":7551},{"id":7557,"depth":359,"text":7558},{"id":7564,"depth":359,"text":7565,"children":7606},[7607],{"id":7571,"depth":368,"text":7572},{"id":7575,"depth":359,"text":7576},"2020-04-04","An article to inspire you to perform End to End Testing in application.","\u002Fassets\u002Fimages\u002Fblog\u002F060420\u002Fe2e.jpg",{},{"title":14,"description":7610},"9exBKw7TrUP7Wby3dHYankuvI2tKYmzlJN_QgEVjeUw",1790439207548]