Search results for typically perform
Using Scanned Mesh Data for Auto-Digitized 3D Modeling: Experiments
:::info Authors: (1) Ritesh Sharma, University Of California, Merced, USA rsharma39@ucmerced.edu; (2) Eric Bier, Palo Alto Research Center, USA bier@parc.com; (3) Lester Nelson, Palo Alto Research Center, USA lnelson@parc.com; (4) Mahabir Bhandari, Oak Ridge National Laboratory, USA bhandarims@ornl.gov; (5) Niraj Kunwar, Oak Ridge National Laboratory, USA kunwarn1@ornl.gov. ::: Table of Links Abstract and Intro Related Work Methodology Experiments Conclusion & Future work and References 4 Experiments We evaluated our approach to capturing 3D scans using AR headsets. We compared the floor plan dimensions with actual building dimensions and provided intermediate results: floor plans and 3D models. We also calculated the time taken for our algorithm steps. To demonstrate the approach robustness, we evaluated using multiple building types, including commercial buildings B1 and B3 and a residential building B3. Additionally, we validated our floor plan generation on the Matterport2D dataset [25]. Scanned Data Analysis We evaluated the precision of floor plan generation by comparing the actual dimensions of the rooms with the computed floor plan. Figure 10(a) illustrates the measurement of the building, which was scanned twice with our AR. We call these scans S1 and S2 (see figure 10(b) and figure 10(c)) For each scan, floor plans are computed and the dimensions are computed using geometric modeling software, Rhino [17]. We then compared the computed dimensions with the actual room dimensions as shown in Table 1. These results show the applicability of our approach to many building types. Our method can compute a floor plan even from relatively incomplete mesh data. With a higher quality HoloLens scan, the resulting floor plan is more precise. Figure 11 displays S1 results: both types of floor plan and the 3D model. Orienting floor and walls We must orient the mesh properly. Spherical k-means is compute intensive so we optimize it to get good performance. In Figure 4, we see the mesh of B1 before and after alignment, which took 12.4 seconds, of which 10.6 were spent aligning walls using spherical k-means. Partitioning into stories We can detect a multi-story building and divide it into stories with an additional step. The algorithm projects triangles onto the positive y-axis and creates a histogram showing horizontal peaks. By analyzing the peaks in the histogram, we can determine the number of stories. Figures 5 and 12 show a 2-story residential building and a multi-story model from the Matterport3D dataset [25] that were partitioned into stories. Finding planar walls To generate a drafting-style floor plan, we eliminate details and identify planar walls. The modified DBSCAN algorithm is the most time-consuming step. In the model of Figure 13, with 79,931 vertices and 134,235 faces, it took 27.4 seconds to prepare the data and run DBSCAN and an additional 3.79 seconds to construct flat walls from the generated clusters. For the residential building of Figure 14, with 173,941 vertices and 285,840 faces, it took 76 seconds to prepare and run DBSCAN and 23.36 seconds to compute flat walls. The results for a Matterport3D model appear in Figure 15. Generating the floor plan The final step of our floor plan generation is to slice the mesh at different heights and superimpose the slices. Figures 13, 14, and 15 show floor plans generated using our approach. We conducted experiments to evaluate the effects of changing graphical settings when rendering pen-and-ink floor plans. Each setting consists of a different combination of line segment opacity and slice count. We found that an opacity setting of 0.5 produced a floor plan that met our expectations. We also found that a floor plan with 100 slices provided a good balance between level of detail and clutter reduction. Optimal numbers will depend on use case. :::info This paper is available on arxiv under CC BY-NC-ND 4.0 DEED license. :::
Using Scanned Mesh Data for Auto-Digitized 3D Modeling:...
:::info
Authors:
(1) Ritesh Sharma, University Of California, Merced, USA rsharma39@ucmerced.edu;
(2)...
Source: Hacker Noon
Using Scanned Mesh Data for Auto-Digitized 3D Modeling: Methodology
:::info Authors: (1) Ritesh Sharma, University Of California, Merced, USA rsharma39@ucmerced.edu; (2) Eric Bier, Palo Alto Research Center, USA bier@parc.com; (3) Lester Nelson, Palo Alto Research Center, USA lnelson@parc.com; (4) Mahabir Bhandari, Oak Ridge National Laboratory, USA bhandarims@ornl.gov; (5) Niraj Kunwar, Oak Ridge National Laboratory, USA kunwarn1@ornl.gov. ::: Table of Links Abstract and Intro Related Work Methodology Experiments Conclusion & Future work and References 3 Methodology We compute floor plans in four main steps (see Algorithm 1). First, a user captures the interior of the building as a triangle mesh using an augmented reality headset. The mesh is oriented to align with primary axes, and the building is divided into stories. Floors and ceilings are removed, and flat walls are detected if desired. Finally, one of two floor plan styles is generated by slicing and projecting the resulting 3D model. Next we describe these steps in detail. Data collection Indoor environments can be captured in various formats using different devices. We use a Microsoft HoloLens 2 headset to capture triangle mesh data, annotating the mesh using voice commands. Capturing the triangle mesh The HoloLens provides hardware and software to create a 3D representation of the indoor environment using triangles, as shown in Figure 1-left. The headset overlays the triangles on the user's view of the building interior. Although the headset captures most of the walls, floors, and ceilings, data may be missing from some regions, as in the figure. Annotating the mesh To capture object positions such as sensors, thermostats, windows, and doors, we developed an augmented reality (AR) user interface. This interface uses eye gaze detection and voice commands to enable users to place synthetic objects at desired locations, as shown in Figure 1-right where a synthetic sensor object is added to the immersive environment, superimposed on a physical sensor. 3.1 Mesh orientation After the annotated triangle mesh is captured, geometric processing is performed. Initially, the mesh's orientation is based on the user's starting position and gaze direction. To generate a floor plan, we must determine the floor's position and facing direction. The AR headset provides a rough estimation of gravity direction, but additional computation improves precision. Orienting the floor To determine the mesh orientation, we tested two methods: (1) compute the shortest edges of the mesh bounding box, and (2) cluster the facing directions of mesh triangles using spherical k-means. Method (1) works for buildings with constant altitude and large floor area, but it fails on others, so we mainly use Method (2), described in Algorithm 2. Algorithm 2 applies to a broad range of meshes, including multi-story buildings with vertical dominance. It uses the surface normal vector of each triangle ∆ in the mesh M and filters out triangles deviating significantly from the positive y direction, preserving those likely to represent the floor (∆ ′). We use a spherical coordinates k-means algorithm with k = 1 to find the dominant direction gm of these triangles. We discard triangles that are more han an angle ϕ from the dominant direction and repeat the k-means algorithm until ϕmin is reached (e.g., start with ϕ = 30 degrees and end with ϕmin = 3). This gives an estimate of the true gravity direction gt. To orient the mesh, we compute the angle θ between gt and the negative yaxis and determine the rotation axis Y by taking their cross product. We rotate the mesh by θ around the Y axis, ensuring a horizontal floor. Further details on this method for floor orientation are in Algorithm 2. Figure 2 shows a model where the floor is not level, but tilts down from near to far and from right to left. After Algorithm 2, the floor is horizontal. Finding the height of the floor After orienting the mesh to have a horizontal floor, we find the altitude of the floor in the y direction: we take the centroid of each mesh triangle whose facing direction is within a small angle of the positive y axis. We create a histogram of the y coordinates of these centroids, with each bucket representing a vertical range, such as 2 inches. We consider adjacent pairs of buckets and look for the pair with the highest number of points, such as (0, 1), (1, 2), etc. For a single-story building, we search for two large bucket pairs representing the floor (near the bottom) and the ceiling (near the top). If the building has sunken floors or raised ceilings, the histogram will show spikes at similar but not identical altitudes. To ensure that we locate true ceilings and floors, we search for a gap of several feet (such as the expected floor-to-ceiling height of a room) between the low and high histogram spikes. The spikes below this gap are probably floors, and those above are probably ceilings. To generate the floor plan, we choose the highest of the floor levels and the lowest of the ceiling levels as the computed floor and ceiling levels, respectively. Pairing the buckets rather than taking them individually ensures that we do not overlook spikes in the histogram if the mesh triangles are distributed evenly across two adjacent buckets. Rotate mesh and associated annotations Our next goal is to align the mesh model's primary wall directions with the axes of Euclidean coordinates. One optional step is to eliminate mesh triangles whose surface normals are within a small angle from the positive or negative y directions, as these are probably ceiling or floor triangles. This step is not mandatory, but decreases the number of triangles to be processed. Additionally, we eliminate all triangles below the computed floor altitude and all above the computed ceiling altitude. We then examine the surface normals of the remaining triangles. We express each normal in spherical coordinates and use spherical k-means clustering to identify the dominant wall directions. Assuming the building has mainly perpendicular walls, there will be four primary wall directions, so we can set k = 4 for k-means clustering. If the model still has floor and ceiling triangles, we can set k = 6 to account for the two additional primary directions. Figure 3-left illustrates a heat map of surface normal directions in spherical coordinates from an office building mesh. Figure 3-left contains many light blue rectangles that are far from any cluster center (e.g., far from the buckets that are red, orange, and white). These represent triangles whose facing directions do not line up with any of the primary walls, floors, or ceilings. Such triangles exist for two reasons: (1) Building interiors contain many objects that are not walls, floors, or ceilings, such as furniture, documents, office equipment, artwork, etc. These objects may be placed at any angle. (2) The AR headset generates triangles that bridge across multiple surfaces (e.g., that touch multiple walls) and hence point in an intermediate direction. To compensate, we use a modified version of spherical coordinates k-means clustering that ignores triangle directions that are outliers as follows: After computing spherical k-means in the usual way, we look for all triangles in each cluster whose facing direction is more than a threshold θ1 from the cluster center. We discard all such triangles. Then we run k-means again, computing updated cluster centers. Then we discard all triangles that are more than θ2 from each cluster center where θ2 < θ1. We repeat this process several times until we achieve the desired accuracy. For example, in our current implementation, we use this sequence of angles θi in degrees: [50, 40, 30, 20, 10, 5, 3]. Once our modified k-means algorithm completes, we have 4 (or 6) cluster centers. Figure 3-right shows sample results for k = 6. Once the primary wall directions are computed, we pick the cluster with the largest number of triangles, take its direction (cluster center), project that direction onto the x−z plane, and call it θwall. We rotate the mesh by the angle between θwall and the x axis. Now the primary walls will be pointing along the x axis. Figure 4-left shows a building that is not aligned with the axes. Figure 4- right shows the same building after wall rotation. Adding in the x axis (in red) and z axis (in blue), we see that the walls are now well-aligned with the axes. Dividing a mesh into separate levels The HoloLens can digitize multi-story buildings. Given a multi-story model, we can compute a floor plan for each story. The process is similar to the one used in 3.1 to find the height of the floor. First, our system computes a histogram, as shown in figure 5 and segments the building into multiple levels, as shown in figure 5-middle and right. 3.2 Floor plan computation Our floor plan computation depends on the type of floor plan desired and whether the mesh is oriented with respect to the global axes. If we desire a pen-and-ink style floor plan and the mesh is oriented, we can simply pass the mesh M to the ComputeAndSuperimposeSlices() function, as in line 14 of Algorithm 3.2. However, if the mesh is not properly oriented, we align it with the global axes before computing the floor plan. If a drafting-style floor plan is desired, we utilize lines 2-13 of Algorithm 3.2 to compute flat walls. Computing flat walls To generate a drafting-style floor plan, we compute flat walls and separate them from other building contents using these steps: DBSCAN For each wall direction, we perform a modified DBSCAN algorithm: We compute the centroid C of each triangle ∆i . For each centroid point Ci during DBSCAN, we count the number of other centroid points that are near enough to be considered neighbors. However, instead of looking for neighbors in a sphere around each point as for traditional DBSCAN in 3D, we look for neighbors in a rectangular block of length l, width w and height h centered on the point. This block is tall enough to reach from floor to ceiling in the y direction, a little less wide than a door in the direction parallel to the proposed wall (e.g., 1.5 feet), and a few inches in the wall direction (to allow for walls that deviate slightly from being perfectly flat). Relying on the National Building Code, the wall's minimum height is set at 8 feet, with a thickness of 8 inches. After DBSCAN, the mesh triangles are grouped into wall segments W S. Filtering We discard wall segments that are not good candidates, such as walls that are too small, that aren't near the floor, or that aren't near the ceiling. Plane fitting For each wall segment, we find a plane that has the same facing direction as the wall direction and that is a good fit to the triangle centroids in that wall segment. Given that the points are tightly collected in this direction, simply having the plane go through any centroid works surprisingly well. However, it is also possible to choose a point more carefully, such as by finding a point at a median position in the wall direction. Rectangle construction For each remaining wall segment, we construct rectangles R that lie in the fitted plane and are as wide as the wall segment triangles in width and as tall as the wall segment triangles in height. Mesh replacement For floor plan construction, we discard the original mesh triangles and replace them with the new planar wall rectangles to serve as a de-cluttered mesh. If the subsequent steps use libraries that expect a triangle mesh, we use two adjacent right triangles in place of each rectangle. for each i such that 0 ≤ i ≤ n. For each yi , we compute the intersection of the mesh with the plane y = yi . We end up with a stack of slices (see Figure 7). We can use the same method to produce a drafting-style floor plan. In this case, we begin with the flat wall model instead of the full mesh. This model has fewer details to capture by slicing at multiple altitudes, so we may choose to slice at a single intermediate altitude. Drawing the floor plan For either style of floor plan, we can project the slices to a plane by ignoring the y coordinates of the resulting line segments and plotting the resulting (x, z) coordinates as a two-dimensional image. We have also found it informative and aesthetically pleasing to draw the lines of each slice in a partially-transparent color, so that features that occur at multiple altitudes appear darker than features that occur only at a single altitude. As an example, Figure 8-left shows a mesh gathered from a commercial building. Figure 8-center shows the result of our DBSCAN on that data. Figure 8-right shows the flat walls that result after mesh replacement. Figure 9-right shows the drafting-style floor plan that results from slicing the flat walls. Figure 9-left shows the pen-and-ink floor plan made by slicing the oriented mesh at multiple altitudes. Drawing synthetic objects Because our data comes from an AR headset, we can add synthetic objects to mark the positions of objects in a room, such as sensors and windows. We can display these objects in our 3D models and floor plans. For the steps of mesh processing described above, we note the geometric transformations applied to the mesh and apply the same transformations to the synthetic objects, which then appear in the correct places in the 3D views and in the floor plans. For example, the black objects in Figure 8-left represent the objects placed by the user to show the positions of sensors and windows. Likewise, the red objects in the floor plan of Figure 9-left are those same objects, projected onto the same plane as the mesh slices. :::info This paper is available on arxiv under CC BY-NC-ND 4.0 DEED license. :::
Using Scanned Mesh Data for Auto-Digitized 3D Modeling:...
:::info
Authors:
(1) Ritesh Sharma, University Of California, Merced, USA rsharma39@ucmerced.edu;
(2)...
Source: Hacker Noon
Using Scanned Mesh Data for Auto-Digitized 3D Modeling: Abstract and Introduction
:::info Authors: (1) Ritesh Sharma, University Of California, Merced, USA rsharma39@ucmerced.edu; (2) Eric Bier, Palo Alto Research Center, USA bier@parc.com; (3) Lester Nelson, Palo Alto Research Center, USA lnelson@parc.com; (4) Mahabir Bhandari, Oak Ridge National Laboratory, USA bhandarims@ornl.gov; (5) Niraj Kunwar, Oak Ridge National Laboratory, USA kunwarn1@ornl.gov. ::: Table of Links Abstract and Intro Related Work Methodology Experiments Conclusion & Future work and References Abstract This paper describes a novel approach for generating accurate floor plans and 3D models of building interiors using scanned mesh data. Unlike previous methods, which begin with a high resolution point cloud from a laser range-finder, our approach begins with triangle mesh data, as from a Microsoft HoloLens. It generates two types of floor plans, a "pen-and-ink" style that preserves details and a drafting-style that reduces clutter. It processes the 3D model for use in applications by aligning it with coordinate axes, annotating important objects, dividing it into stories, and removing the ceiling. Its performance is evaluated on commercial and residential buildings, with experiments to assess quality and dimensional accuracy. Our approach demonstrates promising potential for automatic digitization and orientation of scanned mesh data, enabling floor plan and 3D model generation in various applications such as navigation, interior design, furniture placement, facilities management, building construction, and HVAC design. Keywords: Clustering based methods · Floor plans · Augmented Reality· 3D Models. 1 Introduction Floor plans are useful for many applications including navigating in building interiors; remodeling; efficient placement of furniture; placement of pipes; heating, ventilation, and air conditioning (HVAC) design; and preparing an emergency evacuation plan. Depending on the application, different kinds of floor plan are appropriate. For remodeling building interiors or designing HVAC systems, users may prefer a drafting-style floor plan that focuses on planar walls and removes furniture and other clutter. For furniture placement, navigation, or evacuation planning, users may prefer a more detailed floor plan that shows the positions of furniture, cabinets, counter tops, etc. In either case, producing a floor plan can be time consuming, requiring expert skills, such as measuring distances and angles or entering data into a CAD program. Furthermore, it may need to be done more than once because a building changes when walls and furniture are moved, added, or removed. So it is valuable to be able to generate floor plans automatically with little or no training. To generate floor plans, it helps to begin with accurate data that can be collected automatically. Laser range finders, smartphones, tablets, and augmented reality (AR) headsets are some of the devices that have made it easier to collect high-resolution building data in the form of RGBD images, point clouds, and triangle meshes. In this paper, we describe a method for generating drafting style and pen-and-ink-style floor plans by leveraging incomplete and imperfect triangle mesh data. This approach efficiently generates both types of floor plans accurately, supporting a wide range of applications. Main Contribution We describe a new method for generating accurate floor plans using poorly captured triangle mesh data from the Microsoft HoloLens 2. The main contributions are: – A modified Density-Based Spatial Clustering of Applications with Noise (DBSCAN) algorithm, using blocks to capture wall height and thickness. – An orientation-based clustering method that finds walls at arbitrary angles. – The use of k-means clustering to rotate the mesh to the principal axes and to identify the floor and ceiling. – Generating two kinds of precise floor plans from incomplete mesh data. :::info This paper is available on arxiv under CC BY-NC-ND 4.0 DEED license. :::
Using Scanned Mesh Data for Auto-Digitized 3D Modeling:...
:::info
Authors:
(1) Ritesh Sharma, University Of California, Merced, USA rsharma39@ucmerced.edu;
(2)...
Source: Hacker Noon
Social Engineering Attacks: One of the Biggest and Quietest Threats to Your Business
While hackers don't differentiate between the size of their victims, certain attacks, like social engineering attacks, are most common in SMBs and SMEs. This blog specifically addresses the unique challenges and threats you may face as a small and medium-sized business or enterprise (SMB/SME) owner. Not for nothing, social engineering attacks are termed – unseen perils, silent threats to your small business and enterprise. Social Engineering Attacks: The Stats and The Reports Picture this: 📌 Per the report by Barracuda, small businesses witness 350% more social engineering attacks than larger enterprises. 📌 More than 30% of small businesses in the US have weak points that threat actors can exploit. 📌 Per the recent Verizon Data Breach Investigation Report, social engineering attacks, system intrusion, and privilege misuse incidents account for 92% of breaches in small businesses. It is essential to understand what a social engineering attack is and how it impacts your small business to understand how it affects you. What Is Social Engineering? As Cisco puts it, social engineering is not a cyberattack at its heart. It is the art of persuasion and human psychology. The modus operandi here is to target the minds of the victims like conmen and gain their trust. With the victims' trust gained, the attackers go in for the kill by encouraging them to 📍Divulge personal information 📍Click on malicious web links 📍Open malware-infected attachments So, what is Social Engineering? Let's look at the definition. Social Engineering: The Definition Any manipulation technique that exploits human errors to gain personal information, access, or valuables is a social engineering attack. In technical terms, social engineering is the psychological manipulation of people into divulging confidential information or performing unsafe actions. In layman's terms, social engineering is an assault on your emotions and feelings to extract sensitive and personal information for malicious purposes. In the world of cybercrime, scams related to human hacking are on the rise. These scams target unsuspecting users, playing tricks with their minds and luring them into revealing sensitive data and confidential information. Social engineering attacks can happen 👉 Online 👉 In-person 👉 Other interactions How Does Social Engineering Work? Social engineering works in four steps. But essentially, it works on your cognitive biases, where a threat actor impersonates either an authoritative person or a trustworthy individual and cons you into trusting them. They work in four steps. Preparation This is where a threat actor collects information about your business, and this may include your business emails, messaging apps, and other sensitive information related to your business. Infiltration This is where a bad actor will approach you or your employees. They usually imitate a reliable resource and use the previously gathered information to validate themselves. Exploitation Here, a threat actor will use persuasion tricks to obtain more sensitive information from your employees or even you. The threat actor plays on the human mind and tricks you into revealing some sensitive information. Disengagement Once an attacker has the information they sought, they will cut off all ties with you, deploy malware in your office network, and disappear in thin air. Why are SMBs and SMEs Prime Targets? Whether you have a small business or a small enterprise, you are at risk of social engineering attacks. Here are the prime reasons threat actors love your small business or your small enterprise. 📍Lack of resources is one of the primary reasons threat actors target your small business or small enterprise. 📍Trusting Culture of SMBs/SMEs is an important reason for threat actors to love small businesses and enterprises. 📍Your overworked and overburdened employees who juggle multiple responsibilities are the prime targets of threat actors. So, how do you counter these attacks on your business? Top Ways To Protect Your Small Business From Social Engineering Social Engineering attacks can be devastating for your small business, and your business may suffer: 📍Significant financial losses 📍Downtime 📍Reputational damage 📍Loss of Stakeholder and customers' trust You can counter social engineering attacks on your small business with these methods. 📌Train your employees to recognize 📍Phishing emails 📍Suspicious phone calls 📍Unsolicited requests for sensitive data 📌 Verify each email for sender addresses and the legitimacy of the data requests. 📌 Deploy two-factor authentication or multi-factor authentication on all your accounts for better security. 📌 Data encryption is your ally; embrace it with both hands. Encrypt your data at rest and in transition. When you follow these steps, you can ensure that your small business is protected from social engineering attacks. While you are at it, here are some common scams to watch out for. Common Scams to Watch Out For While practicing the four ways you can mitigate the threat of social engineering attacks, keeping an eye on some of the most common scams prevalent is essential. 📌 Phishing 📌 Tech Support Scams 📌 Pretexting 📌 Baiting 📌 Malware 📌 CEO Fraud Each of these scams is also an individual scam, but they can be deployed for sophisticated social engineering attacks. The best method to prevent social engineering attacks is to create awareness about the various tactics used by threat actors. Final Words Social engineering is becoming dangerous because attacks have become sophisticated with tech evolution. Threat actors indulging in social engineering are master con artists who know how to trick you into revealing sensitive information by invoking extreme emotions in you and your employees. So, the best way to protect your small business from social engineering is to educate your employees.
Social Engineering Attacks: One of the Biggest and...
While hackers don't differentiate between the size of their victims, certain...
Source: Hacker Noon
Hackers without borders
HWB, for a better world in cyberspace. Hackers Without Borders is an international humanitarian association that provides emergency assistance to non-governmental institutions in the event of crises and disasters related to cyberattacks.
Hackers without borders
HWB, for a better world in cyberspace. Hackers Without Borders is an international...
Mastering the Art of Software Development: From Developer to Craftsperson
In this blog article, we'll explore the principles of software craftsmanship, the benefits of becoming a software craftsperson, and how we can improve our skills. We'll look at a growth mindset and some resources to help us on our journey. Let's dive in! Witnessing Craftsmanship Let's say we enter a home and face this beautifully crafted staircase. Why do we even think this is beautiful? What comes to mind is the skill and work that has gone into it. The craftsperson has had to think about how to ensure that it's only connected at the top and the bottom, it can support the weight and doesn't fall under its weight, or when there are people on it, climbing up and down. There is also the craftsmanship of the handrail and the curved wall. Why does this craftsmanship strike us or cause us to take notice? Is it because we can see the care taken in creating the stairs? Or maybe we can see that a lot of skill went into it? Or perhaps it's because the knowledge of physics has been used to make it appear that it defies gravity? What Is Craftsmanship? From Collins dictionary, we can see the definition is: Craftsmanship is the quality that something has when it is beautiful and has been very carefully made. What Is Software Craftsmanship? The Manifesto for Software Craftsmanship describes it as follows: Not only working software, n but also well-crafted software. Not only responding to change, n but also steadily adding value. Not only individuals and interactions, n but also a community of professionals. Not only customer collaboration, n but also productive partnerships. If we simplify it, a software craftsperson cares about all aspects of their work. What Separates a Software Developer From a Software Craftsperson? While software developers are primarily concerned with the code they write, software craftspeople take a broader approach. They manage the code, its maintainability, deployability, and application monitoring. This results in robust applications that meet user needs and bring joy to users. Software craftspeople continually hone their skills to create better applications that perform well in production without constant supervision. Quality applications are made through thorough testing and proactive monitoring that alerts the team to potential issues. Why Choose to Embark on the Path of a Software Craftsperson? For anyone who connects with the principles of software craftsmanship — well-crafted software, steadily adding value, being part of a community, and having productive partnerships with their users — the path of software craftsperson is a good fit. It's a journey where we continually learn the craft of building software in an evolving landscape. As software craftspeople, we're not happy just throwing things out the door but instead focusing on quality and stability. We also want to build up a community of people who can create high-quality software so that we all can learn from each other and build on what others are learning. Why Did I Make the Transition to Software Craftsperson? Different people have different journeys, motivations, and experiences regarding craftsmanship. Let me tell you my story. I had worked in software development for over ten years when I joined a software craftsmanship dojo. At the start, I didn't understand the impact that the dojo would have. I thought I was only there to learn Test Driven Development (TDD). Previously, I had learned TDD by participating in code retreats. Still, I needed help incorporating the new working method into day-to-day coding outside of fixing defects or working on straightforward features. The dojo allowed me to learn hands-on each week, developing the skills that drive my development through testing. This mindset progressed to the point where I now find it hard to think about developing without using TDD. The move to software craftsmanship made sense as a path for my career since I had worked on many projects where we were fighting the storm of trying to develop the application, dealing with production issues, and managing our technical debt. This storm led me to burnout and disillusionment in the software developer career. Having an opportunity in the weekly two-hour dojo to learn new skills and have hands-on experience meant that it was two hours that I looked forward to the most in the week. Outside the dojo, I practice a daily coding exercise, use what I learned in my work, and consider new ways of doing things. This practice has led me to develop skills to quickly deploy new, well-tested applications with testing, monitoring, and scanning toolchains, improving my DORA and DASA scores. Growth Mindset Moving to become a software craftsperson will mean that we can see that there are ways that we can grow. Rather than seeing our skills as something that can't be changed, we realise we can improve incrementally over time. So, rather than having a fixed mindset where we think our skills limit our growth, we have a growth mindset. Referring to the previous post, building habits and working on getting 1% better is fundamental to creating a growth mindset. This growth mindset doesn't just stop with us; it should also include growing the people around us. Having a growth mindset is vital to building a community of software craftspeople. Benchmarking Our Skills To understand where we are with our software craftsmanship skills, we can use the DevOps Agile Skills Association (DASA) DevOps quick scan to know where we are with our skill levels. Then, we can work on improving the areas that need addressing. The quick scan looks at 12 different areas: Business Value Optimisation Business Analysis Architecture and Design Test Specification Programming Continuous Delivery Infrastructure Engineering Security, Risk, Compliance Courage Team Building DevOps Leadership Continuous Improvement Each area will receive a score from one (novice) to five (master). The report will help us understand what is required at the next level and how to improve. Methodology for Developing Quality Cloud Applications A methodology called the twelve-factor app is used to build software-as-a-service applications that can scale without significant changes to tooling, architecture, or development practices. The created app uses declarative formats for setup automation, has a clean contract with the underlying operating system, and minimizes divergence between development and production. The methodology can be applied to apps in any programming language and can use any combination of backend services. We can build the best software-as-service application possible by following the twelve factors. Getting Started on Our Journey as Software Craftspeople Understanding more about software craftsmanship can always be helpful. There is a link to further reading on the Manifesto for Software Craftsmanship. There you will see, among others: Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave Hoover and Adewale Oshineye Software Craftsmanship by Pete McBreen The Pragmatic Programmer by David Thomas and Andrew Hunt A title missing from that list is: The Software Craftsman by Sandro Mancuso These titles help us further understand software craftsmanship and what we must look at in our journey. We should improve ourselves and those around us to build well-crafted software using the lessons learned. Conclusion Changing our identity from a developer to a software craftsperson leads us to build well-crafted applications. The key to the change is treating it as a journey, and as with any journey, we can take many different routes. We've talked about some of the resources that might be useful, and we can use the resources that entice us and keep us going along the journey. Transforming 1% daily will mean we will have significantly impacted how we work for a year and beyond. References Craftsmanship Definition — https://www.collinsdictionary.com/dictionary/english/craftsmanship Manifesto for Software Craftsmanship — https://manifesto.softwarecraftsmanship.org DASA Quick Scan — https://scan.devopsagileskills.org BriX Software Craftsmanship Dojo — https://swcraftsmanshipdojo.com DORA Quick Check — https://dora.dev/quickcheck The Twelve-Factor App — https://12factor.net Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman by Dave Hoover and Adewale Oshineye — https://www.amazon.com/Apprenticeship-Patterns-Guidance-Aspiring-Craftsman/dp/0596518382/ Software Craftsmanship by Pete McBreen — https://www.amazon.com/Software-Craftsmanship-Imperative-Pete-McBreen/dp/0201733862 The Pragmatic Programmer by David Thomas and Andrew Hunt — https://www.amazon.com/Pragmatic-Programmer-journey-mastery-Anniversary/dp/0135957052 The Software Craftsman by Sandro Mancuso — https://www.amazon.com/Software-Craftsman-Professionalism-Pragmatism-Robert/dp/0134052501 Credits The title image is from Dreamstudio AI.
craftsmanship Software Craftsman software craftsmanship software craftsperson
Mastering the Art of Software Development: From Developer...
In this blog article, we'll explore the principles of software craftsmanship,...
Source: Hacker Noon
NTLM Relay Gat - Powerful Tool Designed To Automate The Exploitation Of NTLM Relays
NTLM Relay Gat is a powerful tool designed to automate the exploitation of NTLM relays using ntlmrelayx.py from the Impacket tool suite. By leveraging the capabilities of ntlmrelayx.py, NTLM Relay Gat streamlines the process of exploiting NTLM relay vulnerabilities, offering a range of functionalities from listing SMB shares to executing commands on MSSQL databases. Features Multi-threading Support: Utilize multiple threads to perform actions concurrently. SMB Shares Enumeration: List available SMB shares. SMB Shell Execution: Execute a shell via SMB. Secrets Dumping: Dump secrets from the target. MSSQL Database Enumeration: List available MSSQL databases. MSSQL Command Execution: Execute operating system commands via xp_cmdshell or start SQL Server Agent jobs. Prerequisites Before you begin, ensure you have met the following requirements: proxychains properly configured with ntlmrelayx SOCKS relay port Python 3.6+ Installation To install NTLM Relay Gat, follow these steps: Ensure that Python 3.6 or higher is installed on your system. Clone NTLM Relay Gat repository: git clone https://github.com/ad0nis/ntlm_relay_gat.gitcd ntlm_relay_gat Install dependencies, if you don't have them installed already: pip install -r requirements.txt NTLM Relay Gat is now installed and ready to use. Usage To use NTLM Relay Gat, make sure you've got relayed sessions in ntlmrelayx.py's socks command output and that you have proxychains configured to use ntlmrelayx.py's proxy, and then execute the script with the desired options. Here are some examples of how to run NTLM Relay Gat: # List available SMB shares using 10 threadspython ntlm_relay_gat.py --smb-shares -t 10# Execute a shell via SMBpython ntlm_relay_gat.py --smb-shell --shell-path /path/to/shell# Dump secrets from the targetpython ntlm_relay_gat.py --dump-secrets# List available MSSQL databasespython ntlm_relay_gat.py --mssql-dbs# Execute an operating system command via xp_cmdshellpython ntlm_relay_gat.py --mssql-exec --mssql-method 1 --mssql-command 'whoami' Disclaimer NTLM Relay Gat is intended for educational and ethical penetration testing purposes only. Usage of NTLM Relay Gat for attacking targets without prior mutual consent is illegal. The developers of NTLM Relay Gat assume no liability and are not responsible for any misuse or damage caused by this tool. License This project is licensed under the MIT License - see the LICENSE file for details.Download Ntlm_Relay_Gat
NTLM Relay Gat - Powerful Tool Designed To Automate...
NTLM Relay Gat is a powerful tool designed to automate the exploitation of NTLM...
Source: KitPloit
Post-Apocalyptic Survival Game DECIMATED Launches On Epic Store
SINGAPORE, Singapore, May 7th, 2024/GamingWire/-- As the digital dawn of gaming rises, the visionary minds behind DECIMATED are ecstatic to unveil their groundbreaking foray into the desolate yet captivating future of online gaming. DECIMATED, a novel 3rd person PvP and PvE online game experience, invites players to an unprecedented journey through a vast dystopian landscape. Offering freedom for players to explore this post-apocalyptic playground, DECIMATED opens up a realm where players craft their own fate as human citizens struggling for survival or cyborg cops enforcing order in a world where nature and technology collide in chaos. https://youtu.be/18NLye2JA?si=5SBJktv0U4TV25MJ&embedable=true A New World Awaits: Immersive Gameplay and Unparalleled Adventure At the heart of DECIMATED lies a richly designed, immersive world that tests each player's survival instincts at every turn. Players engage in a relentless battle for existence against the apocalyptic aftermath, populated by mutated creatures, environmental hazards, and rival survivors. This rich narrative is further enhanced by offering players the opportunity to salvage advanced technology, uncover hidden treasures, and navigate the perils of a fractured society on the brink of rebirth. DECIMATED stands as a testament to survival, strategy, and resilience, offering a sandbox of endless possibilities. Whether patching up a battle-scarred vehicle, building impenetrable bases, to navigating the treacherous markets of this new world, players can embrace the lawless land, facing off against deranged robots, monstrous bio-entities, and other mutants, all while forging alliances or rivalries with other players to carve out a semblance of civilization amid chaos. Backed By 46 Investors And a Growing Community Decimated received an Epic Mega Grant and was backed by 46 investors in December 2021 after the studio was self-funded as an indie start-up for three years. Developers Fracture Labs were offered M from 180 investors and accepted .5M from VCs, including Mechanism Capital, Spartan Capital, Polygon Ventures, Good Games Guild, Israel Blockchain Association, Dutch Crypto Investors, and Metavest Capital, to name a few. Since then, the Decimated community has grown to 60k followers on Twitter and 23k members in Discord, many of whom are participating in the closed alpha testing. A Quest For Dominance In The Wasteland: The DIO Token Economic gameplay takes a revolutionary turn in DECIMATED with the DIO token, integrated into the game using the Solana chain and with interoperability between all of Fracture Labs' planned games. This creates a real-time digital economy within DECIMATED, incentivizing players for each and every decision made, as well as their efforts within the game itself. Every transaction, trade, and treasure found within this desolate world is valued in DIO, bridging the game to real-world economic principles and making the thrill of loot discovery and trading exponentially more engaging. The ways to earn in DECIMATED are as varied as the wasteland itself. Players can venture into the unknown, salvaging cargo and lost technology, engaging in both legal and illicit commerce to claim their fortune. Whether it's ambushing convoys for loot, undertaking dangerous missions, or trading valuable finds on the virtual market, success in the desolate landscape of DECIMATED demands wit, bravery, and a keen sense of strategy. Decimated features a leaderboard system that rewards the best-performing players, whether they play solo, in guilds, or in clans. In a recent announcement, DECIMATED confirmed its official sponsorship of Token2049 Dubai, underscoring its commitment to innovation, blockchain technology, and the burgeoning digital economy, demonstrating its potential for the future from the lens of immersive gaming. This sponsorship accentuates DECIMATED's commitment to forging a future where gaming transcends mere entertainment to become a cornerstone of digital economies in virtual worlds, allowing players to earn real rewards through tournaments. The community buzzed with excitement for DECIMATED listing on the Epic Games Store in May 2024. While the official launch date is yet to be announced, the open alpha is pegged for the end of 2024, and the eagerness around this launch grows daily as players and fans are encouraged to keep an eye out for what hopes to be a landmark announcement in online gaming history. About DECIMATED DECIMATED is the future of immersive online gaming, offering a dynamic 3rd person PvP and PvE experience within a richly detailed post-apocalyptic world. With its unique digital economy and endless opportunities for exploration, combat, and alliance, DECIMATED invites players to define their legacy in a world where every decision can mean the difference between survival and extinction. For media inquiries or further information, please visit https://www.decimated.net Contact Stephen Arnold Fracture Labs PTE Ltd contact@decimated.net +35699554901 :::tip This story was distributed as a release by Gamingwire under HackerNoon's Business Blogging Program. Learn more about the program here. :::
Post-Apocalyptic Survival Game DECIMATED Launches...
SINGAPORE, Singapore, May 7th, 2024/GamingWire/--
As the digital dawn of gaming...
Source: Hacker Noon
Human Augmentation in Meme Analysis: Learnings and Challenges
Human augmentation in meme analysis, especially in hate speech detection, presents challenges in correcting scene graphs and linking knowledge. Automatic augmentation methods like MemeGraphs show promise but also face hurdles in entity linking to knowledge bases. Understanding these challenges helps improve the accuracy and performance of hate speech detection models.
Augmentation correcting scene Human Augmentation scene graphs
Human Augmentation in Meme Analysis: Learnings and...
Human augmentation in meme analysis, especially in hate speech detection, presents...
Source: Hacker Noon
Comparing Meme Analysis Methods: MemeGraphs vs. ImgBERT
Benchmarking hate speech detection models in meme analysis reveals MemeGraphs' superior performance over ImgBERT and TxtBERT. MemeGraphs' use of scene graphs and knowledge integration significantly enhances accuracy in identifying offensive content in memes, marking a substantial advancement in hate speech detection methods.
Analysis Methods Benchmarking hate Comparing Meme ImgBERT Benchmarking
Comparing Meme Analysis Methods: MemeGraphs vs. ImgBERT...
Benchmarking hate speech detection models in meme analysis reveals MemeGraphs' superior...
Source: Hacker Noon
Join Morph’s Revolution With The Launch Of Holesky Testnet
Morph, an Ethereum layer 2 leading a Consumer Blockchain revolution, has announced the launch of its latest advancement, its Holesky Testnet. This new development comes on the heels of their successful Morph Sepolia Testnet and introduces a highly anticipated platform that showcases significant improvements in blockchain infrastructure and application. Already known for its commitment to consumer-centric solutions, Morph stands as a unique player in the space by focusing on real-world utility over the often speculative nature of many blockchain applications. Unlike traditional platforms that prioritize DeFi and trading, Morph aims to provide services that people can use daily, making blockchain technology an integral part of everyday life. The launch of the Holesky Testnet with its enhanced capabilities is a crucial step towards realizing this vision, bridging the gap between sophisticated technology and practical, everyday applications. Key Features and Innovations of the Morph Holesky Testnet: Enhanced Performance and Infrastructure The Holesky Testnet operates using Ethereum Holesky as Layer 1, elevating standards for performance and aligning closely with the infrastructure of the anticipated mainnet. This transition promises users a seamless and advanced preview of what to expect with the full launch. Advanced Features EIP-4844 Optimistic zkEVM Integration: This integration significantly reduces transaction costs, making blockchain operations more efficient. Revamped Bridge Mechanism: The updated bridge mechanism now allows for withdrawals to be finalized in just one transaction, enhancing the user experience. Robust Decentralized Sequencer Network: With fully decentralized modules and an increased number of sequencers, the network's backbone is stronger than ever, ensuring unparalleled reliability and security. Economic System Innovations The testnet introduces a novel economic model centered around a decentralized sequencer network, positioning Morph to set new market trends and standards. Impact on the Morph Community For testnet users, prior contributions to the Sepolia testnet are well recorded. Users are now encouraged to transition to the Holesky testnet to benefit from lower fees and superior functionality. For developers, Morph recommends migrating contracts from the Sepolia to the Holesky testnet. Detailed guidance on this process can be found here. The explorer is accessible for tracking deployments and interactions at Holesky Testnet Explorer. Engaging with Morph's New Testnet: Developers new to Morph's platform can quickly get up to speed through the comprehensive documentation available. For those already familiar with the Sepolia testnet, the core steps to engage with Holesky remain consistent. Start by deep diving into Morph's technology on the About Morph Page, then understand the inner workings of Morph's infrastructure, and start the development journey with a quickstart guide. For more, review comprehensive Developer Documentation to build innovative blockchain applications. Morph invites the global tech community to join in this revolutionary phase. This new testnet is a significant leap towards realizing a consumer-centric blockchain ecosystem that promises to redefine interaction with technology. About Morph Morph is a fully permissionless EVM L2 that uses a combination of optimistic and zero knowledge rollup technology to enable limitless possibilities in finance, gaming, social media, and entertainment. Morph is the first Layer 2 on Ethereum to launch with a decentralized sequencer, aligning it with several core principles of web3 — decentralization, censorship resistance, and security. The blockchain was built with mainstream audiences like gamers and social media users in mind, making it a user-friendly option for developers who require a chain to build these types of apps on. Website | Twitter |Discord | Telegram |Medium|Linkedin :::tip This story was distributed as a release by Btcwire under HackerNoon's Business Blogging Program. Learn more about the program here. :::
Join Morph’s Revolution With The Launch Of Holesky...
Morph, an Ethereum layer 2 leading a Consumer Blockchain revolution, has announced...
Source: Hacker Noon
Silent Protocol To launch ‘Ghost layer’: The First Modular L1.5 For Ethereum
PANAMA CITY, Panama, May 7th, 2024/Chainwire/--Silent Protocol, a forefront innovator in blockchain privacy technology, has announced the release of the Ghost Layer, a cutting-edge modular Layer 1.5 designed for the Ethereum ecosystem. This new solution is engineered to provide compliant privacy enhancements to public blockchains, suitable for both retail and institutional applications. The Ghost Layer is using a zero-knowledge (ZK) based system alongside its proprietary 0VM technology. These advancements allow for the private storage of assets and enable the omnidirectional flow of value across various blockchains. It facilitates the seamless integration of existing applications into private workflows through its ability to open access channels to different execution layers. The founder of Silent Protocol, Novachrono, explains the unique position of the Ghost Layer in the blockchain hierarchy: “If you create a ledger whose state is decided by the base ledger but the computation is stored elsewhere—you can call it a Layer 1.5.” This innovative positioning combines the robustness of base layer processing with enhanced privacy and interoperability functions. In 2023, Silent Protocol launched EZEE, addressing the challenge of state denial and introducing a fully composable architecture that supports functional privacy. This framework allows developers to build an ecosystem of applications without the constraints of isolated systems. Furthermore, Silent Protocol has developed the Silent Compliance VM, a decentralized protocol that selectively reveals data to prevent misuse by bad actors. Isa Sertkaya, Co-founder and CTO of Silent Protocol, emphasized the strategic advantage of the Ghost Layer: "Rooted out of Ethereum and supporting Ethereum assets, the Ghost Layer achieves modularity not by capturing value vertically but by enabling horizontal composability across different chains." The implementation of 0VM technology allows the Ghost Layer to advance the state of the system while verifying updates and utilizing the base ledger for state validation through zksnarks. This launch signifies Silent Protocol's commitment to building a compliant and composable framework that enables institutions to securely and privately leverage Ethereum. Developers across various blockchains will now have the opportunity to transform their existing applications into privacy-preserving applications, known as 0dapps while maintaining the liquidity available on the mainnet. About Silent Protocol Silent Protocol is a leader in blockchain privacy technology, dedicated to enhancing security and compliance in blockchain applications without sacrificing performance. Founded by a team of blockchain innovators, Silent Protocol develops scalable, privacy-centric frameworks like the EZEE framework and Silent Compliance VM. These tools empower developers and institutions to transform existing applications into secure, privacy-preserving platforms while fostering interoperability across different blockchain systems. Contact Co-Founder & CTO İsa Sertkaya isa@silentdao.org :::tip This story was distributed as a release by Chainwire under HackerNoon's Business Blogging Program. Learn more about the program here. :::
Silent Protocol To launch ‘Ghost layer’:...
PANAMA CITY, Panama, May 7th, 2024/Chainwire/--Silent Protocol, a forefront innovator...
Source: Hacker Noon