My slides from "Inside PHP", a talk about how to change the syntax of the PHP programming language.
Modified PHP 5.4.4 source code (with the "until" keyword added during this presentation) is available here:
http://github.com/thomaslee/oscon2012-inside-php
My slides from "Inside PHP", a talk about how to change the syntax of the PHP programming language.
Modified PHP 5.4.4 source code (with the "until" keyword added during this presentation) is available here:
http://github.com/thomaslee/oscon2012-inside-php
My slides from "Inside Python", a talk about how to change the syntax of the Python programming language.
Modified Python 3.2 source code (with the "unless" keyword added during this presentation) is available here:
http://github.com/thomaslee/oscon2012-inside-python
Let's turn the table. Suppose your goal is to deliberately create buggy programs in C and C++ with serious security vulnerabilities that can be "easily" exploited. Then you need to know about things like stack smashing, shellcode, arc injection, return-oriented programming. You also need to know about annoying protection mechanisms such as address space layout randomization, stack canaries, data execution prevention, and more. These slides will teach you the basics of how to deliberately write insecure programs in C and C++.
A PDF version of the slides can be downloaded from my homepage: http://olvemaudal.com/talks
Here is a video recording of me presenting these slides at NDC 2014: http://vimeo.com/channels/ndc2014/97505677
Enjoy!
https://mloey.github.io/
We will discuss the following: Develop Project Charter, Develop Project Management Plan, Direct and Manage Project Work, Monitor and Control Project Work, Perform Integrated Change Control, Close Project or Phase.
Create - Day 2 - 11:15 - "Six Secrets to Overcoming Social Marketing Hurdles"PerformanceIN
Despite the fact that customers expect to engage with their brands on social media, most firms continue to see their social budgets fall low on the marketing priority list.
Whether through a lack of hard ROI or meaningful metrics, social teams struggle to acquire the funding and support to make a real difference.
Veteran social media marketer Eric Weaver will share six secrets from major global brands on how to garner financial support, create meaningful impact and engage distracted fans.
Expect to walk away with new methods of measuring social media ROI, successfully requesting more funding and approaches to paid advertising, content and engagement to produce tangible business results.
Ringers cut 5 knit for pinch point and knuckle impact protectionProject Sales Corp
PSC Knit Impact Glove
Range from Mechanix,
HexArmor, KONG, Ringers, Superior
reduced cost of ownership of
impact protection gloves in
2014 and increased
penetration in the oil and
gas industry.
This presentation made at TI Developer Conference 2008, introduces the options available for developers to create User Interfaces on TI SGX based platforms.
The SEO Value of Social Media
Social Media and SEO have never been more intertwined than they are today. Not only are social media elements like Tweets and reviews making their way into search results, but Google's new social search is a clear indicator that social media's effect on search is going to continue to grow in importance. By aligning your social media campaign with SEO best practices and your optimization strategy, you not only maximize the ROI of your social media program, but you begin to set the foundation for future organic search success.
* Ray "Catfish" Comstock, Director of SEO, BusinessOnline
My slides from "Inside Python", a talk about how to change the syntax of the Python programming language.
Modified Python 3.2 source code (with the "unless" keyword added during this presentation) is available here:
http://github.com/thomaslee/oscon2012-inside-python
Let's turn the table. Suppose your goal is to deliberately create buggy programs in C and C++ with serious security vulnerabilities that can be "easily" exploited. Then you need to know about things like stack smashing, shellcode, arc injection, return-oriented programming. You also need to know about annoying protection mechanisms such as address space layout randomization, stack canaries, data execution prevention, and more. These slides will teach you the basics of how to deliberately write insecure programs in C and C++.
A PDF version of the slides can be downloaded from my homepage: http://olvemaudal.com/talks
Here is a video recording of me presenting these slides at NDC 2014: http://vimeo.com/channels/ndc2014/97505677
Enjoy!
https://mloey.github.io/
We will discuss the following: Develop Project Charter, Develop Project Management Plan, Direct and Manage Project Work, Monitor and Control Project Work, Perform Integrated Change Control, Close Project or Phase.
Create - Day 2 - 11:15 - "Six Secrets to Overcoming Social Marketing Hurdles"PerformanceIN
Despite the fact that customers expect to engage with their brands on social media, most firms continue to see their social budgets fall low on the marketing priority list.
Whether through a lack of hard ROI or meaningful metrics, social teams struggle to acquire the funding and support to make a real difference.
Veteran social media marketer Eric Weaver will share six secrets from major global brands on how to garner financial support, create meaningful impact and engage distracted fans.
Expect to walk away with new methods of measuring social media ROI, successfully requesting more funding and approaches to paid advertising, content and engagement to produce tangible business results.
Ringers cut 5 knit for pinch point and knuckle impact protectionProject Sales Corp
PSC Knit Impact Glove
Range from Mechanix,
HexArmor, KONG, Ringers, Superior
reduced cost of ownership of
impact protection gloves in
2014 and increased
penetration in the oil and
gas industry.
This presentation made at TI Developer Conference 2008, introduces the options available for developers to create User Interfaces on TI SGX based platforms.
The SEO Value of Social Media
Social Media and SEO have never been more intertwined than they are today. Not only are social media elements like Tweets and reviews making their way into search results, but Google's new social search is a clear indicator that social media's effect on search is going to continue to grow in importance. By aligning your social media campaign with SEO best practices and your optimization strategy, you not only maximize the ROI of your social media program, but you begin to set the foundation for future organic search success.
* Ray "Catfish" Comstock, Director of SEO, BusinessOnline
The OpenStack Havana release had more than 910 contributors and delivers nearly 400 new features, including two new services: Orchestration and Metering.
Sustaining & innovating amidst changes is the hallmark of exemplary leadership. Pelmar Group has been displaying this leadership for the last 50 years! In this special edition, we showcase for you Pelmar Eng Ltd and two other knowledge enhancing articles
I am Bernard. I am a C Programming Assignment Help Expert at programminghomeworkhelp.com. I hold a Ph.D. in Computer Science from, University of Leeds, UK. I have been helping students with their homework for the past 12 years. I solve assignments related to C Programming.
Visit programminghomeworkhelp.com or email support@programminghomeworkhelp.com.You can also call on +1 678 648 4277 for any assistance with C Programming assignments.
#Code2Create series: C++ is a powerful general-purpose programming language. It can be used to develop operating systems, browsers, games, and so on. C++ supports different ways of programming like procedural, object-oriented, functional, and so on.Start your programming journey and join us to learn C++ basics!
by Google Developers Group and Women Tech-markers Kuwait chapter:
Instagram and Twitter: @GDGWTMKUWAIT
C++ and OOPS Crash Course by ACM DBIT | Grejo JobyGrejoJoby1
The slides from the C++ and OOPS Crash Course conducted for ACM DBIT by Grejo Joby.
Learn the concepts of OOPS and C++ Programming in the shortest time with these notes.
Land of Pyramids, Petra, and Prayers - Egypt, Jordan, and Israel Tourppd1961
This is the presentation of photos and history of Land of Pyramids, Petra, and Prayers from our Egypt, Jordan, and Israel Tour during February, 2020. This was prepared and presented to the family and friends on 19th July, 2020.
This is an overview of C++ (based on 1999 / 2003 standard) and its use in Object Oriented Programming. The presentation assumes that the audience knows C programming.
This presentation was made in PRISM workshop on Technology Innovations and Trends in IT in the second decade of 21st century. The agenda is from IEEE Computer Society.
This presentation as made as a tutorial at NCVPRIPG (http://www.iitj.ac.in/ncvpripg/) at IIT Jodhpur on 18-Dec-2013.
Kinect is a multimedia sensor from Microsoft. It is shipped as the touch-free console for Xbox 360 video gaming platform. Kinect comprises an RGB Camera, a Depth Sensor (IR Emitter and Camera) and a Microphone Array. It produces a multi-stream video containing RGB, depth, skeleton, and audio streams.
Compared to common depth cameras (laser or Time-of-Flight), the cost of a Kinect is quite low as it uses a novel structured light diffraction and triangulation technology to estimate the depth. In addition, Kinect is equipped with special software to detect human figures and to produce its 20-joints skeletons.
Though Kinect was built for touch-free gaming, its cost effectiveness and human tracking features have proved useful in many indoor applications beyond gaming like robot navigation, surveillance, medical assistance and animation.
The new standard for C++ language has been signed in 2011. This new (extended) language, called C++11, has a number of new semantics (in terms of language constructs) and a number of new standard library support. The major language extensions are discussed in this presentation. The library will be taken up in a later presentation.
1. How to define an integer constant in C?
This is a tricky issue with a number of options available in C. They include:
3. Explicit use of literal
4. Use of preprocessor #define
5. Use of enum
6. Use of constant int without or with address references
The following table shows a comparison for the above options in terms of CPP, CC and GDB:
Constant Option C Preprocessor C Compiler C Debugger
Integer Literal • Does not see any • Sees a Literal • No Debugger Symbol
Literal or Symbol • Replaces in Expressions Entry
(10) • No Memory Binding
Define Constant • Sees a Symbol • Sees a Literal • No Debugger Symbol
• Replaces Textually • Replaces in Expressions Entry
#define TEN 10 • No Memory Binding
Enum Literal • Does not see any • Sees a Symbol • Debugger Symbol with
Literal or Symbol • Symbol is Constant Constant Value
enum { TEN = 10 }; • Replaces in Expressions • Address Operation on
• No Memory Binding Symbol an Error
Created; and is Not
allowed
Constant Integer • Does not see any • Sees a Symbol • Debugger Symbol with
Literal or Symbol • Symbol is Constant Constant Value
const int TEN = 10; • Replaces in Expressions • Address Operation on
• No Memory Binding Symbol an Error
Created; but is allowed
Constant Integer • Does not see any • Sees a Symbol • Debugger Symbol with
(Address Used) Literal or Symbol • Symbol is Constant Constant Value
• Replaces in Expressions • Address Operation on
const int TEN = 10; for direct use; indirect Symbol allowed
&TEN; use may not be replaced
• Memory Binding Created
in Constant Segment
Next, we illustrate the above with a code below:
#define u 1 // u: Symbol - No. Memory - No
enum { v = 1 }; // v: Symbol - No. Memory - No; Disallowed
const int w = 1; // w: Symbol - Yes. Memory - No; Allowed
const int x = 1; // x: Symbol - Yes. Memory - Yes (Const Segment)
const int *p = &x; // p: Symbol - Yes. Memory - Yes (Data / Static Segment)
void main()
{
// LITERAL
int a[1];
a[0] = 1;
// DEFINE CONSTANT
// 'u' is replaced by CPP
// Expression '&u' is illegal in CPP
// Symbol 'u' is undefined in Debugger
int b[u];
b[0] = u;
// ENUM LITERAL
// 'v' is replaced by CPP
// Expression '&v' is illegal in CPP
// Symbol 'v' is defined in Debugger
int c[v];
2. c[0] = v;
// CONST INT
// 'w' is replaced by CPP
// Expression '&w' is legal in CPP
// Symbol 'w' is defined in Debugger
// Expression '&w' is undefined in Debugger
int d[w];
d[0] = w;
// CONST INT - ADDRESS TAKEN
// 'x' is replaced by CPP
// Expression '&x' is legal in CPP
// Symbol 'x' is defined in Debugger
// Expression '&x' is defined in Debugger
// Reference to 'x' may not be optimized
int e[x];
e[0] = *p;
return;
}
First let us take a look into the CPP output to understand what is actually ‘seen’ by the C
Compiler. The large number of blank lines is due to omitted comment lines from the source.
#line 1 "d:personal_transparent programming_projectsdefine
constantsdefine constantsmain.cxx"
enum { v = 1 };
const int w = 1;
const int x = 1;
const int *p = &x;
void main()
{
int a[1];
a[0] = 1;
int b[1];
b[0] = 1;
int c[v];
c[0] = v;
int d[w];
d[0] = w;
int e[x];
e[0] = *p;
return;
}
Note that the #define symbol ‘u’ has completely disappeared from the source.
Next let us take a look at the Debug Assembly for the code. This tells us about:
7. Constant folding / propagation
8. The lack of optimizations and
9. Memory binding, wherever applicable. These have been highlighted
; Listing generated by Microsoft (R) Optimizing Compiler Version 14.00.50727.42
TITLE d:Personal_Transparent Programming_ProjectsDefine
ConstantsDefine ConstantsMain.cxx
.686P
.XMM
include listing.inc
.model flat
4. ; 31 :
; 32 : // CONST INT
; 33 : // 'w' is replaced by CPP
; 34 : // Expression '&w' is legal in CPP
; 35 : // Symbol 'w' is defined in Debugger
; 36 : // Expression '&w' is undefined in Debugger
; 37 : int d[w];
; 38 : d[0] = w;
mov DWORD PTR _d$[ebp], 1
; 39 :
; 40 :
; 41 : // CONST INT - ADDRESS TAKEN
; 42 : // 'x' is replaced by CPP
; 43 : // Expression '&x' is legal in CPP
; 44 : // Symbol 'x' is defined in Debugger
; 45 : // Expression '&x' is defined in Debugger
; 46 : // Reference to 'x' may not be optimized
; 47 : int e[x];
; 48 : e[0] = *p;
mov eax, DWORD PTR ?p@@3PBHB ; p
mov ecx, DWORD PTR [eax]
mov DWORD PTR _e$[ebp], ecx
; 49 :
; 50 : // Test(a[0], b[0], c[0], d[0], e[0]);
; 51 :
; 52 : return;
; 53 : }
xor eax, eax
push edx
mov ecx, ebp
push eax
lea edx, DWORD PTR $LN9@main
call @_RTC_CheckStackVars@8
pop eax
pop edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0
npad 2
$LN9@main:
DD 5
DD $LN8@main
$LN8@main:
DD -8 ; fffffff8H
DD 4
DD $LN3@main
DD -20 ; ffffffecH
DD 4
DD $LN4@main
DD -32 ; ffffffe0H
DD 4
DD $LN5@main
DD -44 ; ffffffd4H
DD 4
DD $LN6@main
DD -56 ; ffffffc8H
DD 4
DD $LN7@main
$LN7@main:
DB 101 ; 00000065H
5. DB 0
$LN6@main:
DB 100 ; 00000064H
DB 0
$LN5@main:
DB 99 ; 00000063H
DB 0
$LN4@main:
DB 98 ; 00000062H
DB 0
$LN3@main:
DB 97 ; 00000061H
DB 0
_main ENDP
_TEXT ENDS
END
Please note that unless the address is taken the const int option has all the advantages of the
other schemes and gives rise to the same code (as in other cases). In addition, it can make the
constant symbol visible at the debugger. Interestingly, if a[0], b[0] etc are used somewhere, then
the above codes for their initialization may also get optimized out (unless they are reassigned
some other value at some other place). The same may apply to initialization via *p provided p is
not reassigned in the meanwhile.
Moral: Use const int and do not take its address.