Mark Twain said that history doesn't repeat but that it often rhymes. This is true not only of the history of civilization but also of software development.
The history of computing, like anything, has recurring patterns, cycles, and trends. Some of them are quite large, others are tiny. Some are significant and others merely amusing. In this session we will look at some of these from the early days of ENIAC all the way to modern mobile phones. We will plot them out over the decades, observe their cycles, and come to understand them. Then, grounded in that history, we will explore some possible outcomes for the next few years and wax poetic about what the more distant future might bring.
If you want to know history and are willing to risk predicting the future, come and join us.
Women Of Innovation® 2016 Honoree Bios & Event ProgramPaige Rasid
Honoring the energy, creativity and success of
sixty-five women and students from Connecticut’s science
and technology community.
In this program, we salute this year’s Women of Innovation who are working as scientists, engineers, and entrepreneurs for their contributions to their organizations or schools.
Their biographies in this program are testimony to their
remarkable careers, fields of study, and their professional
and personal accomplishments. We also thank the individuals who nominated these outstanding women and all who are here to celebrate their achievements.
After twelve years, there is an alumnae group of nearly
600 Women of Innovation!
By gathering this community of accomplished women, we continue to promote, support and encourage young women and girls to pursue STEM careers and to foster a collaborative network. www.CT.org
Women Of Innovation® 2016 Honoree Bios & Event ProgramPaige Rasid
Honoring the energy, creativity and success of
sixty-five women and students from Connecticut’s science
and technology community.
In this program, we salute this year’s Women of Innovation who are working as scientists, engineers, and entrepreneurs for their contributions to their organizations or schools.
Their biographies in this program are testimony to their
remarkable careers, fields of study, and their professional
and personal accomplishments. We also thank the individuals who nominated these outstanding women and all who are here to celebrate their achievements.
After twelve years, there is an alumnae group of nearly
600 Women of Innovation!
By gathering this community of accomplished women, we continue to promote, support and encourage young women and girls to pursue STEM careers and to foster a collaborative network. www.CT.org
Each month, join us as we highlight and discuss hot topics ranging from the future of higher education to wearable technology, best productivity hacks and secrets to hiring top talent. Upload your SlideShares, and share your expertise with the world!
Not sure what to share on SlideShare?
SlideShares that inform, inspire and educate attract the most views. Beyond that, ideas for what you can upload are limitless. We’ve selected a few popular examples to get your creative juices flowing.
Are you tired of TDD workshops that make you do boring things like calculate bowling scores and prime factors or demonstrate how to win at the game of life? If so, this is the session for you! In this TDD workshop we will be building the domain model for EverCraft -- a new MMORPG from Blizzards of the Coast. We have lots of story cards prepared covering features from combat to magic, classes to spells, and races to items. Plus, we'll be defining some of these cards during the session in case you want that +9 knife of ogre slaying or enjoy casting magic missile at the darkness.
This workshop is language agnotisic and for all levels of developers. The focus is on TDD and emergent design but pair programming will be covered as well. The only requirement is that you bring a laptop and that you be able to test-drive you code with your language of choice. When you are done you will emerge a better programmer for the experience but there is small chance you will have a craving for Cheetos and Mountain Dew.
Machine Learning for Fun - Finding Bigfoot with the Nexosis APIGuy Royse
Bigfoot has been a staple of American folklore since the 19th century. The stories originate from Native Americans in the Pacific Northwest and likely go back centuries or more. The term sasquatch itself is an Anglicized derivative of the Halkomelem word sásq'ets.
Many people are convinced that Bigfoot is real. Others suggest that he is a cultural phenomenon. Some just want to believe. There is even a group, the Bigfoot Field Researchers Organization, that tracks Bigfoot sightings. They have data— thousands of reports—available on the Internet. And, where there is data, we can apply the power of machine learning.
Let’s get to the bottom of this mystery! To do it, we are going to use the Nexosis Machine Learning API which makes it easy for developers to focus on their applications instead of the details of data science. With the API, we’ll forecast the predicted number of sightings for the coming months and years. We’ll also measure the impact of key cultural phenomena—primarily the airing of the X-Files—on Bigfoot sightings.
So, come and learn how easy it is to use our API, the types of problems you can solve with it, and how to use it in your application over HTTP or from your favorite programming language. There will even be a live demo.
The truth is out there.
It’s Friday night and you’re making your character for a fun evening of gaming. You’ve rolled your abilities and even got two 18s. But what class should you pick given your rolls? If you pick that class, is your character playable? What kind of character have you created?
Or maybe you’re a game master and you’ve been running a game for some time. Do you need to know how much treasure that dragon horde should have? Or are you wanting to figure out how many encounters your players will make it through in an evening so you can prepare enough material?
These important questions can all be answered using machine learning.
Many developers want to make use of machine learning in their applications but aren’t sure what sorts of problems can be solved with it. This talk will explain the sorts of problems that can be solved, what data is required to solve them, and what the results look like. And, we’ll explore it using fun and geeky examples. We will cover six major types of problems that machine learning can solve: regression, forecasting, impact analysis, classification, clustering, and anomaly detection. When we’re done, you’ll have a basic understanding of what machine learning can do and what you might want to use it for. I might even be something other than role-playing!
jQuery & 10,000 Global Functions: Working with Legacy JavaScriptGuy Royse
Long ago, in the late days of the first Internet boom, before jQuery, before Underscore, before Angular, there was a web application built by a large corporation. This application was written as a server-side application using server-side technology like Java or PHP. A tiny seed of JavaScript was added to some of the pages of this application to give it a little sizzle.
Over the ages, this tiny bit of JavaScript grew like kudzu. Most of it was embedded in the HTML in
Mad Computer Science: Testing COBOL with RSpecGuy Royse
Really? COBOL? Yes, really. There are lots of enterprisey things that just aren't test-driven because of a lack of tooling. COBOL is one of them and it misses out on all the benefits of TDD. But it doesn't have to. In this session I will show how I used RSpec to test-drive MicroFocus COBOL on Windows and demo it with a simple kata. In the process you'll learn a
smattering of COBOL and how to apply the same basic technique to test-drive other difficult to test technologies.
Programming on Bare Metal: Controlling Circuits with CodeGuy Royse
The Arduino is the present day equivalent to the Altair 8800. Like the Altair, an entire generation of hobbyists will discover the fundamentals of a new paradigm where computing is smeared throughout your physical environment. This little device deserves your attention as it is helping define this exciting new space. In this session you will learn how to program on this remarkable platform, learn a little electronics, and control something in the real world with code. But don't be surprised if, after attending, you have an urge to go buy an Arduino, a soldering iron, and some components and start hacking.
Are you tired of TDD workshops that make you do boring things like calculate
bowling scores and prime factors or demonstrate how to win at the game of
life? If so, this is the session for you! In this TDD workshop we will be
building the domain model for EverCraft -- a new MMORPG from Blizzards of the
Coast. We have lots of story cards prepared covering features from combat to
magic, classes to spells, and races to items. Plus, we'll be defining some of
these cards during the session in case you want that +9 knife of ogre slaying
or enjoy casting magic missile at the darkness.
This workshop is language agnotisic and for all levels of developers. The
focus is on TDD and emergent design but pair programming will be covered as
well. The only requirement is that you bring a laptop and that you be able to
test-drive you code with your language of choice. When you are done you will
emerge a better programmer for the experience but there is small chance you
will have a craving for Cheetos and Mountain Dew.
Each month, join us as we highlight and discuss hot topics ranging from the future of higher education to wearable technology, best productivity hacks and secrets to hiring top talent. Upload your SlideShares, and share your expertise with the world!
Not sure what to share on SlideShare?
SlideShares that inform, inspire and educate attract the most views. Beyond that, ideas for what you can upload are limitless. We’ve selected a few popular examples to get your creative juices flowing.
Are you tired of TDD workshops that make you do boring things like calculate bowling scores and prime factors or demonstrate how to win at the game of life? If so, this is the session for you! In this TDD workshop we will be building the domain model for EverCraft -- a new MMORPG from Blizzards of the Coast. We have lots of story cards prepared covering features from combat to magic, classes to spells, and races to items. Plus, we'll be defining some of these cards during the session in case you want that +9 knife of ogre slaying or enjoy casting magic missile at the darkness.
This workshop is language agnotisic and for all levels of developers. The focus is on TDD and emergent design but pair programming will be covered as well. The only requirement is that you bring a laptop and that you be able to test-drive you code with your language of choice. When you are done you will emerge a better programmer for the experience but there is small chance you will have a craving for Cheetos and Mountain Dew.
Machine Learning for Fun - Finding Bigfoot with the Nexosis APIGuy Royse
Bigfoot has been a staple of American folklore since the 19th century. The stories originate from Native Americans in the Pacific Northwest and likely go back centuries or more. The term sasquatch itself is an Anglicized derivative of the Halkomelem word sásq'ets.
Many people are convinced that Bigfoot is real. Others suggest that he is a cultural phenomenon. Some just want to believe. There is even a group, the Bigfoot Field Researchers Organization, that tracks Bigfoot sightings. They have data— thousands of reports—available on the Internet. And, where there is data, we can apply the power of machine learning.
Let’s get to the bottom of this mystery! To do it, we are going to use the Nexosis Machine Learning API which makes it easy for developers to focus on their applications instead of the details of data science. With the API, we’ll forecast the predicted number of sightings for the coming months and years. We’ll also measure the impact of key cultural phenomena—primarily the airing of the X-Files—on Bigfoot sightings.
So, come and learn how easy it is to use our API, the types of problems you can solve with it, and how to use it in your application over HTTP or from your favorite programming language. There will even be a live demo.
The truth is out there.
It’s Friday night and you’re making your character for a fun evening of gaming. You’ve rolled your abilities and even got two 18s. But what class should you pick given your rolls? If you pick that class, is your character playable? What kind of character have you created?
Or maybe you’re a game master and you’ve been running a game for some time. Do you need to know how much treasure that dragon horde should have? Or are you wanting to figure out how many encounters your players will make it through in an evening so you can prepare enough material?
These important questions can all be answered using machine learning.
Many developers want to make use of machine learning in their applications but aren’t sure what sorts of problems can be solved with it. This talk will explain the sorts of problems that can be solved, what data is required to solve them, and what the results look like. And, we’ll explore it using fun and geeky examples. We will cover six major types of problems that machine learning can solve: regression, forecasting, impact analysis, classification, clustering, and anomaly detection. When we’re done, you’ll have a basic understanding of what machine learning can do and what you might want to use it for. I might even be something other than role-playing!
jQuery & 10,000 Global Functions: Working with Legacy JavaScriptGuy Royse
Long ago, in the late days of the first Internet boom, before jQuery, before Underscore, before Angular, there was a web application built by a large corporation. This application was written as a server-side application using server-side technology like Java or PHP. A tiny seed of JavaScript was added to some of the pages of this application to give it a little sizzle.
Over the ages, this tiny bit of JavaScript grew like kudzu. Most of it was embedded in the HTML in
Mad Computer Science: Testing COBOL with RSpecGuy Royse
Really? COBOL? Yes, really. There are lots of enterprisey things that just aren't test-driven because of a lack of tooling. COBOL is one of them and it misses out on all the benefits of TDD. But it doesn't have to. In this session I will show how I used RSpec to test-drive MicroFocus COBOL on Windows and demo it with a simple kata. In the process you'll learn a
smattering of COBOL and how to apply the same basic technique to test-drive other difficult to test technologies.
Programming on Bare Metal: Controlling Circuits with CodeGuy Royse
The Arduino is the present day equivalent to the Altair 8800. Like the Altair, an entire generation of hobbyists will discover the fundamentals of a new paradigm where computing is smeared throughout your physical environment. This little device deserves your attention as it is helping define this exciting new space. In this session you will learn how to program on this remarkable platform, learn a little electronics, and control something in the real world with code. But don't be surprised if, after attending, you have an urge to go buy an Arduino, a soldering iron, and some components and start hacking.
Are you tired of TDD workshops that make you do boring things like calculate
bowling scores and prime factors or demonstrate how to win at the game of
life? If so, this is the session for you! In this TDD workshop we will be
building the domain model for EverCraft -- a new MMORPG from Blizzards of the
Coast. We have lots of story cards prepared covering features from combat to
magic, classes to spells, and races to items. Plus, we'll be defining some of
these cards during the session in case you want that +9 knife of ogre slaying
or enjoy casting magic missile at the darkness.
This workshop is language agnotisic and for all levels of developers. The
focus is on TDD and emergent design but pair programming will be covered as
well. The only requirement is that you bring a laptop and that you be able to
test-drive you code with your language of choice. When you are done you will
emerge a better programmer for the experience but there is small chance you
will have a craving for Cheetos and Mountain Dew.
One the most misunderstood concepts in JavaScript is prototypal inheritance. Prototypal inheritance is nothing like classical inheritance but is actually quiet easy to grasp once you let go of the bounds of classes and instances. In this session we will explore the nature of JavaScript objects, how they inherit from one another, and why everyone thought this prototype stuff was so hard in the first place. If you want to up your game and really understand how JavaScript inheritance works, come check out this session.
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.
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.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Essentials of Automations: The Art of Triggers and Actions in FMESafe Software
In this second installment of our Essentials of Automations webinar series, we’ll explore the landscape of triggers and actions, guiding you through the nuances of authoring and adapting workspaces for seamless automations. Gain an understanding of the full spectrum of triggers and actions available in FME, empowering you to enhance your workspaces for efficient automation.
We’ll kick things off by showcasing the most commonly used event-based triggers, introducing you to various automation workflows like manual triggers, schedules, directory watchers, and more. Plus, see how these elements play out in real scenarios.
Whether you’re tweaking your current setup or building from the ground up, this session will arm you with the tools and insights needed to transform your FME usage into a powerhouse of productivity. Join us to discover effective strategies that simplify complex processes, enhancing your productivity and transforming your data management practices with FME. Let’s turn complexity into clarity and make your workspaces work wonders!
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.
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionAggregage
Join Maher Hanafi, VP of Engineering at Betterworks, in this new session where he'll share a practical framework to transform Gen AI prototypes into impactful products! He'll delve into the complexities of data collection and management, model selection and optimization, and ensuring security, scalability, and responsible use.
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfPeter Spielvogel
Building better applications for business users with SAP Fiori.
• What is SAP Fiori and why it matters to you
• How a better user experience drives measurable business benefits
• How to get started with SAP Fiori today
• How SAP Fiori elements accelerates application development
• How SAP Build Code includes SAP Fiori tools and other generative artificial intelligence capabilities
• How SAP Fiori paves the way for using AI in SAP apps
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Elevating Tactical DDD Patterns Through Object CalisthenicsDorra BARTAGUIZ
After immersing yourself in the blue book and its red counterpart, attending DDD-focused conferences, and applying tactical patterns, you're left with a crucial question: How do I ensure my design is effective? Tactical patterns within Domain-Driven Design (DDD) serve as guiding principles for creating clear and manageable domain models. However, achieving success with these patterns requires additional guidance. Interestingly, we've observed that a set of constraints initially designed for training purposes remarkably aligns with effective pattern implementation, offering a more ‘mechanical’ approach. Let's explore together how Object Calisthenics can elevate the design of your tactical DDD patterns, offering concrete help for those venturing into DDD for the first time!
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofsAlex Pruden
This paper presents Reef, a system for generating publicly verifiable succinct non-interactive zero-knowledge proofs that a committed document matches or does not match a regular expression. We describe applications such as proving the strength of passwords, the provenance of email despite redactions, the validity of oblivious DNS queries, and the existence of mutations in DNA. Reef supports the Perl Compatible Regular Expression syntax, including wildcards, alternation, ranges, capture groups, Kleene star, negations, and lookarounds. Reef introduces a new type of automata, Skipping Alternating Finite Automata (SAFA), that skips irrelevant parts of a document when producing proofs without undermining soundness, and instantiates SAFA with a lookup argument. Our experimental evaluation confirms that Reef can generate proofs for documents with 32M characters; the proofs are small and cheap to verify (under a second).
Paper: https://eprint.iacr.org/2023/1886
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...SOFTTECHHUB
The choice of an operating system plays a pivotal role in shaping our computing experience. For decades, Microsoft's Windows has dominated the market, offering a familiar and widely adopted platform for personal and professional use. However, as technological advancements continue to push the boundaries of innovation, alternative operating systems have emerged, challenging the status quo and offering users a fresh perspective on computing.
One such alternative that has garnered significant attention and acclaim is Nitrux Linux 3.5.0, a sleek, powerful, and user-friendly Linux distribution that promises to redefine the way we interact with our devices. With its focus on performance, security, and customization, Nitrux Linux presents a compelling case for those seeking to break free from the constraints of proprietary software and embrace the freedom and flexibility of open-source computing.
Pushing the limits of ePRTC: 100ns holdover for 100 daysAdtran
At WSTS 2024, Alon Stern explored the topic of parametric holdover and explained how recent research findings can be implemented in real-world PNT networks to achieve 100 nanoseconds of accuracy for up to 100 days.
14. Java Data Structures
Phone
String areaCode
String exchange
String number
Contact
String name
Address address
Phone cell
Phone home
Address
String street
String city
String state
String zipCode
16. public class Contact {
private String name;
private Phone home;
private Phone cell;
private Address address;
01
05
10
CN-CONTACT.
05 CN-NAME
PIC
CN-ADDRESS.
10 CN-ADDR-STREET
PIC
10 CN-ADDR-CITY
PIC
10 CN-ADDR-STATE
PIC
10 CN-ADDR-ZIP-CODE PIC
05 CN-HOME-PHONE.
10 CN-HOME-AREA-CD
PIC
10 CN-HOME-EXCHANGE PIC
10 CN-HOME-NUMBER
PIC
05 CN-CELL-PHONE.
CN-CELL-AREA-CD
PIC 9(3).
10 CN-CELL-EXCHANGE PIC
10 CN-CELL-NUMBER
PIC
X(40).
X(30).
X(20).
X(2).
X(5).
9(3).
9(3).
9(4).
public String getName() { return name; }
public void setName(String name) {
this.name = name;
}
... more setters and getters here ...
}
public class Phone {
private String areaCode;
private String exchange;
private String number;
... setters and getters here ...
9(3).
9(4).
}
public class Address {
private String street;
private String city;
private String state;
private String zipCode;
... setters and getters here ...
}
17. IDENTIFICATION DIVISION.
PROGRAM-ID. CONTACT-VALIDATOR.
public class ContactValidator {
private PhoneValidatorphoneValidator =
new PhoneValidator();
private AddressValidatoraddrValidator =
new AddressValidator();
PROCEDURE DIVISION
USING CN-IS-VALID, CN-CONTACT.
MAIN-LINE.
PERFORM VALIDATE-NAME.
CALL ADDRESS-VALIDATOR USING
CN-ADDRESS, WS-ADDRESS-IS-VALID.
CALL PHONE-VALIDATOR USING
CN-HOME-PHONE, WS-HOME-PH-IS-VALID
CALL PHONE-VALIDATOR USING
CN-CELL-PHONE, WS-CELL-PH-IS-VALID.
PERFORM DETERMINE-IF-VALID.
GOBACK.
VALIDATE-NAME.
MOVE ‘Y’ TO WS-NAME-IS-VALID.
IF CN-NAME IS SPACES
MOVE ‘N’ TO WS-NAME-IS-VALID.
public booleanvalidate(Contactcntct) {
boolean valid =
validateName(cntct.getName());
valid &= addrValidator.validate(
cntct.getAddress());
valid &= phoneValidator.validate(
cntct.getHome());
valid &= phoneValidator.validate(
cntct.getCell());
return valid;
DETERMINE-IF-VALID.
MOVE ‘N’ to CN-IS-VALID.
IF WS-NAME-IS-VALID IS ‘Y’ AND
WS-HOME-PH-IS-VALID IS ‘Y’ AND
WS-CELL-PH-IS-VALID IS ‘Y’ AND
WS-ADDRESS-IS-VALID IS ‘Y’
MOVE ‘Y’ TO CN-IS-VALID.
}
private void validateName(String name) {
return !StringUtils.isEmpty(name);
}
}
46. Computing Timeline
40s & 50s
60s & 70s
80s
90s
2000s
2010s
Server-side
Cloud
Browser
CICS
Terminals
Teletypes
HTML5
Mainframes
UNIX
Internet
Client
Server
UNIVAC
Z3
Mark 1
ENIAC
AJAX
Pi
Early PCs
Mobile
PCs
Client-side
???
47. Computing Timeline
40s & 50s
60s & 70s
80s
90s
2000s
2010s
???
Server-side
Cloud
Browser
CICS
Terminals
Teletypes
HTML5
Mainframes
UNIX
Internet
Client
Server
UNIVAC
Z3
Mark 1
ENIAC
AJAX
Pi
Early PCs
Mobile
PCs
?
Client-side
48. “It is not
worthwhile to try
to keep history
from repeating
itself, for man's
character will
always make the
preventing of the
repetitions
impossible.”
— Mark Twain
Where I workWhat I doBackground - COBOL through Ruby - C++, Java, & JavaScript
There’s no proof that Mark Twain said this… but so what!He who doesn’t know history is doomed to repeat it Not if you do x then y happens, so don’t do x Instead it given us insight into the present I’ve seen this movie before storyImma show you some instances of history rhyming that I have encountered in my careerAnd like Mark Twain, I might offend you with the truth.
This might seem a bit offensive if you’re a Java developer. After all..
COBOL is not well regarded in general
…and is openly mocked. Of course, this is true of Java as well…
Of course, this is true of Java as well.
But, they are used by the same customers
And the companies that own them view them in the same way
But, they have a similar architecture as well, at least in as much as how they are implemented. Let’s look at a simple problem. Validate contact information including name, address, home, and cell phone numbers.
Java has classes - typically written as something that ends in –er or –or - typically has a single entry point (execute, run, invoke, doIt) - subdivided into private helper method
COBOL has programs - single entry point - args in, args out - subdivided into paragraphs
Data is typically represented in java using beans
Data is represented using a hierarchical notation and stored in copybooksHard to build a diagram for this, easier to show the codeBut the structure is the same, with a little redundancyHowever…
The COBOL code, know for it’s verbosity is actually shorter.
Observations – Java and COBOL code are about the same size COBOL code has a smidgeon or redundancyOtherwise, they are pretty much the same
I know this is procedural code. There are better ways to write Java. But, this is how most Java is written and, in all fairness, it’s a useful metaphor.After all, what are we automating? Business processes. What did we do before we had automation?Papers moved about.
Node is cool. Wicked fast Uses JavaScript Scales like crazy How does it do that?
Typical environments are multi-threaded… like Java-- often blocked waiting on IO and shared memory-- thread are managed in pools-- some threads are blocked waiting on threads from the pool-- and don’t forget shared memory
Node has one thread, just oneDoesn’t block on IO, does it asynchronouslyEvents are propagated when the IO completes, or when the user fires oneThis makes one-thread really busy but eliminates all shared memory and all the overheadThere is another platform that worked this way…
Windows was famously single-processed single-threadedAt the core of windows is an event loop, just like in NodeApplications responded to these events and triggered code, blocking other applicationsThere was even a wonderful shared memory space.. Which was a lot of fun since apps were written in C and memory leaks/buffer overruns were a problemWordPerfect could crash Minesweeper
First off, I don’t think we are aware we’re doing it, at least not all of us, I think it just happens.What I mean is, why can’t we see that we’ve ripped of the past?Arrogance & Ignorance
Our culture, our era, our generation are enlightened It’s easy to call someone foolish for thinking the earth is flat, the sun circles the earth, and you’ll never need more than 640k of memory. But, given the time period those were reasonable conclusions earth looks flat suns looks like it circles the earth and 640k… well that was stupid People in past has the same brain as you, I tell my son that we are cave men
Want a cure for that, read Meditations by Marcus Aurelius
2nd Century BCOr read Polybius’s Histories… in there is both a cure for arrogance and I description of ignorance
Built upon ideas by Plato AristotleTri-state cycleAristocracy is made up of the wise folksUltimately, 1 some or all
People forget A by the time they get to C…-- except for that old man who everyone ignores
Prediction:Swarming is gonna be a thing…
This one’s a little different but it still has the three statesClient – all computers, islands of dataClient Server – Some of the computers, share that dataServer – one computer, all the data’s in one placeTechnology snaps to client computing when hardware/cost inovation makes something possible -> Moore’s law in effectThe hardware is interesting in this one so I wanted to explore this one more so I made chart
Look at the bottom…. Dollars,size, trendLearn the arduino, the pi, and stuff like that…What’s the point?
Mark Twain did actually say thisIt’s a lost cause… history will move where it moves because humans are broken, fallen creaturesTurns out, the title of this talk isn’t just crass, it’s also true
I don’t believe that we can change these trends, they are bigger than us and they come from us in aggregate.But, we can see them coming and position ourselves well so that we can survive and thrive.
Where I workWhat I doBackground - COBOL through Ruby - C++, Java, & JavaScript