Describe how to contribute to open source projects.
Provide example process using two hot open source project, linux and AOSP(Android Open Source Project)
Let the contribution begin (EST futures)SeongJae Park
The document discusses contributing to open source software as a newcomer. It recommends getting the source code, making small, targeted changes like fixing coding style issues, and submitting patches for review. The Linux kernel is presented as a popular project to start contributing to. Topic branches in version control are introduced as a way to develop changes separately before submitting them for merging.
This document discusses different types of patterns used in object-oriented software development, including anti-patterns, requirements patterns, analysis patterns, architecture patterns, and design patterns. It defines patterns as abstractions that describe solutions to recurring problems in software development. Each type of pattern addresses a different phase of development, like analysis patterns supporting the creation of conceptual models or architecture patterns describing principles for software structure. The document also defines some key terminology related to patterns, such as pattern languages and pattern instantiation.
The document discusses code optimization techniques including constant folding, copy propagation, and common subexpression elimination. It provides examples of code before and after applying these optimizations. Constant folding replaces expressions with known constant values. Copy propagation replaces variable uses with the variable's assignment. Common subexpression elimination computes shared subexpressions only once. Together these optimizations can improve code efficiency.
The document provides an overview of assembler languages and machine code. It discusses 3 levels of language - high level languages, assembler languages, and machine code. Assembler languages translate symbolic commands and addresses into machine code instructions. Machine code instructions are binary words that directly trigger elementary CPU operations. The document also describes assembler language structure, common instruction types, registers like the flag and general purpose registers, and jump operations.
Assembly language is a low-level programming language that is one step away from machine language, with each statement translating to a single machine instruction, requiring programmers to understand the underlying computer architecture, and one-pass assemblers generate object code by resolving forward references on later passes or generating modification records for the loader.
Describe how to contribute to open source projects.
Provide example process using two hot open source project, linux and AOSP(Android Open Source Project)
Let the contribution begin (EST futures)SeongJae Park
The document discusses contributing to open source software as a newcomer. It recommends getting the source code, making small, targeted changes like fixing coding style issues, and submitting patches for review. The Linux kernel is presented as a popular project to start contributing to. Topic branches in version control are introduced as a way to develop changes separately before submitting them for merging.
This document discusses different types of patterns used in object-oriented software development, including anti-patterns, requirements patterns, analysis patterns, architecture patterns, and design patterns. It defines patterns as abstractions that describe solutions to recurring problems in software development. Each type of pattern addresses a different phase of development, like analysis patterns supporting the creation of conceptual models or architecture patterns describing principles for software structure. The document also defines some key terminology related to patterns, such as pattern languages and pattern instantiation.
The document discusses code optimization techniques including constant folding, copy propagation, and common subexpression elimination. It provides examples of code before and after applying these optimizations. Constant folding replaces expressions with known constant values. Copy propagation replaces variable uses with the variable's assignment. Common subexpression elimination computes shared subexpressions only once. Together these optimizations can improve code efficiency.
The document provides an overview of assembler languages and machine code. It discusses 3 levels of language - high level languages, assembler languages, and machine code. Assembler languages translate symbolic commands and addresses into machine code instructions. Machine code instructions are binary words that directly trigger elementary CPU operations. The document also describes assembler language structure, common instruction types, registers like the flag and general purpose registers, and jump operations.
Assembly language is a low-level programming language that is one step away from machine language, with each statement translating to a single machine instruction, requiring programmers to understand the underlying computer architecture, and one-pass assemblers generate object code by resolving forward references on later passes or generating modification records for the loader.
This document discusses macro nesting in C programming. It defines several macros, including nested macros where a macro name is used within the definition of another macro. It then shows an example program that defines macros, reads a text file containing additional macro definitions, builds a linked list of the macros, replaces nested macro names within values, and prints the final macro table.
A use case diagram describes interactions between users and a system. It displays relationships between actors and use cases. Actors represent users or other systems interacting with the system being modeled. Use cases represent actions a user performs to complete a task. Use case diagrams are helpful early in projects to expose requirements and plan projects, and more use cases may be identified as projects continue.
This document introduces "ash", a shell that allows controlling multiple devices with a single interface. Ash uses a text-based command language to send commands over a network to remotely control devices installed with the ash application. The architecture includes an evaluator that parses commands, a user interface, and device controllers. Commands can register functions and callbacks. The code is structured as lists, and ash supports interfaces from Android, Ubuntu, OSX, and Windows.
The document shares lessons learned from life experiences. It discusses lessons such as heroes doing what needs to be done regardless of consequences, backgrounds influencing who people are, personal growth taking a long time, the world not stopping for grief, different types of love, maturity coming from experiences rather than years lived, pushing past what is thought possible, different perspectives of the same thing, being responsible for actions, leaving loved ones with kind words, having the right to anger but not cruelty, determining the line between kindness and beliefs, and finding strength to help friends in need. The document encourages remembering life's wisdom and keeping one's face towards the sunshine.
Short introduction about vcs & git usage.
Aimed to introduce concept of version control system and git to people who didn't used git or vcs yet. Doesn't introduce deep part of git or operating policy for git. Just focus on simple introduction about main functionality and abstracted internal design.
This document discusses Git and provides an introduction to its basic concepts and functionality. It begins by introducing Git as a distributed version control system created by Linus Torvalds to manage Linux code. It then notes that many projects use Git because it is powerful. Finally, it summarizes that at its core, Git is a content-addressable file system based around blobs, trees, commits and references.
This document summarizes key concepts of Git including snapshots, histories as sequences of snapshots, parallel universes/histories, and basic Git commands like init, add, commit, branch, checkout, merge, rebase, remote repositories, and free hosting services. The document uses diagrams and examples to explain how Git conceptually implements versions as snapshots and allows managing parallel software histories through branches.
The document discusses keywords, identifiers, constants, and operators in the C programming language, providing examples of each and noting that keywords have fixed meanings while identifiers are user-defined names; it then presents code to count the number of times various keywords are used in an input C file and output the results.
gcma: guaranteed contiguous memory allocatorSeongJae Park
This document presents GCMA, a Guaranteed Contiguous Memory Allocator that improves upon the current Contiguous Memory Allocator (CMA) solution in Linux. CMA can have unpredictable latency and even fail when allocating contiguous memory, especially under memory pressure or with background workloads. GCMA guarantees fast latency for contiguous memory allocation, success of allocation, and reasonable memory utilization by using discardable memory as its secondary client instead of movable pages. Experimental results on a Raspberry Pi 2 show that GCMA has significantly faster allocation latency than CMA, keeps camera latency fast even with background workloads, and can improve overall system performance compared to CMA.
(Live) build and run golang web server on android.aviSeongJae Park
Presented from gdg devfair 2014 and gdg korea golang seoul meetup 2015.
Added explanation about go 1.4 official android support a little from gdg korea golang seoul meetup presentation.
Browsing The Source Code of Linux PackagesMotaz Saad
The document discusses browsing Linux source packages, noting that source packages end in .src.rpm and are found in the /usr/src directory. It also explains that installing a source RPM package using rpm -i will place it in the /usr/src/packages/SOURCES directory. The document provides an overview of installing both binary and source packages on Linux.
Experimental android hacking using reflectionSeongJae Park
This document discusses using reflection in Android to access hidden and restricted features. It describes how Android separates interfaces for third-party and built-in apps. It then explains how reflection can be used to change the interface and allow third-party apps to access features usually only available to built-in apps, with examples of how to end a call via reflection. However, it notes reflection has limitations like performance overhead and may not work on all devices.
This document summarizes a research paper on class outlier mining, which aims to identify rare or unusual cases within individual classes of labeled data rather than across an entire dataset. It presents an approach to class outlier mining based on calculating distances between data points to find exceptions within each class. The abstract also outlines that the paper will provide an overview of the concept of class outliers and the distance-based approach presented in the full paper.
This document provides an introduction to the Go programming language by SeongJae Park. It discusses why Go was developed, including to address pains with dependency management, build speeds, type safety, garbage collection and multi-core support in other languages. It then demonstrates Go concepts like packages, functions, variables, structs and interfaces through a live coding example of a web server. Finally, it references a presentation that further explains Go's advantages for multicore programming.
The document provides examples of different diagramming techniques for representing processes, including data flow diagrams, decision trees, state transition diagrams, and structured English. It also outlines some basic rules for constructing data flow diagrams, such as ensuring each process has both inputs and outputs, and that data cannot flow directly back to the originating process.
The document provides information about .NET Framework interview questions and their answers. Some key points:
1. .NET is a development platform that allows building web, desktop and mobile applications. It includes a programming model, class libraries and runtime environment.
2. The .NET Framework consists of the common language runtime (CLR) and .NET Framework class library. The CLR handles execution and provides services like memory management. The class library contains reusable types.
3. Managed code runs within the CLR. When code is compiled, it is converted to Microsoft intermediate language (MSIL) for execution on any CPU architecture. The just-in-time (JIT) compiler converts MSIL to native code.
MySQL is a popular open-source SQL database server. It aims to be fast and robust. Key features include support for multiple data types, joins, functions in queries, indexing, privileges and passwords. MySQL privileges are granted based on matching the connecting user, host, and database against rows in the user, host and db tables which define allowed privileges. Privileges are calculated by sorting these tables and finding the first matching row to determine the granted privileges.
This document provides an overview of the .NET framework, including its history, components, tools, and key concepts like assemblies and garbage collection. It discusses what .NET is, when it was announced, its different versions, supported operating systems, development tools, intermediate language, programming languages like C#, and managed vs unmanaged code. It also covers assemblies, versioning, application domains, hosting .NET applications, and deterministic object destruction.
The document discusses holographic memory as a data storage technology. It begins with an introduction to holography and its historical roots. Key concepts covered include how holograms store both the amplitude and phase of light waves to recreate 3D images, and how holographic memory uses this principle to store digital data throughout a recording medium in the form of pages that can be rapidly accessed. The techniques of recording data pages using a laser beam and spatial light modulator, and storing multiple pages using multiplexing, are also summarized.
The document discusses data recovery, including what it is, common uses, and techniques. Data recovery involves retrieving deleted or inaccessible data from electronic storage media. It is commonly used by average users to recover important files, and by law enforcement to locate illegal data or restore deleted information for criminal investigations. Techniques discussed include software and hardware recovery methods, secure deletion standards, and overwriting schemes to prevent recovery.
The document contains 9 questions related to simulation modeling. Each question contains a simulation model with generate, advance, transfer, and terminate blocks to model different queueing systems. The models vary in complexity and simulate processes like customer arrivals, queueing, and service across multiple resources.
This document discusses macro nesting in C programming. It defines several macros, including nested macros where a macro name is used within the definition of another macro. It then shows an example program that defines macros, reads a text file containing additional macro definitions, builds a linked list of the macros, replaces nested macro names within values, and prints the final macro table.
A use case diagram describes interactions between users and a system. It displays relationships between actors and use cases. Actors represent users or other systems interacting with the system being modeled. Use cases represent actions a user performs to complete a task. Use case diagrams are helpful early in projects to expose requirements and plan projects, and more use cases may be identified as projects continue.
This document introduces "ash", a shell that allows controlling multiple devices with a single interface. Ash uses a text-based command language to send commands over a network to remotely control devices installed with the ash application. The architecture includes an evaluator that parses commands, a user interface, and device controllers. Commands can register functions and callbacks. The code is structured as lists, and ash supports interfaces from Android, Ubuntu, OSX, and Windows.
The document shares lessons learned from life experiences. It discusses lessons such as heroes doing what needs to be done regardless of consequences, backgrounds influencing who people are, personal growth taking a long time, the world not stopping for grief, different types of love, maturity coming from experiences rather than years lived, pushing past what is thought possible, different perspectives of the same thing, being responsible for actions, leaving loved ones with kind words, having the right to anger but not cruelty, determining the line between kindness and beliefs, and finding strength to help friends in need. The document encourages remembering life's wisdom and keeping one's face towards the sunshine.
Short introduction about vcs & git usage.
Aimed to introduce concept of version control system and git to people who didn't used git or vcs yet. Doesn't introduce deep part of git or operating policy for git. Just focus on simple introduction about main functionality and abstracted internal design.
This document discusses Git and provides an introduction to its basic concepts and functionality. It begins by introducing Git as a distributed version control system created by Linus Torvalds to manage Linux code. It then notes that many projects use Git because it is powerful. Finally, it summarizes that at its core, Git is a content-addressable file system based around blobs, trees, commits and references.
This document summarizes key concepts of Git including snapshots, histories as sequences of snapshots, parallel universes/histories, and basic Git commands like init, add, commit, branch, checkout, merge, rebase, remote repositories, and free hosting services. The document uses diagrams and examples to explain how Git conceptually implements versions as snapshots and allows managing parallel software histories through branches.
The document discusses keywords, identifiers, constants, and operators in the C programming language, providing examples of each and noting that keywords have fixed meanings while identifiers are user-defined names; it then presents code to count the number of times various keywords are used in an input C file and output the results.
gcma: guaranteed contiguous memory allocatorSeongJae Park
This document presents GCMA, a Guaranteed Contiguous Memory Allocator that improves upon the current Contiguous Memory Allocator (CMA) solution in Linux. CMA can have unpredictable latency and even fail when allocating contiguous memory, especially under memory pressure or with background workloads. GCMA guarantees fast latency for contiguous memory allocation, success of allocation, and reasonable memory utilization by using discardable memory as its secondary client instead of movable pages. Experimental results on a Raspberry Pi 2 show that GCMA has significantly faster allocation latency than CMA, keeps camera latency fast even with background workloads, and can improve overall system performance compared to CMA.
(Live) build and run golang web server on android.aviSeongJae Park
Presented from gdg devfair 2014 and gdg korea golang seoul meetup 2015.
Added explanation about go 1.4 official android support a little from gdg korea golang seoul meetup presentation.
Browsing The Source Code of Linux PackagesMotaz Saad
The document discusses browsing Linux source packages, noting that source packages end in .src.rpm and are found in the /usr/src directory. It also explains that installing a source RPM package using rpm -i will place it in the /usr/src/packages/SOURCES directory. The document provides an overview of installing both binary and source packages on Linux.
Experimental android hacking using reflectionSeongJae Park
This document discusses using reflection in Android to access hidden and restricted features. It describes how Android separates interfaces for third-party and built-in apps. It then explains how reflection can be used to change the interface and allow third-party apps to access features usually only available to built-in apps, with examples of how to end a call via reflection. However, it notes reflection has limitations like performance overhead and may not work on all devices.
This document summarizes a research paper on class outlier mining, which aims to identify rare or unusual cases within individual classes of labeled data rather than across an entire dataset. It presents an approach to class outlier mining based on calculating distances between data points to find exceptions within each class. The abstract also outlines that the paper will provide an overview of the concept of class outliers and the distance-based approach presented in the full paper.
This document provides an introduction to the Go programming language by SeongJae Park. It discusses why Go was developed, including to address pains with dependency management, build speeds, type safety, garbage collection and multi-core support in other languages. It then demonstrates Go concepts like packages, functions, variables, structs and interfaces through a live coding example of a web server. Finally, it references a presentation that further explains Go's advantages for multicore programming.
The document provides examples of different diagramming techniques for representing processes, including data flow diagrams, decision trees, state transition diagrams, and structured English. It also outlines some basic rules for constructing data flow diagrams, such as ensuring each process has both inputs and outputs, and that data cannot flow directly back to the originating process.
The document provides information about .NET Framework interview questions and their answers. Some key points:
1. .NET is a development platform that allows building web, desktop and mobile applications. It includes a programming model, class libraries and runtime environment.
2. The .NET Framework consists of the common language runtime (CLR) and .NET Framework class library. The CLR handles execution and provides services like memory management. The class library contains reusable types.
3. Managed code runs within the CLR. When code is compiled, it is converted to Microsoft intermediate language (MSIL) for execution on any CPU architecture. The just-in-time (JIT) compiler converts MSIL to native code.
MySQL is a popular open-source SQL database server. It aims to be fast and robust. Key features include support for multiple data types, joins, functions in queries, indexing, privileges and passwords. MySQL privileges are granted based on matching the connecting user, host, and database against rows in the user, host and db tables which define allowed privileges. Privileges are calculated by sorting these tables and finding the first matching row to determine the granted privileges.
This document provides an overview of the .NET framework, including its history, components, tools, and key concepts like assemblies and garbage collection. It discusses what .NET is, when it was announced, its different versions, supported operating systems, development tools, intermediate language, programming languages like C#, and managed vs unmanaged code. It also covers assemblies, versioning, application domains, hosting .NET applications, and deterministic object destruction.
The document discusses holographic memory as a data storage technology. It begins with an introduction to holography and its historical roots. Key concepts covered include how holograms store both the amplitude and phase of light waves to recreate 3D images, and how holographic memory uses this principle to store digital data throughout a recording medium in the form of pages that can be rapidly accessed. The techniques of recording data pages using a laser beam and spatial light modulator, and storing multiple pages using multiplexing, are also summarized.
The document discusses data recovery, including what it is, common uses, and techniques. Data recovery involves retrieving deleted or inaccessible data from electronic storage media. It is commonly used by average users to recover important files, and by law enforcement to locate illegal data or restore deleted information for criminal investigations. Techniques discussed include software and hardware recovery methods, secure deletion standards, and overwriting schemes to prevent recovery.
The document contains 9 questions related to simulation modeling. Each question contains a simulation model with generate, advance, transfer, and terminate blocks to model different queueing systems. The models vary in complexity and simulate processes like customer arrivals, queueing, and service across multiple resources.
This document provides an introduction to 8086 assembly language programming. It discusses program statements, data storage directives, defining and naming data, data transfer instructions, and the basic structure of an assembly language program, including segments for code, data, and stack. Pseudo-operations and directives are used to define variables and reserve memory. Data types like bytes, words, and doublewords are stored in reverse order in memory.
Router Bridge Switch & Co. is a company founded in 2001 that researches networking devices. The document defines and describes routers, bridges, gateways, hubs, switches, and circuit switching versus packet switching. It also covers asynchronous transfer mode (ATM), a dedicated connection switching technology used to organize and transmit digital data.
This document provides information about the CS416 Compiler Design course, including the instructor details, prerequisites, textbook, grading breakdown, course outline, and an overview of the major parts and phases of a compiler. The course will cover topics such as lexical analysis, syntax analysis using top-down and bottom-up parsing, semantic analysis using attribute grammars, intermediate code generation, code optimization, and code generation.
This document describes the basic functions of an assembler including translating mnemonic operation codes to machine language equivalents, assigning addresses to symbolic labels, and building properly formatted machine instructions. It provides examples of assembly language code and discusses machine-dependent features like instruction formats and addressing modes as well as machine-independent features such as literals, symbol definitions, and program structure.
This document appears to be a list of short phrases or words that describe thoughts, feelings, and experiences related to spirituality, relationships, and personal reflection. The list touches on topics like worry, remorse, faith, prayer, personality, future hopes and regrets, and human qualities like being playful, graceful, or cheeky.
This document discusses time management techniques. It outlines a 4-generation model of time management, moving from traditional methods to a principles-based approach focused on leadership and relationships. A 6-step process is presented: 1) Connect to your mission and vision, 2) Identify your roles, 3) Select high-impact goals for each role, 4) Organize your week around priorities, 5) Exercise integrity, 6) Evaluate. The goal is to spend time on important but not urgent "Quadrant II" activities to have the greatest positive impact.
This document contains sayings and teachings attributed to the prophet Muhammad (peace be upon him). It shares several hadith where Muhammad emphasizes the importance of respecting and caring for one's mother, avoiding inappropriate physical contact with strangers, and remembering to say blessings when the prophet's name is mentioned. It also contains messages encouraging reflection on death, sharing religious teachings with others, and expressing love and devotion for God.
This document describes an electronic hospital management system called e-Hospital Manager. It aims to help hospitals improve efficiency, enhance patient care, improve fiscal control, and eliminate chances of pilferage. The system integrates all hospital operations and information flows to synergize resources. It covers key functional areas like billing, patient management, medical stores, laboratories, and more. The goal is to streamline processes, bridge information gaps, and address common problems faced by hospitals in order to provide better patient care.
The document discusses cryptography and the RSA encryption algorithm. It begins with an introduction to cryptography and its uses. It then covers the history of cryptography, common security issues, and different cryptographic techniques like symmetric and asymmetric encryption. The document focuses on explaining the RSA algorithm, how it works using public and private keys, and why factoring large numbers makes RSA secure. It provides an overview of the key aspects of cryptography and the RSA algorithm.
A smart card is a plastic card that contains an embedded microchip which can store and process data. The microchip allows smart cards to carry out encryption and authentication functions. Smart cards come in contact and contactless varieties. They offer benefits like security, intelligence, and convenience. Smart cards are used in applications like mobile phones, healthcare, and transportation to store user data, enable authentication, and process transactions securely. Their use is expected to grow significantly in the future as more services migrate to using smart card technology.
Mr. Majid presented on Radio Frequency Identification (RFID) technology. RFID uses radio waves to identify and track people and objects. An RFID system has two main components: RFID tags, which contain chips and antennas, and RFID readers, which are transceivers. When an RFID tag comes within range of a reader's radio signals, the tag is activated and sends its stored information to the reader. The reader then decodes the data and sends it to a connected network or database. RFID has various applications including animal identification, anti-theft systems, luggage handling, blood banks, and office printers/cartridges.
RFID is a technology that uses radio waves to automatically identify objects or people. An RFID tag attached to an item can be scanned by an RFID reader to retrieve information about that item without needing direct line-of-sight like a barcode. RFID readers can scan multiple tags simultaneously and are not affected by environmental factors like dirt or damage like barcodes. RFID systems are used for applications like tracking animals, preventing theft, handling luggage, managing blood banks, and ensuring printer cartridges are compatible.
1. Belief:
"The only thing that stands between a person and
what they want from life
is often the will to try it and the faith to believe it's
possible."
--Rich Devos
10/14/12
2. Failure:
"Failures are divided into two classes-
those who thought and never did
and
those who did and never thought."
--John Charles Sak
10/14/12
4. Excellence:
"It is a funny thing about life: if you
refuse to accept anything but the best,
you very often get it."
--Somerset Maugham
10/14/12
5. Discipline:
"To get what we've never had, we must do what we've never
done."
--Anonymous
10/14/12
6. Knowledge:
"Knowledge is like climbing a mountain;
the higher you reach, the more you
can see and appreciate."
10/14/12
--Anonymous
7. Perseverance:
"In the confrontation between the stream and the rock,
the stream always wins...
not through strength but by perseverance."
--H. Jackson Brown
10/14/12
8. Risk:
"You will always miss
100% of the shots you
don't take."
--Wayne Gretzky
10/14/12
10. Passion:
"Many things will catch your eye, but only a few will catch your heart...
PURSUE THOSE."
--Anonymous
10/14/12
11. Funnypictures,Funny Videos, Mail forwards, Flash movies,
Creative articles,Jokes..Humor,Downloads,Cool Advertisements and more..
10/14/12 you the Best ….Share the fun
We Bring
Regards