#software engineeering
Explore tagged Tumblr posts
askagamedev · 8 months ago
Note
Under what umbrella does a camera for a 3D game tend to fall? That is, is it more of a game design concern, art direction concern, or engineering?
It's primarily a feature handled by game design and engineering. The designers figure out how the camera needs to behave for the intended player experience and then the engineers figure out how to translate those behavior rules into code.
Tumblr media
Let's say that we're working on the camera functionality for in-game cinematics for a narrative-heavy AAA game like the Witcher or Dragon Age. The cinematic designers need a solid toolbox to build cinematics with, a set of tools that they will use to create most of the cinematics of the game. That toolbox might include things like:
Look at X (cut)
Look at X (pan)
Zoom in/out
Move to point Y
Ease In/Out (acceleration control)
Camera Shake
Tumblr media
As a designer, I would expect that I would be able to activate one or more of these tools at specific time stamps (e.g. at frame 32, pan to Desmal while moving to point A and zooming in) while I script my cinematic. As an engineer, it would be my responsibility to take the description of each of these tools and create them in code. I would then integrate them into the in-game cinematic editor so that the cinematic designers can use them to create the in-game cinematics.
Similar discussions and work take place for things like what the camera should do while the player is in combat, what the camera should do while the player is exploring, and so on.
[Join us on Discord] and/or [Support us on Patreon]
Got a burning question you want answered?
Short questions: Ask a Game Dev on Twitter
Long questions: Ask a Game Dev on Tumblr
Frequent Questions: The FAQ
52 notes · View notes
side-teched · 2 years ago
Text
Javascript's not very optional "optional semicolons"
It's something we all hear about: Javascript's semicolons are optional except when they aren't. But it's actually kinda surprising how many people haven't encountered what this is referring to. So I thought I would share a real example encountered by Jr. Dev at work (well an example snippet version of what they encountered, NDAs gotta be followed and all that).
So for various reasons they needed to set up an anonymous async function and use a then to attach an async callback. They ended up with something like this:
console.log("I am a line of code that works") (async () => { console.log("I'm doing some async things") await new Promise(resolve => setTimeout(resolve, 1000)); })().then(() => { console.log("Done!") })
It's a clever little construction actually. But what's weird is that there's now an error on the first line (Firefox):
Uncaught TypeError: console.log(...) is not a function
Why is the line before borked? Like it'd make sense if the weird async bit had an error, but no, it's the entirely normal console.log call.
Well it's because Javascript doesn't always treat whitespace the same. When something is in brackets Javascript gives 0 hoots about the whitespace between it and the previous token. So what the interpreter is actually seeing is this:
console.log(...)(...).then(...)
It thinks you are trying to call the result of console.log and attach an async callback to the result of that. console.log 'returns' undefined. undefined is not a function. Hence the error "console.log(...) is not a function".
The way to solve this is to add the good ol' "optional" semicolon back into the code like this:
console.log("I am a line of code that works"); (async () => { ...
Now the interpreter knows that the first line is a complete statement, and it will no longer think you are trying to call it as a function.
Don't forget your semicolons, people!
0 notes
nommi707 · 2 months ago
Text
Blog Post #6 - Week 8
Are we slowly becoming a "cyborg world"? As humans, we are becoming more and more of a "cyborg world" than ever before, implementing different forms of technology every day, from everyday tasks to big things like carrying out jobs beyond the human capacity. In Haraway's "Cyborg Manifesto" article, they mention their take on the shift, stating that "a cyborg world might be about lived social and bodily realities in which people are not afraid of their joint kinship with animals and machines" which summarizes the fact that we are becoming more and more accepting of technology being apart of our lives, which essentially blurs the line between human and machine (356). Small devices like wearable technology, for example, smartwatches and even glasses modified with technology, are used in our lives constantly with simple tasks like knowing the time, checking the weather, and answering phone calls; a phone, but at a smaller scale. In another way, the introduction to artificial intelligence has also shaped our world, in which it has become our assistants like finding alternatives to a specific recipe or helping us solve a question that we can not find the answer to; yet, it has also began to influence the way we think and create decisions, sometimes with us relying more and more on its assistance to think in place of us. A "cyborg world" does have its benefits, but it also has its downsides, which if not taken seriously now, it can have serious impacts for how we as humans will continue to carry out our lives.
How is the role of being "female" manipulated within a male-dominated world? In one way, the role of being "female" has been tied to a specific role, often being seen and pushed by the thoughts of men, through females being seen as the "parental" figure; a mother. Riordan highlights the many aspects of being female and femininity within the world, digitally and realistically, and one thing he highlights is the role of "mother" being tied to being female. To many male figures, women are either sexualized or just seen as the maternal figure for their "kind" nature; there is rarely an in-between role, where women are sexualized for their bodies (having big enough boobs, pretty face, being thin but not too thin, etc.) and having a "tamer" role within society mainly due to the bias that women can not do the same things as men. For as long as history has been recorded, most cultures saw women as insignificant, only being the "caretaker" and "babymaker" as that was what they were only allowed to do and be capable of. Even now as a more modernized society, the role of "female" is still controlled by men, for men continue to hold power of women despite the freedom given to women to choose what they want to do.
Can the video-game industry avoid exploiting the role of "female"? For the most part, I highly doubt that the industry can move away from being overly obsessive in using the role of "female" for their benefit. This ties in with the previous question, in which being female and the role within society is more presented and manipulated based on what the male population wants it to be. Riordan mentions the role of women in the video-game world as "having no penis (lack)… having breasts (excess)… Victorian aesthetic of tiny waists and large breasts" where women are sexualized more often than not, which shows the reality that even in a modern world, men and their "desires" are still prioritized than being true to realism and even having respect to the identity of what being a female is (248). With the author, they see the problem rooting from the overall dominance men have in the software engineeering and programming fields and the lack of women in these fields, emphasizing that so long as men hold power and domination in these fields, women will continue to be overly sexualized for their bodies, catering to their audience of men. Furthermore, the exploitation of the "female" role also allows more revenue to both the games and companies behind the creation(s) of female models; when there are more female models, often being "revealing" in some form with their design, the amount of players and even money spent on the game increases significantly as it caters to what their "target population" wants. If companies can get the most money out of this decision, then they will continue to use this tactic to both dominate the video-game industry and over their competitors, even if it means having to "sacrifice" certain aspects (overall player population, game mechanics, etc.). There can be some efforts in avoiding this if these companies are willing to change, but often it is futile.
Why is Mavis Beacon so significant even though she is just a fictional character for a typing game? Mavis Beacon is a fictional character from a popular typing software, in which it taught many American children how to type on a computer efficiently through the use of practice and the ways of using a keyboard. Even though she was never a real person, aside from the creators using a real woman as the "model", she impacted millions as well as how society played out as she was the first black woman not only in the digital world as an assistant, but as well as one of the first significant black women models. Her original model was based on Renee L'Esperance, who was a Haitian-born woman and scouted during her work as a department saleswoman. Although Renee L'Esperance modelled for the creators and helped shape millions of users on the use of the keyboard, she did not actually consent for her image to be used in their product, only for a photoshoot for a magazine page. The creators of the type software not only exploited Renee, but they went against her rights, which caused her a lot of distress in her overall identity. For many, they are entitled to the "right to be forgotten", where essentially they are legally obligated to have their identity erased online, however, she was denied that right. Renee's role as a woman in the digital space was manipulated by men, both in the digital world and in real life, which adds more evidence that although women now have more rights than ever before in history, men will continue, if not, will always hold power as to how the "female" role is used and portrayed.
Haraway, D. (2006). A Cyborg Manifesto: Science, technology, and socialist-feminism in the late 20th century. In: Weiss, J., Nolan, J., Hunsinger, J., Trifonas, P. (eds) The International Handbook of Virtual Learning Environments. (pp. 354-359).
O’Riordan, K. (2006). Chapter 21 Gender, technology, and visual cyberculture: Virtually women. In D. Silver & A. Massanari (Ed.), Critical Cyberculture Studies (pp. 243-254). New York, USA: New York University Press.
Jones, J. (2024). Saving Mavis Beacon. [Documentary]
6 notes · View notes
uncontrolledfission · 1 year ago
Text
The woman responsible for the moon landing
#10 in Physics and Astronomy, 11/11/2023
Tumblr media
Pictured is Margaret Hamilton, posing next to the code that she and her team wrote to guide Apollo 11 to the moon! As the lead computer scientist on the Apollo program, her skills saved the otherwise doomed mission not long before it was destined to end.
Enthusiastic about maths from a tender age, Margaret became an expert in writing software following her time at university. Later on, she took a job at MIT, learning to write software that could predict the weather. 
In the mid-1960s, MIT announced they were looking for programmers to send men to the moon. Immediately, she knew this was for her, casting aside her original plan to attend graduate school for a degree in abstract maths to pursue the space program. Shortly, she became the first programmer hired for this project.
One amusing story about her time working on this is the time she took her daughter into the lab. As a working mother, it was necessary. One day, her daughter pushed a button, causing the system to crash. She quickly realised the astronauts could make this mistake, too, so she recommended adjusting the software. This was cast aside with a callous response: “Astronauts are trained never to make a mistake.”
On the 20th of July 1969, three minutes before the planned landing, data from a radar system overwhelmed the computer; this had accidentally been triggered by the crew. This was the exact mistake Hamilton’s daughter had made. Within hours, this was corrected, however, if it wasn’t for Hamilton’s skilful programming, the computer would not have recognised that error in the first place. 
In 2016, the 80-year-old Margaret received the President Medal of Freedom by Barack Obama. During the presentation, he stated, “Our astronauts didn’t have much time, but thankfully they had Margaret Hamilton.”
You may have wondered where the term ‘software engineering’ came from. Being a young, curious student, I wondered what drew the line between simple, creative hobbies, and real-time problem-solving. Margaret Hamilton, it appears, is one of the people who helped  paint this distinction. 
She called her work “software engineering.” And for this, she was criticised. However, retrospectively, no one laughs anymore. The importance of programming, more specifically her work, is recognised properly now.
***
Sources:
5 notes · View notes
xaltius · 2 months ago
Text
Revolutionizing Software Engineering with LLMs
Tumblr media
The software development landscape is on the cusp of a significant transformation, and at the heart of this shift lies the rapid advancement of Large Language Models (LLMs). From code generation to debugging, LLMs are poised to redefine how software engineers work, promising increased efficiency, faster innovation, and a potential reshaping of the development lifecycle.
The Dawn of the AI-Powered Developer:
LLMs like GPT-4 have showcased remarkable capabilities within the realm of software engineering. They can:
Generate Code Snippets and Entire Functions: Based on natural language prompts, LLMs can produce functional code, potentially accelerating the development of routine tasks.
Assist with Debugging: By analyzing code and error messages, LLMs can suggest potential fixes and explanations, streamlining the debugging process.
Automate Documentation: LLMs can generate documentation based on code, saving developers valuable time and ensuring better knowledge sharing.
Refactor and Optimize Code: LLMs can analyze existing code and suggest improvements for readability, performance, and adherence to coding standards.
Understand and Explain Code: LLMs can provide explanations of complex code blocks, aiding in onboarding new team members and understanding legacy systems.
Beyond Automation: A Paradigm Shift:
The impact of LLMs extends beyond simple automation. They have the potential to:
Democratize Software Development: By lowering the barrier to entry for basic coding tasks, LLMs could empower individuals with domain expertise to build simple applications without extensive programming knowledge.
Accelerate Prototyping and Experimentation: Developers can quickly iterate on ideas and build prototypes using LLM assistance, fostering faster innovation.
Enhance Collaboration: LLMs could act as a common ground for discussing code and architecture, providing explanations and suggestions that bridge communication gaps.
Free Up Developers for Higher-Level Tasks: By handling more routine tasks, LLMs can allow software engineers to focus on complex problem-solving, architectural design, and strategic planning.
Navigating the Challenges:
While the potential is immense, the integration of LLMs into software engineering also presents challenges:
Accuracy and Reliability: Code generated by LLMs may not always be accurate, efficient, or secure. Human review and testing remain crucial.
Contextual Understanding: LLMs might struggle with understanding the nuances of complex projects and specific business requirements.
Ethical Considerations: Issues around intellectual property, bias in generated code, and the potential for misuse need careful consideration.
Integration into Existing Workflows: Seamlessly integrating LLM tools into current development environments and processes is essential.
Preparing for the Future with Xaltius Academy's Software Engineering Program:
The rise of LLMs necessitates a shift in how software engineers are trained and how they approach their craft. Xaltius Academy's Software Engineering Program recognizes this evolving landscape and is committed to equipping students with the skills needed to thrive in an AI-powered future.
The program focuses on:
Strong Foundational Principles: Ensuring a deep understanding of software engineering concepts that are essential regardless of the tools used.
Critical Thinking and Problem-Solving: Developing the skills to evaluate and refine code generated by AI and tackle complex challenges that LLMs might not be able to handle independently.
Understanding of AI and its Applications: Providing insights into how AI, including LLMs, can be leveraged effectively in software development.
Adaptability to New Technologies: Fostering a mindset of continuous learning and the ability to adapt to emerging tools and technologies like LLMs.
Emphasis on Responsible Development: Addressing the ethical considerations surrounding the use of AI in software engineering.
Conclusion:
LLMs are poised to revolutionize software engineering, not by replacing developers, but by augmenting their capabilities and transforming the development process. By embracing these powerful tools while maintaining a strong foundation in software engineering principles, developers can unlock new levels of productivity and innovation. Programs like Xaltius Academy's Software Engineering program are crucial in preparing the next generation of software engineers to navigate and leverage this exciting technological shift, ensuring they are ready to lead the charge in this AI-powered era. The future of software development is intelligent, collaborative, and brimming with potential.
0 notes
aitoolswhitehattoolbox · 5 months ago
Text
Software Engineer (Golang/Scala, Python, Linux)
Product Information From the newest ideas in cluster computing to the latest web framework, NetApp software products embrace innovation to deliver compelling solutions to our business. NetApp is looking for an experienced Software Enginee… Apply Now
0 notes
csiespl · 8 months ago
Text
ETABS: Know Why Engineers Need To Learn This Software
ETABS is an innovative and revolutionary software package for building analysis and design. It encompasses modelling tools and templates, analysis methods and solutions techniques, and code-based load prescriptions. Using ETABS, you can evaluate the basic or advanced systems under static or dynamic conditions. According to an article published on the Enlyft website, they got to know that more than 3000 companies use ETABS. They have examined the data and found that ETABS has a 0.6% market share in the computer-aided design & engineering category. Go through the following chart to know which industry and which country uses the ETABS software.
0 notes
mitcenter · 10 months ago
Text
How to Become a Civil Engineer: Career Roadmap for 2024
Tumblr media
Becoming a civil engineer in 2024 offers a promising career path for those passionate about designing, constructing, and maintaining infrastructure that shapes our modern world. Civil engineers play a crucial role in developing society's essential facilities, from roads and bridges to buildings and water supply systems. If you're considering this career, here's a comprehensive roadmap of how to become a civil engineer which will guide you through the steps necessary to become a civil engineer in 2024.
Understand the Role of a Civil Engineer
Civil engineers are responsible for planning, designing, and overseeing construction projects. They ensure structures are safe, efficient, and sustainable, considering factors like environmental impact, budget constraints, and regulatory requirements.
Educational Requirements
Bachelor's Degree: Start by earning a bachelor's degree in civil engineering or a related field. Accredited programs typically cover coursework in mathematics, physics, mechanics, structural analysis, and fluid dynamics.
Advanced Degrees: While a bachelor's degree is the minimum requirement, pursuing a master's or doctoral degree can enhance career prospects, especially for research or specialized roles.
Gain Practical Experience
Internships: Seek internships during your undergraduate studies to gain practical experience in the field. Internships provide hands-on training and exposure to real-world projects, essential for developing technical skills and understanding industry practices.
Entry-level Positions: After graduating, consider entry-level positions at engineering firms, construction companies, or government agencies. These roles allow you to apply academic knowledge to practical projects under the supervision of experienced engineers.
Obtain Licensure
Fundamentals of Engineering (FE) Exam: To become a licensed civil engineer, you must pass the FE exam after completing your bachelor's degree. This exam tests fundamental engineering knowledge.
Work Experience: Accumulate four years of relevant work experience, typically under the supervision of a licensed professional engineer.
Professional Engineer (PE) License: Once you meet the experience requirement, you can take the PE exam. A PE license demonstrates your competency and ability to take legal responsibility for engineering projects.
Develop Technical Skills
Software Proficiency: Mastering engineering software such as AutoCAD, Revit, STAAD Pro and structural analysis tools is essential for design and analysis tasks.
Project Management: Acquire skills in project management to effectively oversee budgets, timelines, and resources for engineering projects.
Communication Skills: Strong verbal and written communication skills are vital for interacting with clients, stakeholders, and team members.
Stay Updated on Industry Trends
Continuing Education: Civil engineering is a dynamic field with evolving technologies and practices. Stay informed about industry trends, sustainability practices, and regulatory changes through workshops, seminars, and professional development courses.
Networking: Join professional organizations like the American Society of Civil Engineers (ASCE) or local engineering chapters to network with peers, attend conferences, and stay updated on industry developments.
Career Specialization
Choose a Focus Area: Civil engineering offers various specializations such as structural engineering, transportation, environmental engineering, or geotechnical engineering. Consider pursuing certifications or advanced degrees to specialize in your area of interest.
Career Progression
Senior Roles: With experience and expertise, advance to senior engineering positions where you may lead major projects, manage teams, or specialize in consulting roles.
Further Education: Some civil engineers pursue additional education in business administration or law to transition into management or legal aspects of engineering.
Job Outlook and Opportunities
Demand: The demand for civil engineers is expected to grow as infrastructure needs expand globally. Projects related to sustainability, renewable energy, and urban development offer promising opportunities.
Global Perspective: Civil engineers can work internationally on projects ranging from large-scale infrastructure in developing countries to innovative urban designs in developed nations.
Conclusion
Becoming a civil engineer in 2024 requires dedication to education, practical experience, and professional licensure. By following this career roadmap, you can build a rewarding career shaping the built environment, contributing to society's infrastructure needs, and making a lasting impact on communities worldwide. Whether you envision designing iconic structures, improving urban transportation, or advancing environmental sustainability, civil engineering offers diverse opportunities for growth and innovation.
0 notes
likitakans · 11 months ago
Text
Behind the Screens: Stories from the Tech Industry
Tumblr media
Introduction:
In the fast-paced world of technology, it's easy to get lost in the headlines about the latest gadgets and software. However, behind every innovation are the dedicated professionals who bring these creations to life. "Behind the Screens" is a blog series that dives into the lives, careers, and insights of individuals working in the tech industry. Through these interviews, we aim to uncover the human stories behind the technology that shapes our world. Join us as we explore the journeys, challenges, and triumphs of tech professionals across various roles.
The Journey of a Software Engineer: Jane Doe, Senior Software Engineer at TechCorp
Jane Doe's path to becoming a Senior Software Engineer at TechCorp is a testament to perseverance and passion. Starting with a degree in computer science, Jane's career has been marked by continuous learning and growth. From her first job as a junior developer to leading major projects, Jane shares her experiences and advice for those looking to follow in her footsteps. She highlights the importance of embracing new technologies and maintaining a healthy work-life balance to prevent burnout.
Bridging the Gap: UX/UI Designers with John Smith, Lead UX/UI Designer at InnovateDesigns
User experience (UX) and user interface (UI) design are crucial for creating intuitive and engaging digital products. John Smith, a Lead UX/UI Designer at InnovateDesigns, walks us through his creative process and the significance of design thinking. He discusses the collaboration between designers and developers and shares insights on current trends in UX/UI design. For those aspiring to enter the field, John offers practical tips and emphasizes the importance of empathy in design.
Keeping the Digital World Secure: Maria Lopez, Cybersecurity Analyst at SecureNet
In an age where data breaches and cyber threats are rampant, cybersecurity professionals like Maria Lopez are the unsung heroes. As a Cybersecurity Analyst at SecureNet, Maria discusses the ever-evolving landscape of cybersecurity. She shares her journey from studying computer science to specializing in cybersecurity, detailing the tools and techniques she uses to protect sensitive information. Maria also provides valuable advice for anyone interested in pursuing a career in this critical field.
The Mind Behind the Machine: Dr. Alan Brown, AI Research Scientist at FutureTech Labs
Artificial intelligence (AI) is revolutionizing numerous industries, and Dr. Alan Brown is at the forefront of this transformation. As an AI Research Scientist at FutureTech Labs, Dr. Brown delves into the latest advancements in AI and the ethical considerations that come with them. He explains the interdisciplinary nature of AI research and shares his most impactful projects. For aspiring AI researchers, Dr. Brown outlines the educational pathways and skills necessary to succeed in this exciting field.
From Concept to Product: Lisa Chang, Product Manager at NextGen Solutions
Product managers play a pivotal role in bringing tech products from concept to market. Lisa Chang, a Product Manager at NextGen Solutions, describes the product management lifecycle and the challenges she faces in her role. She explains how she balances technical and business perspectives to ensure successful product launches. Lisa also shares the skills and qualities that make an effective product manager, offering guidance for those interested in this career path.
Building the Backbone: Raj Patel, Network Engineer at GlobalNet
Network engineers are the backbone of our connected world, ensuring the smooth operation of communication networks. Raj Patel, a Network Engineer at GlobalNet, provides insight into the importance of network infrastructure and the daily responsibilities of his job. He discusses the innovations in networking technology and the challenges of maintaining network security and performance. Raj's advice for aspiring network engineers highlights the need for continuous learning and adaptation in this field.
Innovating with Data: Emily Green, Data Scientist at DataInsights
Data science is transforming the way businesses operate, and Emily Green is at the heart of this transformation. As a Data Scientist at DataInsights, Emily explains the role of data science in modern business and the tools and methodologies she uses for data analysis. She shares real-world applications of data science and the impact of big data and machine learning. For those interested in a career in data science, Emily offers practical advice on preparing for this rapidly evolving field.
Shaping the Future: The Impact of Women in Tech with Priya Singh, CTO at TechInnovators
The tech industry has historically been male-dominated, but women like Priya Singh are breaking barriers and leading the way. As the CTO of TechInnovators, Priya discusses her journey and the challenges she has faced as a woman in tech. She emphasizes the importance of mentorship and supporting other women in the industry. Priya also highlights the initiatives and organizations promoting diversity in tech and offers advice for women looking to make their mark in the field.
Conclusion:
"Behind the Screens" provides a glimpse into the diverse roles within the tech industry, showcasing the passion, innovation, and resilience of tech professionals. Through their stories, we hope to inspire the next generation of tech enthusiasts and shed light on the human element behind technological advancements. Stay tuned for more in-depth conversations with the people shaping the future of technology.
0 notes
Text
What Is a Computer Vision Engineer? Unlocking the Power of Sight in Machines
Tumblr media
In today's rapidly evolving technological landscape, one of the most remarkable areas of development is computer vision. As humans, our ability to perceive and understand the visual world around us is a fundamental aspect of our daily lives. Similarly, the field of computer vision aims to enable machines to interpret and understand visual data. At the heart of this fascinating domain lies the computer vision engineer, an expert who plays a crucial role in unlocking the power of sight in machines. 
In this article, we will delve into the world of computer vision engineering, exploring the responsibilities, skills, and potential applications of this field.
Understanding Computer Vision Engineering:
Computer vision engineering encompasses the design, development, and deployment of systems that enable machines to gain an understanding of visual data. The primary goal of computer vision engineers is to create algorithms and models that can accurately interpret images and videos, replicating human visual perception to some extent. By using artificial intelligence (AI) techniques such as machine learning and deep learning, computer vision engineers equip machines with the ability to analyze, recognize, and make decisions based on visual information.
Responsibilities of a Computer Vision Engineer:
The responsibilities of a computer vision engineer are diverse and demanding. They involve working with large datasets, developing and fine-tuning complex algorithms, and collaborating with cross-functional teams to implement computer vision solutions. 
Some key responsibilities include:
1. Data Collection and Preprocessing: Computer vision engineers gather large volumes of visual data and preprocess it to enhance the accuracy of subsequent analysis. This often involves tasks such as data labeling, augmentation, and cleaning.
2. Algorithm Development: Computer vision engineers develop and optimize algorithms that can detect and recognize objects, people, gestures, and other visual cues. They leverage machine learning techniques, such as convolutional neural networks (CNNs), to train models on labeled data and improve their ability to make accurate predictions.
3. Model Evaluation and Optimization: Computer vision engineers evaluate the performance of trained models, fine-tuning them to achieve higher accuracy and robustness. They employ techniques like transfer learning and regularization to enhance the models' generalization capabilities.
4. Integration and Deployment: Once the computer vision systems are developed, engineers work on integrating them into real-world applications. This involves optimizing the models for efficiency, scalability, and compatibility with hardware and software frameworks.
Skills Required:
Becoming a proficient computer vision engineer requires a combination of technical skills and domain knowledge. Some essential skills include:
1. Programming: Proficiency in programming languages such as Python, C++, or MATLAB is crucial for implementing computer vision algorithms and working with relevant libraries and frameworks like OpenCV, TensorFlow, or PyTorch.
2. Mathematics and Statistics: A solid foundation in linear algebra, calculus, probability, and statistics is necessary to understand the mathematical underpinnings of computer vision algorithms and models.
3. Machine Learning: Familiarity with machine learning concepts and techniques is vital for training and fine-tuning models. Understanding topics like supervised and unsupervised learning, neural networks, and optimization algorithms is essential.
4. Image Processing: Knowledge of image processing techniques, such as filtering, segmentation, and feature extraction, allows computer vision engineers to manipulate and enhance visual data before feeding it into models.
5. Problem-Solving and Critical Thinking: Strong problem-solving and critical thinking skills enable computer vision engineers to tackle complex challenges and devise innovative solutions.
Applications of Computer Vision:
Computer vision has many uses in numerous industries. Some famous examples are:
1. Autonomous Vehicles: Computer vision enables self-driving cars to perceive and understand their surroundings, identifying objects, pedestrians, traffic signs, and lane markings to make informed decisions.
2. Healthcare: Computer vision aids in medical imaging analysis, assisting with tasks like tumor detection, disease diagnosis, and surgical planning. It also facilitates remote patient monitoring and analysis of vital signs.
3. Retail and E-commerce: Computer vision is used for product recognition and visual search, allowing customers to find similar products based on images. It also enables automated inventory management and checkout processes.
4. Security and Surveillance: Computer vision systems enhance security by detecting and tracking suspicious activities, recognizing faces, and analyzing video footage for real-time threat detection.
5. Augmented Reality (AR) and Virtual Reality (VR): Computer vision is instrumental in AR and VR applications, overlaying digital information in the real world or creating immersive virtual environments.
Conclusion:
Computer vision engineering is an exciting and rapidly evolving field that empowers machines with the ability to perceive and understand the visual world. By leveraging AI and machine learning techniques, computer vision engineers unlock the potential for machines to analyze, interpret, and make decisions based on visual data. With applications spanning industries like automotive, healthcare, retail, security, and entertainment, the impact of computer vision is revolutionizing our lives. As technology continues to advance, computer vision engineers will play an increasingly vital role in shaping the future of intelligent machines.
0 notes
askagamedev · 9 days ago
Note
Is more complicated, or more work to write code for The Game EA Sports FC if you were starting from scratch than it would be to write code for any other large scale game, like an MMORPG also done from scratch? Or GTA6 i.e.? (Licensing issues aside)
Code systems are code systems. Good code architecture tends to follow pretty universal principles, regardless of whether the system is governing loot tables or lighting systems. Constructing software systems is about seeing the general rules at work and using those to write code that adheres to those rules.
Tumblr media
It really helps to take a larger view of what a game is from a software engineering perspective. A game (or any major piece of software) is a bunch of systems comprised of smaller subsystems, and how those individual systems interact with each other. All code systems all need to do three things:
Determine when the system needs to do its work
Return the processed results from that internal work to external systems that need those results to do their own work
Do their own internal work to process and handle requests correctly
When planning out what a system will do, it helps to divvy up the work into these three buckets. Once you know what the system needs to do, the engineer can break down the individual functions and data members she'll need in order to actually do that work.
Tumblr media
Let's move forward with an example - say that I wanted to build a stealth takedown system in my action adventure game. The design document says that I want the player to be behind an unaware enemy, press a button, and then play a paired animation that kills the enemy. Using the three buckets mentioned previously, let's break it down.
When does the system need to do its work?
Player and enemy position
Player and enemy facing direction
Enemy awareness state
Game controller input state
What results do I need to provide?
I need to know when the player meets the conditions of being behind and facing an unaware enemy (call the UI system to show the button prompt)
I need to call the animation system to play the animations on the player and the enemy (call the animation system to play the animation)
I need to kill the enemy (call the damage system to kill the enemy)
What do I need to do the internal work to provide those results?
I need to calculate whether the player is behind the enemy
I need to calculate whether the player is facing the enemy
I need to determine whether the enemy is aware of the player
I need to know when the player presses the attack button
As each of these elements is built and works, we can use them to interact with each other. Logical checks like whether the player is behind the enemy will determine whether the action can be taken. Actions like performing the takedown animations are then attached to the conditions. These combine to form the rules from the designer and a system is born.
[Join us on Discord] and/or [Support us on Patreon]
Got a burning question you want answered?
Short questions: Ask a Game Dev on Twitter
Short questions: Ask a Game Dev on BlueSky
Long questions: Ask a Game Dev on Tumblr
Frequent Questions: The FAQ
10 notes · View notes
side-teched · 2 years ago
Text
Javascript date jank
So I'd thought I'd share a lovely piece of Javascript jank one of the other devs at work encountered.
Also, before we begin: this isn't implementation advice, don't do this. It is bad. It's just some fun stuff we found. (with that out of the way...)
So what they were trying to do was get a date object for a specific amount of time before/after another date object. This is what they tried:
let myDate = new Date() let myNewDate = new Date(myDate - (numMinutes * 60 * 1000))
Hopefully it's pretty clear what it's trying to do. It's trying to make a Date numMinutes before myDate. And this does what you would expect: so far so good!
So next they were trying to get a Date object for numMinutes later than myDate. Given what we just saw, easy right?
let myDate = new Date() let myNewDate = new Date(myDate + (numMinutes * 60 * 1000))
And just quickly typing this into the console as sanity check (on Firefox):
Invalid Date
huh? Wha?
Yeah, it took me a sec too.
Basically, what's going on here is the Javascript interpreter is trying be helpful. When the interpreter is running the version with the minus, it sees you are trying to subtract a number from a Date object. This doesn't make any sense, so it ever helpfully steps in and just tries to make it work. And it does. It decides it needs to coerce the type of at least one of the variables. It figures out if it converts the date into a Unix timestamp (which is just a number) the subtraction works! The resulting number is given to the Date constructor and it interprets the number as a Unix timestamp and spits out the correct answer.
Yipeeeeeee
But why does the version with the plus not work?
It's the same principle. The interpreter sees that you are trying to add a Date and a number, which doesn't make any sense. So it tries to be helpful and make the types work. It just so happens the interpreter figures out if it casts the Date to a string and the number to a string they can be plussed together. This makes it a string concatenation. So a valid date string with a random number on the end get passed to the Date constructor, and hey presto, Invalid Date!
0 notes
mrprofitway · 1 year ago
Text
Opportunities in AI and Robotics
Basic requirements for students aspiring to study and become experts in the fields of AI, robotics, and IT:
---
 1. Unlock Your Future: Become a Data Scientist
Are you a final year student with a passion for data and analytics? Consider becoming a data scientist! To excel in this field, you'll need strong analytical skills, proficiency in programming languages like Python and R, and a solid understanding of statistics and machine learning algorithms. With an average salary of $120,000 per year and a job market expected to grow by 16% by 2028, the opportunities are endless!
Click here to for updates
2. Shape the Future: Become a Machine Learning Enginee
Ready to shape the future of technology? Consider becoming a machine learning engineer! To succeed in this field, you'll need a strong background in computer science, mathematics, and statistics, as well as proficiency in programming languages like Python and Java. With an average salary of $140,000 per year, the sky's the limit!
3. **Build the Next Big Thing: Become a Software Developer
Click here to for updates
Are you passionate about technology and innovation? Consider becoming a software developer! To thrive in this field, you'll need strong problem-solving skills, proficiency in programming languages like Java, C++, and JavaScript, and a solid understanding of software development methodologies. With an average salary of $105,000 per year and a job market expected to grow by 22% by 2029, the possibilities are endless
Tumblr media
#ai
0 notes
veer-acl · 1 year ago
Text
ACL Digital, an ALTEN group company, is a design-led Digital Experience, Product Innovation, Solutions, Engineering Services and Digital Transformation leader. It has announced that it has acquired AFour Technologies, a Next-generation 360°-degree software product engineering firm. This acquisition of the AFour Technologies business strengthens ACL Digital's product engineering & Digital offerings and will enable it to accelerate the digital transformation journey for its customers.
ACL Digital is a leader in the digital product engineering space, and this acquisition will further add scale & depth to the digital product engineering portfolio of ACL Digital.
Gerald Attia, Deputy CEO, ALTEN Group, said, "This reinforces ACL Digital’s continued commitment to grow as a premium digital solutions provider helping its customer be future-ready and will strengthen our leadership position in the digital & product engineering space."
"This acquisition helps us expand and strengthen our deep digital product engineering capabilities across various verticals we operate. Together, we will create world-class solutions with AFour Technologies to empower our clients to streamline their operation, enhance their customer experience, compete better in the marketplace, and drive meaningful value to their customers, businesses, and employees,"said Ramandeep Singh, CEO, ACL Digital.
Established in 2007, AFour Technologies (a.k.a. AFour) focuses on Software Product Engineering Services comprising UI/UX Design, Architecture Design and Consulting, Software Development, DevOps (CloudOps, SysOps, and DBOps), QA (Test Strategy and Implementation, Test Automation, Performance, Security), and Monitoring. With an excellent track record of over 10 years and a focus on software product engineering, AFour is a true example of self-belief, consistency, and transparency.
The company is a hub of every innovative technology in software product engineering services ─ Hyper-convergence, SDN, Virtualization, Next Generation Data Center Technologies, Networking, and Enterprise Mobility. The robust talent pool of 400 employees comprising seasoned product and software engineers, who will now join ACL Digital, will drive competitive advantage for our clients with an agile approach to help our customers to become future-ready.
"We are excited to be a part of ACL Digital, a leader in the Digital Product Engineering space. As part of the ACL Digital family, we now have this opportunity to scale, drive growth & deliver customer satisfaction worldwide," said Subodh Parulekar, Co-Founder and CEO, AFour Technologies.
AFour Technologies Co-Founder and MD, Mahesh Kulkarni added, "Our best-in-class Product Engineering and Reliability Engineering Services including Cloud Native Development, Cloud Migration and Enablement, Test Strategy, Security and Performance Testing, DevOps and Test Automation, will ensure delivery of solutions to customers across product lines and industries, with high predictability and reliability."
About AFour Technologies 
Founded in 2007, AFour Technologies is a 360-degree software product engineering company headquartered in Pune. As product engineering experts, the company’s mission is to enable its customers to build and maintain resilient, scalable, and secure software systems with high predictability and reliability using agile methodologies. The services offered by the company include product engineering, infrastructure design and configuration management, software prototype development, CI/CD pipeline, DevOps strategy consulting, system architecture design, UX and UI design, backend/API development, performance and security testing, test automation development, and execution. The company employs more than 400 employees and has already serviced over 100 clients in the US.
For more information, please visit: https://afourtech.com/
About ACL Digital
ACL Digital, an ALTEN Group Company, is a digital product innovation and engineering leader. We help our clients design and build innovative products (AI, Cloud, and Mobile ready), content and commerce-driven platforms, and connected, converged digital experiences for the modern world through a design-led Digital Transformation framework. By integrating our strategic design, engineering, and industry capabilities, we help our clients decode the digital world and accelerate their growth journey.
Headquartered in Silicon Valley, ACL Digital is a leader in design-led digital experience, innovation, enterprise modernization, and product engineering services converging to Technology, Media & Telecom. We are a talented workforce and part of the 50,000+ employee ALTEN Group, spread across more than 30 countries, offering a multicultural workplace and a collaborative knowledge environment.
For more information, please visit: https://www.acldigital.com/
0 notes
jcmarchi · 1 year ago
Text
📝 Guest Post: How to Build the Right Team for Generative AI*
New Post has been published on https://thedigitalinsider.com/guest-post-how-to-build-the-right-team-for-generative-ai/
📝 Guest Post: How to Build the Right Team for Generative AI*
5 invaluable insights
Generative AI and Large Language Models (LLMs) are new to most companies. If you are an engineering leader building Gen AI applications, it can be hard to know what skills and types of people are needed. In this post, Raza Habib, CEO & Co-founder at Humanloop, shares what they have learned about the skills needed to build a great AI team while helping hundreds of companies put LLMs into production.
You probably don’t need ML engineers
In the last two years, the technical sophistication needed to build with AI has dropped dramatically. At the same time, the capabilities of AI models have grown. This creates an incredible opportunity for more companies to adopt AI because you probably already have most of the talent you need in-house.
ML engineers used to be crucial to AI projects because you needed to train custom models from scratch. Training your own fully bespoke ML models requires more mathematical skills, an understanding of data science concepts, and proficiency with ML tools such as TensorFlow or PyTorch.
Large Language Models like GPT-4, or open-source alternatives like LLaMa, come pre-trained with general knowledge of the world and language. Much less sophistication is needed to use them. With traditional ML, you needed to collect and manually annotate a dataset before designing an appropriate neural network architecture and then training it from scratch. With LLMs, you start with a pre-trained model and can customize that same model for many different applications via a technique called “prompt engineering“.
Prompt engineering is a key skillset
“Prompt engineering” is simply the skill of articulating very clearly in natural language what you want the model to do and ensuring that the model is provided with all the relevant context. These natural language instructions, or “prompts”, become part of your application’s codebase and replace the annotated dataset that you used to have to collect to build an AI product. Prompt engineering is now one of the key skills in AI application development.
To be good at prompt engineering you need excellent written communication, a willingness to experiment and a familiarity with the strengths and weaknesses of modern AI models. You don’t typically need any specific mathematical or technical knowledge. The people most suited for prompt engineering are the domain experts who best understand the needs of the end user – often this is the product managers.
Product Managers and Domain Experts are Increasingly Important
Product managers and domain experts have always been vital for building excellent software but their role is typically one step removed from actual implementation. LLMs change this. They make it possible for non-technical experts to directly shape AI products through prompt engineering. This saves expensive engineering time and also shortens the feedback loop from deployment to improvement.
We see this in action with Humanloop customers like Twain, who use LLMs to help salespeople write better emails. The engineers at Twain build the majority of the application but they are not well-placed to understand how to write good sales emails because they lack domain knowledge. As a result, they are not the right people to be customizing the AI models. Instead, Twain employs linguists and salespeople as prompt engineers.
Another example is Duolingo, which has built several AI features powered by LLMs. Software engineers are not experts in language learning and would struggle to write good prompts for this situation. Instead, the engineers at Duolingo build the skeleton of the application that lives around the AI model and a team of linguists is responsible for prompt development.
Generalist Full-Stack Engineers can outperform AI specialists
The majority of most AI applications are still traditional code. Only the pieces that require complex reasoning are delegated to AI models. The engineering team still builds the majority of the application, orchestrates model calls, establishes the infrastructure for prompt engineering, integrates data sources to augment the model’s context and optimizes performance.
When it comes to optimising LLM performance, there are two common techniques which your team will need to be aware of. These are “fine-tuning” and “retrieval augmented generation” or RAG. Fine-tuning is when you slightly adjust the model parameters of a pre-trained AI model using example data. RAG is when you augment a generative AI model with traditional information retrieval to give the model access to private data.
The “AI Engineer” has been discussed as a new role that sits closer to product than research and requires some familiarity but not deep expertise with AI (Credit: Swyx).
Full-stack engineers with a broad understanding of different technologies, and the ability to learn quickly, should be able to implement both RAG and fine-tuning. There is no need for them to have deep machine-learning knowledge as most models can now be accessed via API and increasingly there are specialist developer tools that make fine-tuning and RAG straightforward to implement. Compared to Machine Learning specialists, fullstack engineers tend to be more comfortable moving across the stack and are often more product minded. In fact there is a new job title emerging for generalist engineers who have a strong familiarity with LLMs and the tools around them: “The AI Engineer“.
Product and engineering teams need to work closely together
One of the challenges of generative AI is that there are a lot of new workflows and most companies lack appropriate tooling. For AI teams to work well, there needs to be an easy way for domain experts to iterate on prompts. However, prompts affect your applications as much as code and so need to be versioned and evaluated with the same level of rigor as code. Traditional software tools like Git are not a good solution because they alienate the non-technical domain experts who are critical to success.
Often, teams end up using a mixture of stitched-together tools like the OpenAI playground, Jupyter notebooks and complex Excel spreadsheets. The process is error-prone and leads to long delays. Building custom internal tools can be very expensive and because the field of AI is evolving so rapidly they are difficult to maintain.
Humanloop can help here by solving the most critical workflows around prompt engineering and evaluation. The platform gives companies an interactive environment where their domain experts/PMs and engineers can work together to iterate on prompts. Coupled with this are tools for evaluating the performance of AI features in rigorous ways both from user feedback and from automated evaluations.
By providing the right tooling, Humanloop makes it much easier for your existing product teams to become your AI teams.
*This post was written by Raza Habib, CEO & Co-founder at Humanloop, specially for TheSequence. We thank Humanloop for their insights and ongoing support of TheSequence.
0 notes
toptech-blitz · 2 years ago
Text
Ongoing Recruitment at the Nigerian University of Technology and Management
Tumblr media
Job title: Ongoing Recruitment at the Nigerian University of Technology and Management Company: ad_1 Job description: The Nigerian University of Technology and Management (NUTM) is a tertiary education institution located in Nigeria and established to deliver world-class science, technology, engineering, mathematics (STEM) and Management academic excellence in Africa at the undergraduate, postgraduate, and doctoral levels. The vision is to deliver 5,000 STEM leaders by 2030 and ultimately be ranked as one of the top 50 global institutions in STEM education. We are recruiting to fill the following positions below: 1.) Full Time Professor and Senior Lecturer (Information Technology) Job Location: Lagos Employment Type: Full-time Role Overview - We are seeking qualified candidates for the position of Professor and Senior Lecturer in Information Technology. - As a Professor or Senior Lecturer in the Information Technology Department, you will teach undergraduate courses, contribute to curriculum development and the development of future technology professionals, and engage in research and scholarly activities. - The successful candidate will have a strong background in Information Technology and a passion for teaching. This position is full-time. Principal Duties and Responsibilities Course development and instruction: - Teach undergraduate-level Information Technology courses, including introductory programming, data structures, algorithms, software engineering, and other specialized areas of expertise. - Develop and deliver course syllabi, lectures, assignments, and assessments that align with the program's learning objectives. - Utilize effective instructional methods, technologies, and resources to enhance student learning and engagement. Mentorship and student evaluation: - Provide timely and constructive feedback on student work, including assignments, exams, and projects. - Mentor and guide students in their academic and professional development, offering support and advice as needed. Research and departmental duties: - Collaborate with colleagues to promote interdisciplinary initiatives and contribute to the growth and reputation of the department and university. - Stay current with industry trends and advancements in Information Technology through research and professional development activities. - Participate in departmental and university activities, including curriculum development, program assessment, and faculty meetings. Preferred Candidate - A minimum of a Master's Degree in Computer Science or a related field. A doctoral degree is preferred. - Demonstrated expertise in one or more areas of Information Technology especially in areas such as artificial intelligence, cybersecurity, data science, or software engineeing. - Proficiency in programming languages and relevant software tools commonly used in Computer Science. - Dedication to fostering an inclusive and diverse learning environment. - Teaching experience at the undergraduate level is highly desirable. - Strong communication and interpersonal skills, with the ability to effectively engage and motivate students. - Research and publication record, or potential for scholarly contributions, is an asset. - Active involvement in professional organizations and a commitment to professional development. What We Offer To build Africa’s foremost world-class university, we need Africa’s most brilliant minds. Joining NUTM will offer: - Vibrant work environment. - Competitive benefit packages. - Collaborative and innovative company culture. - Comprehensive health care benefits. - Continuous Learning and growth. - Access to a wide network of high impact people. Method of Application Interested and qualified candidates should send their CV to: using the Job Position as the subject of the mail. 2.) Full Time Professor and Senior Lecturer - Cybersecurity Job Location: Lagos Employment Type: Full-time Role Overview - NUTM is seeking qualified candidates for the position of Professor and Senior Lecturer in Cybersecuity. - As a Professor or Senior Lecturer in the Cybersecurity Department, you will teach undergraduate courses, contribute to curriculum development and the development of future technology professionals, and engage in research and scholarly activities. - The successful candidate will have a strong background in Cybersecurity and a passion for teaching. This position is full-time. Principal Duties and Responsibilities Course development and instruction: - Teach undergraduate-level Cybersecurity courses. - Develop and deliver course syllabi, lectures, assignments, and assessments that align with the program's learning objectives. - Utilize effective instructional methods, technologies, and resources to enhance student learning and engagement. Mentorship and student evaluation: - Provide timely and constructive feedback on student work, including assignments, exams, and projects. - Mentor and guide students in their academic and professional development, offering support and advice as needed. Research and departmental duties: - Collaborate with colleagues to promote interdisciplinary initiatives and contribute to the growth and reputation of the department and university. - Stay current with industry trends and advancements in Cybersecurity through research and professional development activities. - Participate in departmental and university activities, including curriculum development, program assessment, and faculty meetings. Preferred Candidate - A minimum of a Master's Degree in Cybersecurity or a related field. A doctoral degree is preferred. - Demonstrated expertise in one or more areas of Cybersecuity, such as Computer forensics. - Dedication to fostering an inclusive and diverse learning environment. - Research and publication record, or potential for scholarly contributions, is an asset. - Teaching experience at the undergraduate level is highly desirable. - Strong communication and interpersonal skills, with the ability to effectively engage and motivate students. - Proficiency in relevant software tools commonly used in Cybersecuity. - Active involvement in professional organizations and a commitment to professional development. What We Offer To build Africa’s foremost world-class university, we need Africa’s most brilliant minds. Joining NUTM will offer: - Vibrant work environment. - Competitive benefit packages. - Collaborative and innovative company culture. - Comprehensive health care benefits. - Continuous Learning and growth. - Access to a wide network of high impact people. Method of Application Interested and qualified candidates should send their CV to: using the Job Position as the subject of the mail. 3.) Full Time Professor and Senior Lecturer (Computer Science) Job Location: Lagos Employment Type: Full-time Role Overview - NUTM is seeking qualified candidates for the position of Professor and Senior Lecturer in Computer Science. - As a Professor or Senior Lecturer in the Computer Sciences Department, you will teach undergraduate courses, contribute to curriculum development and the development of future technology professionals, and engage in research and scholarly activities. - The successful candidate will have a strong background in Computer Science and a passion for teaching. This position is full-time. Principal Duties and Responsibilities Course development and instruction: - Teach undergraduate-level Computer Science courses, including introductory programming, data structures, algorithms, software engineering, and other specialized areas of expertise. - Develop and deliver course syllabi, lectures, assignments, and assessments that align with the program's learning objectives. - Utilize effective instructional methods, technologies, and resources to enhance student learning and engagement. Mentorship and student evaluation: - Provide timely and constructive feedback on student work, including assignments, exams, and projects. - Mentor and guide students in their academic and professional development, offering support and advice as needed. Research and departmental duties: - Collaborate with colleagues to promote interdisciplinary initiatives and contribute to the growth and reputation of the department and university. - Stay current with industry trends and advancements in Computer Science through research and professional development activities. - Participate in departmental and university activities, including curriculum development, program assessment, and faculty meetings. Preferred Candidate - A minimum of a Master's Degree in Computer Science or a related field. A doctoral degree is preferred. - Demonstrated expertise in one or more areas of Computer Science, such as artificial intelligence, cybersecurity, database systems, or computer networks. - Proficiency in programming languages and relevant software tools commonly used in Computer Science. - Dedication to fostering an inclusive and diverse learning environment. - Research and publication record, or potential for scholarly contributions, is an asset. - Teaching experience at the undergraduate level is highly desirable. - Strong communication and interpersonal skills, with the ability to effectively engage and motivate students. - Active involvement in professional organizations and a commitment to professional development. What We Offer To build Africa’s foremost world-class university, we need Africa’s most brilliant minds. Joining NUTM will offer: Expected salary: Location: Nigeria Job date: Sat, 21 Oct 2023 05:13:10 GMT ad_2 Apply for the job now! Read the full article
1 note · View note