The term “high-functioning autism” has been criticized by many individuals within the autism community, as well as by advocates and experts, for a variety of reasons. While it is not inherently offensive to everyone, there are several concerns associated with its usage that highlight potential issues.
Continue readingLooking for a Home: The search for an alternative to “Asperger’s Syndrome”
The task of finding an alternative name for what was formerly referred to as Asperger’s Syndrome is undoubtedly a complex and challenging endeavour. This challenge stems from the intricacies of capturing the essence of a unique cognitive profile within the broader autism spectrum while avoiding any unintended negative connotations or exclusionary subtext.
Continue readingEmbracing Asperger’s Syndrome: Honoring a Historical Legacy and Moving Forward
While the historical association of Hans Asperger with the Nazi regime has cast a shadow over his name, it is worth considering the case for retaining the term “Asperger’s Syndrome” and allowing the past to become a part of history. By recognizing the valuable contributions made by Asperger’s and acknowledging the unique experiences of individuals previously diagnosed with Asperger’s Syndrome, we can strike a balance between honoring the legacy and promoting inclusivity.
Continue readingEnsuring Autistic Voices Are Heard: A Call for Community Consultation on Asperger’s Syndrome
The decision to move away from using the term “Asperger’s Syndrome” has raised concerns regarding the lack of meaningful consultation with the very community it represents. Furthermore, there are suggestions that this shift has been imposed upon the community by external forces, potentially fueled by underlying tensions within the broader Neurodiversity community. In the spirit of inclusivity and empowerment, it is essential to prioritize the voices and perspectives of autistic individuals when making decisions that directly impact their identities and well-being.
Continue readingAI Dangers Highlighted by ‘Godfather of AI’: Are They Legitimate Concerns?
The Test of Commitment and The Nuances of Estimation: Lessons from the IT Trenches
Across three decades of diving deep into the intricacies of IT, from software engineering to enterprise architecture, there’s a multitude of lessons I’ve unearthed. However, two recent experiences bring to light some invaluable insights about software delivery and the broader strokes of business ethos.
Consider a scenario where your project hinges on the delivery timeline of an external firm. A firm that’s been given two years to code a mere API HTTP PUT request, with the deadline stretching from mid to end September. The stakes? The very funding of your project. Enter the vendor’s sales representative: brimming with confidence, he assures an on-time delivery. Yet, when playfully challenged with a wager to affirm this confidence, he declines. A simple bet revealing the chasm between rhetoric and conviction.
Such instances resonate with an enduring truth in software delivery and business: actions always echo louder than words. The real “test” in business is not just about meeting estimates or deadlines, but about the conviction, commitment, and authenticity behind the promises.
However, alongside this test of commitment, lies another challenge I’ve grappled with regardless of the cap I wore: estimating software delivery. Despite my extensive track record, I’ve faced moments when estimates missed the mark. And I’m not alone in this.
Early in my career, Bill Vass, another IT leader, imparted a nugget of wisdom that remains etched in my memory. He quipped, “When it comes to developer estimates, always times them by four.” This wasn’t mere cynicism, but a recognition of the myriad unpredictabilities inherent in software development, reminiscent of the broader unpredictabilities in business.
Yet, the essence isn’t about perfecting estimates. It revolves around three pillars: honesty in setting and communicating expectations; realism in distinguishing optimism from capability; and engagement to ensure ongoing dialogue through the project’s ups and downs.
In the grand tapestry of IT and business, it’s not always the flawless execution of an estimate or a delivered promise that counts. At the end of the day, an estimate is just that; an estimate. The crux lies in how we navigate the journey, armed with authenticity, grounded expectations, and unwavering engagement. These cornerstones, combined with real-world lessons, are what construct the foundation of trust, catalyse collaborations, and steer us toward true success.
Comparison of Open Source Licenses in 2023
Below is a table that compares popular open-source licenses.
License | Permissiveness | Copyleft | Patent Grant | Complexity | Attribution | Derivative & Redistribution Licensing | Examples |
---|---|---|---|---|---|---|---|
MIT License | Very high | None | No | Low | Required | Any license, No Requirement | jQuery, .NET Core |
GNU GPL | Low | Strong | No | High | Required | GPL Only | Linux kernel, WordPress |
GNU LGPL | Moderate | Weak | No | Moderate | Required | LGPL or More Permissive, Required LGPL | GTK |
Apache License 2.0 | Very high | None | Yes | Moderate | Required with changes | Any license, No Requirement | Apache HTTPD, Kafka |
BSD Licenses | Very high | None | No | Low | Varies by clause | Any license, No Requirement | FreeBSD, NetBSD |
MPL 2.0 | Moderate | File-level | No | Moderate | Required | MPL or More Permissive, Required MPL | Firefox |
Creative Commons | Varies | Varies | No | Low to Moderate | Varies by license type | Varies | Artwork, music, blogs |
Eclipse Public License | Moderate | Moderate | No | Moderate | Required | Any license, No Requirement | Eclipse IDE |
Notes:
- Permissiveness: Describes how free the users are to use, modify, and distribute the code. “Very high” means there are minimal restrictions, while “Low” means there are more restrictions.
- Copyleft: Describes the requirement for derivative works to remain under the same license. “None” means no such requirement, “Strong” means a strict requirement, and “Weak” or “File-level” means only some parts (e.g., modified files) need to be under the same license.
- Patent Grant: Indicates if the license grants patent rights from the contributors to the users.
- Complexity: Indicates the difficulty in understanding, applying, and using the license.
- Attribution: Refers to the requirement of giving credit to the original authors. If the license requires attribution only with changes, it means that users must mention changes they made when redistributing the code.
- Derivative & Redistribution Licensing: Conditions under which modified works or redistributions of original content must operate.
The difference between license and licence
The difference between “license” and “licence” is primarily regional:
- License (used both as a noun and verb in American English)
- Example (noun): “He has a driver’s license.”
- Example (verb): “The software is licensed under MIT.”
- Licence (British English noun) and License (British English verb)
- Example (noun, UK): “He has a driving licence.”
- Example (verb, UK): “The software is licensed under MIT.”
In essence, in American English, “license” serves as both the noun and verb form. In contrast, British English differentiates between the two: “licence” is the noun, and “license” is the verb. However, it’s crucial to remember the context and audience when writing, as using the appropriate form can enhance clarity and adherence to regional language standards.
Brief Guide to Open Source Licenses in 2023
Open source licenses allow developers to share their code with the public while also dictating how that code can be used, modified, and distributed. Different licenses cater to various philosophies and use cases. Here’s a comparison of some popular open source licenses:
- MIT License (MIT)
- Advantages:
- Very permissive: allows reuse in any project, including proprietary ones.
- Simple and easy to understand.
- Disadvantages:
- Doesn’t ensure that derivative works are open sourced.
- Popularity and Usage: One of the most popular licenses, especially for small projects and libraries. Examples: jQuery, .NET Core.
- Advantages:
- GNU General Public License (GPL)
- Advantages:
- Ensures that derivative works remain open source (strong copyleft).
- Protects the freedoms of end users.
- Disadvantages:
- Can be seen as restrictive, especially for commercial software.
- Version incompatibilities (e.g., GPLv2 vs GPLv3).
- Popularity and Usage: Used by many significant projects. Examples: Linux kernel (GPLv2), WordPress, and GNU tools.
- Advantages:
- GNU Lesser General Public License (LGPL)
- Advantages:
- Similar to GPL but more permissive for libraries. Libraries under LGPL can be used in proprietary software.
- Disadvantages:
- Still requires derivative works or modifications to the library itself to be open sourced.
- Popularity and Usage: Suitable for libraries that want to be more friendly to commercial software. Examples: GTK.
- Advantages:
- Apache License 2.0
- Advantages:
- Permissive like MIT.
- Express grant of patent rights from contributors to users.
- Requires a change log for modifications, ensuring downstream users can track alterations.
- Disadvantages:
- Slightly more complicated than MIT.
- Popularity and Usage: Used by many Apache Software Foundation projects and others. Examples: Apache HTTPD, Apache Kafka.
- Advantages:
- BSD Licenses (e.g., 2-clause, 3-clause)
- Advantages:
- Very permissive.
- Simple and concise.
- Disadvantages:
- The “BSD advertising clause” in the original BSD license led to complications (and eventually was removed in the 2-clause and 3-clause versions).
- Popularity and Usage: The FreeBSD, NetBSD, and OpenBSD operating systems use variations of the BSD license.
- Advantages:
- Mozilla Public License 2.0 (MPL 2.0)
- Advantages:
- File-level copyleft: Individual files that are modified must remain under MPL, but new files or works that only link to MPL-covered software do not.
- Disadvantages:
- More intricate than MIT or BSD licenses.
- Popularity and Usage: Used by Mozilla projects like Firefox.
- Advantages:
- Creative Commons Licenses
- Advantages:
- Flexible suite of licenses catering to various needs, from very permissive to more restrictive.
- Not just for software, but for any kind of creative work.
- Disadvantages:
- Not intended for software, leading to potential ambiguities in that context.
- Popularity and Usage: Widely used for artwork, music, blogs, and educational materials.
- Advantages:
- Eclipse Public License (EPL)
- Advantages:
- Allows derivatives and distributions of modified works under other licenses.
- Disadvantages:
- Not as well-known as other licenses.
- Popularity and Usage: Used by Eclipse IDE and other Eclipse Foundation projects.
- Advantages:
Conclusion: Choosing a license depends on the developer’s goals. If they want maximum freedom and adaptability, MIT or BSD are excellent choices. If ensuring that derivative works remain open source is crucial, GPL might be the way to go. For something in between, MPL or LGPL could be ideal. As always, when considering licensing, it might be wise to consult with someone knowledgeable about intellectual property laws.
An Overview of Real-time Video Analysis with Amazon Rekognition
Amazon Rekognition Video offers real-time video analysis for streaming videos, and it’s tailored to handle video streams seamlessly. Using Rekognition Video, you can identify and recognize faces in real-time, detect unsafe content, and track people, among other features.
Here’s how Amazon Rekognition works with video streams:
1. Integration with Amazon Kinesis Video Streams
Rekognition Video is integrated with Amazon Kinesis Video Streams, which captures, processes, and stores video streams for analytics and machine learning. Here’s a basic flow:
- Capture: Stream your video using Kinesis Video Streams.
- Analyze: Use Rekognition Video to process the stream and analyze the content.
- Act: Obtain insights in real-time and act on them, like triggering alerts.
2. Key Features
2.1. Real-time Face Recognition
- Recognize faces: You can identify persons of interest in real-time.
- Face search: You can match faces from the live video against a database of face images that you’ve stored.
- Face metadata: Extract attributes like gender, age range, emotions, and more.
2.2. Person Tracking
Track persons even when they are partially hidden from view in your video, such as when they go behind an object. This powerful feature offers:
- Robustness: Even when a person is partially obscured, such as when they walk behind a piece of furniture or another person, the system can continue to track their movement.
- Pathing: Gain insights into the trajectories individuals take within a video frame. This can be especially useful in understanding patterns in crowded places or monitoring specific zones.
- Integration with other features: Combine person tracking with facial recognition to not only track an individual but also identify them. This can be beneficial for security or access control purposes.
- Use cases: From surveillance systems to customer behavior analysis in retail environments, the applications of person tracking are vast and versatile.
2.3. Unsafe Content Detection
Identify potentially unsafe or inappropriate content in your video streams. This feature’s capabilities include:
- Real-time Monitoring: Scan live video streams to detect and flag any content that may be deemed inappropriate, ensuring timely interventions.
- Classification: The content is classified into various categories, such as violence, nudity, or any other custom category, allowing for nuanced content filtering.
- Contextual Analysis: Beyond just object and scene detection, the system understands the context. This helps reduce false positives where a potentially unsafe object might be present but in a harmless context.
- Applications: This feature can be crucial for content platforms that need to maintain community guidelines, for businesses that want to ensure their advertisement appears alongside safe content, or for parental controls in digital media offerings.
- Customization: Over time, you can train the system to better understand what you categorize as “unsafe” based on feedback and specific requirements.
3. Setting It Up
Here’s a high-level approach to setting up real-time video analysis:
- Set up a Kinesis Video Stream: This will be your source of video data.
- Connect your video source: This could be a camera or any other source of video data.
- Use Kinesis Video SDK: This SDK helps stream the video to your Kinesis Video Stream.
- Create a Rekognition Video Stream Processor: This will process your video and analyze it. Set up the specific features you want (like face detection).
- Start the stream processor: Once started, Rekognition will begin analyzing the video content in real-time.
- Handle the results: The analyzed results can be sent to another Kinesis stream (like Kinesis Data Streams). From there, you can act on the results, like triggering Lambda functions or storing insights in a database.
4. Considerations
- Latency: Real-time analysis introduces some latency. Ensure that this latency is acceptable for your application.
- Cost: Streaming video analysis can be more costly than batch processing of stored videos. Monitor usage and set up alerts.
- API Limits: Understand the limits of the Rekognition Video API to avoid throttling.
In conclusion, Amazon Rekognition Video provides a powerful platform for real-time video analysis when paired with Kinesis Video Streams. It enables applications in security, monitoring, user engagement, content moderation, and more. Always refer to the official AWS documentation for the most up-to-date and detailed information.