n the halcyon days of early 2005, a project was launched to bring long overdue native Unicode and internationalization support to PHP. It was deemed so far reaching and important that PHP needed to have a version bump. After more than 4 years of development, the project (and PHP 6 for now) was shelved. This talk will introduce Unicode and i18n concepts, explain why Web needs Unicode, why PHP needs Unicode, how we tried to solve it (with examples), and what eventually happened. No sordid details will be left uncovered.
This lecture slide contains:
1. Regular Languages
2. Regular Operations
3. Closure of regular languages
4. Regular expression
5. Precedence of regular operations
6. RE for different languages
7. RE to NFA conversion
8. DFA to GNFA to RE conversion
It consists of important different concepts related to PL/SQL that are covered like the Basic structure of PL/SQL block, Variables and Constants in PL/SQL, Control Structures i.e., Conditional, Iterative, and Sequential Control, Procedure and Function, Cursors and its Types, Applications of implicit and explicit cursors, Triggers and its Types and Exception Handling.
This lecture slide contains:
1. Regular Languages
2. Regular Operations
3. Closure of regular languages
4. Regular expression
5. Precedence of regular operations
6. RE for different languages
7. RE to NFA conversion
8. DFA to GNFA to RE conversion
It consists of important different concepts related to PL/SQL that are covered like the Basic structure of PL/SQL block, Variables and Constants in PL/SQL, Control Structures i.e., Conditional, Iterative, and Sequential Control, Procedure and Function, Cursors and its Types, Applications of implicit and explicit cursors, Triggers and its Types and Exception Handling.
Automata theory - describes to derives string from Context free grammar - derivation and parse tree
normal forms - Chomsky normal form and Griebah normal form
A quick tutorial on what debuggers are and how to use them. We present a debugging example using GDB. At the end of this tutorial, you will be able to work your way through a crash and analyze the cause of the error responsible for the crash.
As a result of an engine rewrite with focus on more efficient data structures, PHP 7 offers much improved performance and memory usage. This session describes important aspects of the new implementation and how it compares to PHP 5. A particular focus will be on the representation of values, arrays and objects.
Automata theory - describes to derives string from Context free grammar - derivation and parse tree
normal forms - Chomsky normal form and Griebah normal form
A quick tutorial on what debuggers are and how to use them. We present a debugging example using GDB. At the end of this tutorial, you will be able to work your way through a crash and analyze the cause of the error responsible for the crash.
As a result of an engine rewrite with focus on more efficient data structures, PHP 7 offers much improved performance and memory usage. This session describes important aspects of the new implementation and how it compares to PHP 5. A particular focus will be on the representation of values, arrays and objects.
PHP is a relatively easy language to learn if you are familiar with HTML/CSS. Here, and following, are the presentations to familiarize yourself with PHP/MySQL and HTML Basics.
Quick, what do memcache, MogileFS, and Gearman have in common? They are scalable, distributed technologies, and they can also interface with PHP, your ubiquitous web development language. Digg uses all 3 (and a few more) in its quest for social news domination, and this presentation shares what we’ve learned about them and how they are best utilized with PHP.
Consórcio realiza consta da relação das administradoras de consórcios autoriz...Jessica R.
FONTE: INSTITUIÇÕES FINANCEIRAS (O TEOR DAS INFORMAÇÕES É DE RESPONSABILIDADE DA RESPECTIVA INSTITUIÇÃO/EMPRESA, DE ACORDO COM A REGULAMENTAÇÃO EM VIGOR)
Perfil sociodemográfico de los internautas 2013 - ONTSIAritz Pérez
El informe “Perfil sociodemográfico del Internauta 2013” estudia a la población española en cuanto al número de internautas, frecuencia de uso de Internet, tipo de actividades realizadas por los usuarios en la Red ,así como la evolución de estos indicadores en los últimos años.
Además se recoge información sobre la intensidad de uso de Internet según ciertas características sociodemográficas de los españoles.
Introduction to what Unicode support in PHP6 means and how it will change the way PHP developers work. Presented at the 3rd International TYPO3 Conference 2007 in Karlsruhe, Germany.
our application is great – and popular. You have translation efforts underway, everything is going well – and wait a minute, what’s the report of strange question mark characters all over the page? Unicode is pain. UTF-32, UTF-16, UTF-8 and then something else is thrown in the mix … Multibyte and codepoints, it all sounds like greek. But it doesn’t have to be so scary. PHP support for Unicode has been improving, even without native unicode string support. Learn the basics of unicode is and how it works, why you would add support for it in your application, how to deal with issues, and the pain points of implementation.
How To Build And Launch A Successful Globalized App From Day One Or All The ...agileware
Significant compromises are often made taking a product to market that cause downstream pain—success can mean endless hours re-architecting and retrofitting to go global, get past 508 compliance at universities or integrate partners. The good news is there are freely available technologies and strategies to avoid the pain. Learn from Zimbra’s experiences with ZCS and Zimbra Desktop (an offline-capable AJAX email application) including a checklist of do’s and don’ts and a deep dive into: i18n and l10n, 508 compliance (Americans with Disabilities Act), skinning, templates, time-date formatting and more.
From http://en.oreilly.com/oscon2008/public/schedule/detail/4834
Palestra dada por Andrei Zmievski no CONAPHP 2008 - Congresso Nacional de PHP que ocorreu em São Paulo nos dias 18 e 19 de Outubro dentro do CONISLI 2008
COMPUTER LANGUAGES AND THERE DIFFERENCE Pavan Kalyan
In this ppt you will understand the difference among languages and You will know what is necessary for a language to become best in the present software filed
Desert Code Camp 2014: C#, the best programming languageJames Montemagno
Desert Code Camp 2014: C#, the best programming language.
Throughout the years many programming languages have come and gone, but C# is here to stay. It is everywhere and can run on over 2.5 Billion devices including desktop, web, servers, mobile devices, and game consoles! Come learn why I love C# so much and all of the amazing features it has to offer. This session will be action packed with so much live coding you will not know what to do!
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
A tale of scale & speed: How the US Navy is enabling software delivery from l...sonjaschweigert1
Rapid and secure feature delivery is a goal across every application team and every branch of the DoD. The Navy’s DevSecOps platform, Party Barge, has achieved:
- Reduction in onboarding time from 5 weeks to 1 day
- Improved developer experience and productivity through actionable findings and reduction of false positives
- Maintenance of superior security standards and inherent policy enforcement with Authorization to Operate (ATO)
Development teams can ship efficiently and ensure applications are cyber ready for Navy Authorizing Officials (AOs). In this webinar, Sigma Defense and Anchore will give attendees a look behind the scenes and demo secure pipeline automation and security artifacts that speed up application ATO and time to production.
We will cover:
- How to remove silos in DevSecOps
- How to build efficient development pipeline roles and component templates
- How to deliver security artifacts that matter for ATO’s (SBOMs, vulnerability reports, and policy evidence)
- How to streamline operations with automated policy checks on container images
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Welcome to the first live UiPath Community Day Dubai! Join us for this unique occasion to meet our local and global UiPath Community and leaders. You will get a full view of the MEA region's automation landscape and the AI Powered automation technology capabilities of UiPath. Also, hosted by our local partners Marc Ellis, you will enjoy a half-day packed with industry insights and automation peers networking.
📕 Curious on our agenda? Wait no more!
10:00 Welcome note - UiPath Community in Dubai
Lovely Sinha, UiPath Community Chapter Leader, UiPath MVPx3, Hyper-automation Consultant, First Abu Dhabi Bank
10:20 A UiPath cross-region MEA overview
Ashraf El Zarka, VP and Managing Director MEA, UiPath
10:35: Customer Success Journey
Deepthi Deepak, Head of Intelligent Automation CoE, First Abu Dhabi Bank
11:15 The UiPath approach to GenAI with our three principles: improve accuracy, supercharge productivity, and automate more
Boris Krumrey, Global VP, Automation Innovation, UiPath
12:15 To discover how Marc Ellis leverages tech-driven solutions in recruitment and managed services.
Brendan Lingam, Director of Sales and Business Development, Marc Ellis
Removing Uninteresting Bytes in Software FuzzingAftab Hussain
Imagine a world where software fuzzing, the process of mutating bytes in test seeds to uncover hidden and erroneous program behaviors, becomes faster and more effective. A lot depends on the initial seeds, which can significantly dictate the trajectory of a fuzzing campaign, particularly in terms of how long it takes to uncover interesting behaviour in your code. We introduce DIAR, a technique designed to speedup fuzzing campaigns by pinpointing and eliminating those uninteresting bytes in the seeds. Picture this: instead of wasting valuable resources on meaningless mutations in large, bloated seeds, DIAR removes the unnecessary bytes, streamlining the entire process.
In this work, we equipped AFL, a popular fuzzer, with DIAR and examined two critical Linux libraries -- Libxml's xmllint, a tool for parsing xml documents, and Binutil's readelf, an essential debugging and security analysis command-line tool used to display detailed information about ELF (Executable and Linkable Format). Our preliminary results show that AFL+DIAR does not only discover new paths more quickly but also achieves higher coverage overall. This work thus showcases how starting with lean and optimized seeds can lead to faster, more comprehensive fuzzing campaigns -- and DIAR helps you find such seeds.
- These are slides of the talk given at IEEE International Conference on Software Testing Verification and Validation Workshop, ICSTW 2022.
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfPaige Cruz
Monitoring and observability aren’t traditionally found in software curriculums and many of us cobble this knowledge together from whatever vendor or ecosystem we were first introduced to and whatever is a part of your current company’s observability stack.
While the dev and ops silo continues to crumble….many organizations still relegate monitoring & observability as the purview of ops, infra and SRE teams. This is a mistake - achieving a highly observable system requires collaboration up and down the stack.
I, a former op, would like to extend an invitation to all application developers to join the observability party will share these foundational concepts to build on:
Enhancing Performance with Globus and the Science DMZGlobus
ESnet has led the way in helping national facilities—and many other institutions in the research community—configure Science DMZs and troubleshoot network issues to maximize data transfer performance. In this talk we will present a summary of approaches and tips for getting the most out of your network infrastructure using Globus Connect Server.
Securing your Kubernetes cluster_ a step-by-step guide to success !KatiaHIMEUR1
Today, after several years of existence, an extremely active community and an ultra-dynamic ecosystem, Kubernetes has established itself as the de facto standard in container orchestration. Thanks to a wide range of managed services, it has never been so easy to set up a ready-to-use Kubernetes cluster.
However, this ease of use means that the subject of security in Kubernetes is often left for later, or even neglected. This exposes companies to significant risks.
In this talk, I'll show you step-by-step how to secure your Kubernetes cluster for greater peace of mind and reliability.
Climate Impact of Software Testing at Nordic Testing DaysKari Kakkonen
My slides at Nordic Testing Days 6.6.2024
Climate impact / sustainability of software testing discussed on the talk. ICT and testing must carry their part of global responsibility to help with the climat warming. We can minimize the carbon footprint but we can also have a carbon handprint, a positive impact on the climate. Quality characteristics can be added with sustainability, and then measured continuously. Test environments can be used less, and in smaller scale and on demand. Test techniques can be used in optimizing or minimizing number of tests. Test automation can be used to speed up testing.
9. Unicode
…is a computing industry
standard for the consistent
encoding, representation and
handling of text expressed in most
of the world's writing systems.
10. Unicode
provides a unique number
for every character:
no matter what the platform,
no matter what the program,
no matter what the language.
11. UNICODE STANDARD
❖ Developed by the Unicode Consortium
❖ Covers all major living scripts
❖ Version 6.0 has 109,000+ characters
❖ Capacity for 1 million+ characters
❖ Widely supported by standards & industry
12. FEATURES
❖ Rich property set for every character
❖ Standard, unified encodings: UTF-8/16/32
❖ Extensive rules and documents for implementation
❖ Everything works, as long as everyone follows the rules
13. UNICODE != I18N
❖ Unicode simplifies development
❖ Unicode does not fix all internationalization problems
14. TIME FORMATS
❖ USA: 4:00 P.M.
❖ France: 16.00
❖ Japan: 1600
❖ Don’t forget to identify the time zone
15. CURRENCY
❖ Symbol placement
US $12.34
❖ Symbol length (1-15) 12.345,67 €
❖ Number width 12$34€
❖ Number precision: ¥123
‣ Spain, Japan –0
‣ Mexico, Brazil – 2
‣ Egypt, Iraq –3
16. SORTING
❖ Swedish: z<ö
❖ German: ö<z
❖ Dictionary: öf < of
❖ Phonebook: of < öf
❖ Upper-first: A<a
❖ Lower-First: a<A
❖ Contractions: H < Z, but CH > CZ
❖ Expansions: OE < Œ < OF
17. CLDR
❖ Hosted by Unicode Consortium
❖ Latest release: December 2010 (CLDR 1.9)
❖ 516 locales, with 187 languages and 166 territories
20. MOJIBAKE
noun: phenomenon of incorrect, unreadable
characters shown when computer software
fails to render a text correctly according to
its associated character encoding.
39. THE PROJECT
❖ Launched in February 2005 by me at Yahoo
❖ Small group from Yahoo, Zend, and PHP development
community
❖ Design before code
40. UNICODE SUPPORT
❖ Everywhere:
‣ in the engine
‣ in the extensions
‣ in the API
41. UNICODE SUPPORT
❖ Native and complete
‣ no hacks
‣ no mishmash of external libraries
‣ no missing locales
‣ no language bias
42. ICU LIBRARY
International Components for Unicode
✓ Unicode Character Properties ✓ Formatting: Date/Time/
✓ Unicode String Class & text Numbers/Currency
processing ✓ Cultural Calendars & Time
✓ Text transformations Zones
(normalization, upper/lowercase, ✓ (230+) Locale handling
etc) ✓ Resource Bundles
✓ Text Boundary Analysis ✓ Transliterations (50+ script
(Character/Word/Sentence Break pairs)
Iterators)
✓ Complex Text Layout for Arabic,
✓ Encoding Conversions for 500+ Hebrew, Indic & Thai
legacy encodings
✓ International Domain Names
✓ Language-sensitive collation and Web addresses
(sorting) and searching
✓ Java model for locale-
✓ Unicode regular expressions hierarchical resource bundles.
✓ Thread-safe Multiple locales can be used at a
time
43. THE PROJECT
❖ Development was in a separate repository
❖ Merged into PHP tree once the basics were working
❖ Initially slated for 5.x
❖ Extensive changes necessitated a major version bump
49. STRING TYPES
❖ Unicode
‣ text
‣ default for literals, etc
❖ Binary
‣ bytes
‣ everything ∉ Unicode type
50. Conversions
Dataflow streams
s c
ng ifi
di ec
PHP
co -sp
en am
Unicode
re
st
strings
runtime encoding
request response
HTTP input binary HTTP output
encoding strings encoding
ng
fil co
i
es d
od
en
ys in
nc
te g
te
m
rip
sc
scripts filesystem
51. STRINGS
❖ String literals are Unicode
❖ String offsets work on code points
$str = " ";
// 2 code points
echo $str[1];
// result is
$str[0] = ' ';
// full string is now
52. IDENTIFIERS
❖ Unicode identifiers are allowed
class {
function ᓱᓴᓐ ᐊᒡᓗᒃᑲᖅ()
{ ... }
function !வா$ கேனச)
() { ... }
function འ"ག་%ལ།()
{ ... }
}
$ = array();
$ [' = ]'ַרעְיולּוחַ ׁשָנָהnew ;
53. FUNCTIONS
❖ Functions understand Unicode text and apply
appropriate rules
❖ i.e. case manipulation
$str = strtoupper("fußball");
// result is FUSSBALL
$str = strtolower("ΣΕΛΛΑΣ");
// result is σελλάς
56. FEATURES
❖ Locales
❖ Collation
❖ Number and Currency Formatters
❖ Date and Time Formatters
❖ Time Zones
❖ Calendars
❖ Message Formatter
❖ Choice Formatter
❖ Resource Handler
❖ Normalization
57. COLLATION
sorting
$strings = array(
"cote", "côte", "Côte", "coté",
"Coté", "côté", "Côté", "coter");
$coll = new Collator("fr_FR");
$coll-‐>sort($strings);
result
cote
côte
Côte
coté
Coté
côté
Côté
coter
58. NUMBER FORMATTING
123456.789 in en_US
❖ NumberFormatter::DECIMAL
123456.789
❖ NumberFormatter::CURRENCY
$123,456.79
❖ NumberFormatter::ORDINAL
123,457th
❖ NumberFormatter::SPELLOUT
one hundred and twenty-three thousand, four hundred
and fifty-six point seven eight nine
59. MESSAGE FORMATTING
with modifiers
$pattern = “On {0,date,full} you received
{1,number,#,##0.00} emails.”;
$args = array(time(), 1184);
$fmt = new MessageFormatter(‘en_US’, $pattern);
echo $fmt-‐>format($args);
result
On Tuesday, November 22, 2007 you received
1,184.00 emails.
62. 1. RAISED AWARENESS
❖ Spoke at multiple conferences about the project
‣ including Unicode Conference
❖ Shoved Unicode down people’s throats at every
opportunity
63. 2. CHOSE THE RIGHT TECH
❖ ICU library had everything we needed
❖ Low- and high-level functionality
❖ Good support from its developers
64. 3. UNIT TESTS
❖ Every function handling strings had to be ported
❖ Unit tests showed us where things broke
❖ Also easy to track progress
65. 4. PECL/INTL EXTENSION
❖ A lot of i18n/l10n functionality in a self-contained
extension
❖ Ensuring that it worked with PHP 5
66. 5. CODE SEGREGATION
❖ Proof-of-concept developed by only a few people
❖ Faster decisions, iteration, development
❖ Things slowed down after merging into the main tree
‣ but was necessary to spread the workload
68. 1. CHOICE OF UTF-16
Thought to be the best compromise
69. UTF-8
❖ Backward-compatible with ASCII
❖ Avoids complications of endianness
❖ Dominant UTF encoding for the Web
❖ Supported in a lot of libraries, APIs, etc
70. UTF-8, BUT…
❖ Variable-length encoding (1-4 bytes)
❖ Uses 3 bytes for BMP code points > U+07FF
❖ Not all byte sequences are valid
❖ ICU did not have many UTF-8 APIs (at the time)
‣ on-the-fly conversion is necessary
71. UTF-32
❖ Uses exactly 4 bytes for each code point
‣ directly indexable!
72. UTF-32, BUT...
❖ Uses exactly 4 bytes for each code point
‣ 4x the size of UTF-8 for majority of languages
❖ Only affordable by people from rich oil countries
❖ Still needs conversion to UTF-16 when using ICU
❖ Endianness
73. UTF-16
❖ “65,536 code points should be enough for everyone…”
❖ 2 bytes to represent all of BMP (U+0 to U+FFFF)
‣ directly indexable in that plane
❖ Internal encoding of ICU
74. UTF-16, BUT…
❖ Requires surrogate pairs for code points > U+FFFF
‣ still variable-length
❖ 2x the size of UTF-8 for Latin, Greek, Cyrillic, Armenian,
Hebrew, Arabic and other scripts
❖ Can’t be manipulated by normal C string handling
❖ Endianness
75. CHOICE OF UTF-16
❖ Thought that CJK languages would benefit from UTF-16
❖ Primary driver was the ICU APIs
❖ Problems: no direct indexing, many conversions
❖ Would probably choose UTF-8, if started over
‣ no need for decoding/encoding on the periphery
‣ can be used by C-based libraries
79. 3. LACK OF MINDSHARE
❖ Probably <10 people who understood the intricacies of
the Unicode and ICU
❖ In the end, implementation deemed too technically
difficult
❖ People were bored converting large chunks of already
working code
83. RE-ORG
❖ PHP 6 trunk was moved to a branch
❖ PHP 5.4 became the trunk
❖ Kick-started development of new features
❖ Some clean-ups and improvements from 6 back-ported
to 5.4
84. PEOPLE MATTER
❖ The project ran out of steam
‣ PHP development culture means that people work on
what they’re interested in
‣ Clearly, the Unicode/i18n implementation wasn’t
interesting enough to be viable
86. PERSISTENCE
“Those with talent, competence, energy,
and good ideas over a period of time
tend to be the main drivers behind PHP
development.”
— me
87. PERSISTENCE
“Those with talent, competence, energy,
and good ideas over a period of time
and who outlast the rest
tend to be the main drivers behind PHP
development.”
— me
88. PROGRESS
❖ No development on the Unicode branch
❖ No visible effort to develop alternatives
89. FUTURE?
❖ Lighter, gentler implementations?
‣ mbstring is clunky
‣ separate Unicode String class would also be clunky
❖ Open field for someone with a great idea, persistence,
and people skills
90. STEPPING AWAY
❖ Invalidation of several man-years of hard work is
discouraging
❖ Did not feel like pushing the project up the hill again
❖ Working on more fun stuff these days
91. LESSONS LEARNED
❖ Rewriting large existing code base is hard
❖ Making people do tedious stuff is hard
‣ make it interesting for them (game-like)
❖ Waiting for results of long iterations is hard
‣ short, results-oriented projects (if possible)
❖ Stay committed