This document compares C, C++, and C# programming languages. C is an older procedural language without object-oriented features, while C++ added classes and objects but remained low-level. C# is newer and higher-level, with full object-orientation and memory management via garbage collection like Java. Key differences include memory management, type safety, library support, and language complexity.
The document discusses techniques for reverse engineering obfuscated malicious JavaScript code. It begins by explaining that attackers obfuscate exploits to avoid detection. It then covers different approaches for decoding obfuscated JavaScript, including using tools like NJS to run the code outside a browser. An iterative process of running samples through these tools and decoding layers is demonstrated. The goal is to defeat obfuscation techniques and understand the underlying malicious behavior.
NPM is a package manager for the JavaScript programming language. It is the default package manager for the JavaScript runtime environment Node.js. It consists of a command line client, also called npm, and an online database of public and paid-for private packages, called the npm registry.
ASP.NET Core is a lean and open source framework for building web and cloud applications that can run on Windows, Linux, and Mac. It improves on ASP.NET MVC in several ways: it has a single aligned web stack for MVC and Web APIs, uses project structures without Web.config or Global.asax files, targets full .NET and .NET Core allowing for cross-platform development, can be self-hosted without IIS, uses a wwwroot folder for static files, and has built-in dependency injection support. The document outlines eight key differences between ASP.NET MVC and ASP.NET Core.
Obfuscation 101
: 난독화, 프로가드, R8, 트랜스포머 API
김용욱
카카오뱅크
영화와 커피를 좋아하는 은행원. 반지 원정대는 극장에서만 15번을 보았다. 데이터베이스를 전공했지만 급변하는 모바일 환경에 반해 안드로이드에 승선했고 Realm을 통해 모바일과 데이터베이스를 융합했다. 그후 새로운 가능성을 찾아 금융으로 왔다.
This document compares C, C++, and C# programming languages. C is an older procedural language without object-oriented features, while C++ added classes and objects but remained low-level. C# is newer and higher-level, with full object-orientation and memory management via garbage collection like Java. Key differences include memory management, type safety, library support, and language complexity.
The document discusses techniques for reverse engineering obfuscated malicious JavaScript code. It begins by explaining that attackers obfuscate exploits to avoid detection. It then covers different approaches for decoding obfuscated JavaScript, including using tools like NJS to run the code outside a browser. An iterative process of running samples through these tools and decoding layers is demonstrated. The goal is to defeat obfuscation techniques and understand the underlying malicious behavior.
NPM is a package manager for the JavaScript programming language. It is the default package manager for the JavaScript runtime environment Node.js. It consists of a command line client, also called npm, and an online database of public and paid-for private packages, called the npm registry.
ASP.NET Core is a lean and open source framework for building web and cloud applications that can run on Windows, Linux, and Mac. It improves on ASP.NET MVC in several ways: it has a single aligned web stack for MVC and Web APIs, uses project structures without Web.config or Global.asax files, targets full .NET and .NET Core allowing for cross-platform development, can be self-hosted without IIS, uses a wwwroot folder for static files, and has built-in dependency injection support. The document outlines eight key differences between ASP.NET MVC and ASP.NET Core.
Obfuscation 101
: 난독화, 프로가드, R8, 트랜스포머 API
김용욱
카카오뱅크
영화와 커피를 좋아하는 은행원. 반지 원정대는 극장에서만 15번을 보았다. 데이터베이스를 전공했지만 급변하는 모바일 환경에 반해 안드로이드에 승선했고 Realm을 통해 모바일과 데이터베이스를 융합했다. 그후 새로운 가능성을 찾아 금융으로 왔다.
This document introduces algorithms and the process of program development. It defines an algorithm as a precise list of instructions that terminates after a finite number of steps to solve a problem. It discusses methods of specifying algorithms like pseudocode and flowcharts. Properties of algorithms include being finite, unambiguous, and having a defined sequence of execution and input/output. The steps of program development are stated as understanding the problem, planning instructions, coding the program, running and debugging it. Flowcharting guidelines and common symbols are provided. Sample exercises demonstrate writing programs to calculate simple formulas.
The document discusses automation testing for mobile apps using Appium. Appium allows for cross-platform mobile app testing by using the same tests across iOS and Android platforms. It functions by proxying commands to the devices to run tests using technologies like UIAutomation for iOS and UiAutomator for Android. While useful for local testing, Appium has limitations for scaling tests in continuous integration environments, where services like Sauce Labs are better suited.
The document defines open source software and provides examples. Open source refers to software whose source code is publicly available and can be modified and shared by anyone. Key advantages are the availability of source code, quality from community involvement, and lower costs compared to proprietary software. Popular open source applications, operating systems, and programming languages are listed as examples, including Android, Linux, PHP, and Python. The document also discusses open source development and licensing models.
Difference between .net core and .net frameworkAnsi Bytecode
We are all familiar with .NET Core, .NET Framework and how they have been leading the programming world for building mobile, web-based and desktop applications. But wait, are they both same or have different infrastructure? You might be confused about both of them and probably that’s why you’re here.
The document discusses three programming language translators: assemblers translate assembly language into machine code, compilers translate high-level languages into executable object code, and interpreters execute instructions one at a time without producing an executable file. Assemblers convert mnemonics to machine language equivalents and assign addresses, compilers check syntax and generate all code at once, and interpreters check keywords and convert instructions individually to machine code.
Lets Flutter - Talk on flutter in Google IO Extended in Google Developer Group Mumbai.
This has a detailed view of flutter and comparison of React native vs Flutter vs Native app development
Electron is a framework that allows developers to build desktop applications using JavaScript, HTML, and CSS. It allows building cross-platform apps that can run on Mac, Windows, and Linux. Electron apps can use native menus, notifications, and dialogs while also supporting common web technologies. Some popular apps built with Electron include Slack, Visual Studio Code, and Atom. Electron works by using the Chromium rendering engine and Node.js to run a web page and its JavaScript in a separate process.
So, you have an API! Should you leave it at this or also offer a client library/SDK? Using examples from other API providers, this talk will help you decide. We‘ll look at good practices for designing and documenting APIs as well as SDKs, to achieve good developer experience, no matter which choice!
This talk was held at "API the Docs" in Paris on April 24th, 2018.
https://apithedocs.org/paris2018
Go is a statically typed, compiled programming language designed for building simple, reliable, and efficient software. Some key points:
- Go is natively compiled and uses static typing with type inference. It is targeted for system programming and server-side applications.
- It was created at Google in 2007 to address issues with other languages like dependency management, garbage collection, and support for concurrency.
- Popular users include Google, Docker, Dropbox, SoundCloud, and MongoDB. Domains it is used include distributed systems, cloud, web development, and systems programming.
- Key features include built-in concurrency and networking support, a rich standard library, and fast compilation. It aims to be
Electron is an open-source framework developed by GitHub. It allows for the development of desktop GUI applications using the popular Node.js runtime. Electron is the main framework behind two notable open-source source code editors: GitHub's Atom and Microsoft's Visual Studio Code.
Electron JS | Build cross-platform desktop applications with web technologiesBethmi Gunasekara
Electron allows developers to build desktop applications using web technologies like HTML, CSS, and JavaScript. It combines the Chromium rendering engine and Node.js to package web applications into installable desktop apps. Some key benefits of Electron include the ability to reuse code and resources from web apps, access native system features through Chromium, and distribute apps through auto-updating. While Electron provides rich functionality out of the box, apps may have higher memory usage than traditional desktop applications due to running the full Chromium engine.
Flutter is an open-source SDK developed by Google that allows building high-performance mobile apps for both Android and iOS from a single codebase. It uses its own rendering engine instead of webviews or native widgets, and has a thin C/C++ layer with most code implemented in Dart. Flutter supports hot reload which allows code changes to take effect instantly without losing app state. It is optimized for building 2D apps and supports features like camera, geolocation, and third-party SDKs.
This document outlines the key constraints of designing mobile applications including limited screen size which can only display a few words at a time, low battery capacity, low processor speed and memory, high latency on wireless networks, and restrictions related to battery size, weight, and development. It also mentions additional constraints such as tasks, the environment, applications, users, devices, and platforms that must be considered when designing for mobile.
WebAssembly (Wasm) is a binary instruction format for a stack-based virtual machine that allows deployment of web and server applications. Wasm is not a transpiling target for JavaScript or a replacement for JS, but rather a compilation target for programming languages to enable deployment on the web. The key aspects of Wasm include its stack-based architecture, core data types like integers and floats, control flow constructs, and use of linear memory. WABT is a toolkit that helps manipulate Wasm files, allowing generation of text format (wat) from binary (wasm) and vice versa. Building a Wasm app involves understanding its architecture and using tools like WABT.
This document provides an outline on learning the Go programming language. It discusses Go's history as a language developed by Google in 2007. Key features include being statically typed with garbage collection and support for concurrency. The document outlines disadvantages like Go still being a young language. It provides guidance on setting up a Go environment and learning basics like types, variables, functions, control structures, object orientation, and concurrency using goroutines and channels.
The .NET Framework is a software platform that allows developers to write and run applications and web services in any compliant language. It provides a common language runtime and class libraries. Applications are compiled to an intermediate language (IL) that is then compiled to native machine code by the common language runtime (CLR). The CLR handles memory management, security, and other low-level tasks. The .NET Framework supports multiple programming languages and tools like Visual Studio. It allows building Windows forms applications, web applications with ASP.NET, and web services.
This document describes the workflow for creating an Android chat application. It discusses registering with Google Cloud Messaging (GCM) to send push notifications, creating server-side code to save registration IDs and send messages, and handling receiving and storing messages on the device. The key steps include registering with GCM, saving registration IDs to a database, selecting users to message and sending messages through the web server and GCM to the recipient's device, and displaying received messages on the device. Contact information is provided to learn more about Android development or training.
WebAssembly is a new binary format for the web that is fast, compact and provides near-native performance. It was developed by major browser vendors as a compilation target for programming languages like C/C++ to run on the web. WebAssembly has a small binary format, runs in any browser, and provides performance comparable to native code. It fills gaps in JavaScript for heavy computation tasks. The roadmap includes adding threads, shared memory and exception handling to WebAssembly.
This document introduces algorithms and the process of program development. It defines an algorithm as a precise list of instructions that terminates after a finite number of steps to solve a problem. It discusses methods of specifying algorithms like pseudocode and flowcharts. Properties of algorithms include being finite, unambiguous, and having a defined sequence of execution and input/output. The steps of program development are stated as understanding the problem, planning instructions, coding the program, running and debugging it. Flowcharting guidelines and common symbols are provided. Sample exercises demonstrate writing programs to calculate simple formulas.
The document discusses automation testing for mobile apps using Appium. Appium allows for cross-platform mobile app testing by using the same tests across iOS and Android platforms. It functions by proxying commands to the devices to run tests using technologies like UIAutomation for iOS and UiAutomator for Android. While useful for local testing, Appium has limitations for scaling tests in continuous integration environments, where services like Sauce Labs are better suited.
The document defines open source software and provides examples. Open source refers to software whose source code is publicly available and can be modified and shared by anyone. Key advantages are the availability of source code, quality from community involvement, and lower costs compared to proprietary software. Popular open source applications, operating systems, and programming languages are listed as examples, including Android, Linux, PHP, and Python. The document also discusses open source development and licensing models.
Difference between .net core and .net frameworkAnsi Bytecode
We are all familiar with .NET Core, .NET Framework and how they have been leading the programming world for building mobile, web-based and desktop applications. But wait, are they both same or have different infrastructure? You might be confused about both of them and probably that’s why you’re here.
The document discusses three programming language translators: assemblers translate assembly language into machine code, compilers translate high-level languages into executable object code, and interpreters execute instructions one at a time without producing an executable file. Assemblers convert mnemonics to machine language equivalents and assign addresses, compilers check syntax and generate all code at once, and interpreters check keywords and convert instructions individually to machine code.
Lets Flutter - Talk on flutter in Google IO Extended in Google Developer Group Mumbai.
This has a detailed view of flutter and comparison of React native vs Flutter vs Native app development
Electron is a framework that allows developers to build desktop applications using JavaScript, HTML, and CSS. It allows building cross-platform apps that can run on Mac, Windows, and Linux. Electron apps can use native menus, notifications, and dialogs while also supporting common web technologies. Some popular apps built with Electron include Slack, Visual Studio Code, and Atom. Electron works by using the Chromium rendering engine and Node.js to run a web page and its JavaScript in a separate process.
So, you have an API! Should you leave it at this or also offer a client library/SDK? Using examples from other API providers, this talk will help you decide. We‘ll look at good practices for designing and documenting APIs as well as SDKs, to achieve good developer experience, no matter which choice!
This talk was held at "API the Docs" in Paris on April 24th, 2018.
https://apithedocs.org/paris2018
Go is a statically typed, compiled programming language designed for building simple, reliable, and efficient software. Some key points:
- Go is natively compiled and uses static typing with type inference. It is targeted for system programming and server-side applications.
- It was created at Google in 2007 to address issues with other languages like dependency management, garbage collection, and support for concurrency.
- Popular users include Google, Docker, Dropbox, SoundCloud, and MongoDB. Domains it is used include distributed systems, cloud, web development, and systems programming.
- Key features include built-in concurrency and networking support, a rich standard library, and fast compilation. It aims to be
Electron is an open-source framework developed by GitHub. It allows for the development of desktop GUI applications using the popular Node.js runtime. Electron is the main framework behind two notable open-source source code editors: GitHub's Atom and Microsoft's Visual Studio Code.
Electron JS | Build cross-platform desktop applications with web technologiesBethmi Gunasekara
Electron allows developers to build desktop applications using web technologies like HTML, CSS, and JavaScript. It combines the Chromium rendering engine and Node.js to package web applications into installable desktop apps. Some key benefits of Electron include the ability to reuse code and resources from web apps, access native system features through Chromium, and distribute apps through auto-updating. While Electron provides rich functionality out of the box, apps may have higher memory usage than traditional desktop applications due to running the full Chromium engine.
Flutter is an open-source SDK developed by Google that allows building high-performance mobile apps for both Android and iOS from a single codebase. It uses its own rendering engine instead of webviews or native widgets, and has a thin C/C++ layer with most code implemented in Dart. Flutter supports hot reload which allows code changes to take effect instantly without losing app state. It is optimized for building 2D apps and supports features like camera, geolocation, and third-party SDKs.
This document outlines the key constraints of designing mobile applications including limited screen size which can only display a few words at a time, low battery capacity, low processor speed and memory, high latency on wireless networks, and restrictions related to battery size, weight, and development. It also mentions additional constraints such as tasks, the environment, applications, users, devices, and platforms that must be considered when designing for mobile.
WebAssembly (Wasm) is a binary instruction format for a stack-based virtual machine that allows deployment of web and server applications. Wasm is not a transpiling target for JavaScript or a replacement for JS, but rather a compilation target for programming languages to enable deployment on the web. The key aspects of Wasm include its stack-based architecture, core data types like integers and floats, control flow constructs, and use of linear memory. WABT is a toolkit that helps manipulate Wasm files, allowing generation of text format (wat) from binary (wasm) and vice versa. Building a Wasm app involves understanding its architecture and using tools like WABT.
This document provides an outline on learning the Go programming language. It discusses Go's history as a language developed by Google in 2007. Key features include being statically typed with garbage collection and support for concurrency. The document outlines disadvantages like Go still being a young language. It provides guidance on setting up a Go environment and learning basics like types, variables, functions, control structures, object orientation, and concurrency using goroutines and channels.
The .NET Framework is a software platform that allows developers to write and run applications and web services in any compliant language. It provides a common language runtime and class libraries. Applications are compiled to an intermediate language (IL) that is then compiled to native machine code by the common language runtime (CLR). The CLR handles memory management, security, and other low-level tasks. The .NET Framework supports multiple programming languages and tools like Visual Studio. It allows building Windows forms applications, web applications with ASP.NET, and web services.
This document describes the workflow for creating an Android chat application. It discusses registering with Google Cloud Messaging (GCM) to send push notifications, creating server-side code to save registration IDs and send messages, and handling receiving and storing messages on the device. The key steps include registering with GCM, saving registration IDs to a database, selecting users to message and sending messages through the web server and GCM to the recipient's device, and displaying received messages on the device. Contact information is provided to learn more about Android development or training.
WebAssembly is a new binary format for the web that is fast, compact and provides near-native performance. It was developed by major browser vendors as a compilation target for programming languages like C/C++ to run on the web. WebAssembly has a small binary format, runs in any browser, and provides performance comparable to native code. It fills gaps in JavaScript for heavy computation tasks. The roadmap includes adding threads, shared memory and exception handling to WebAssembly.