[{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/","section":"","tags":null,"title":""},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/categories/ai/","section":"categories","tags":null,"title":"AI"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/categories/","section":"categories","tags":null,"title":"Categories"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/general/","section":"tags","tags":null,"title":"General"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/go/","section":"tags","tags":null,"title":"Go"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/index/","section":"tags","tags":null,"title":"Index"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/categories/opensource/","section":"categories","tags":null,"title":"OpenSource"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/opensource/","section":"tags","tags":null,"title":"OpenSource"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/personal-thoughts/","section":"tags","tags":null,"title":"Personal Thoughts"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/post/","section":"post","tags":["index"],"title":"Posts"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/programming/","section":"tags","tags":null,"title":"Programming"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/","section":"tags","tags":null,"title":"Tags"},{"body":"What if programming languages were designed for AI, not humans? A few weeks ago I saw a post on social media -- someone asking whether it was time to create a programming language designed for consumption by code assistants. Not for humans to write, but for AI to generate and humans to verify.\nI couldn't stop thinking about it.\nEvery programming language I use was designed for humans to write. Python optimizes for readability. Rust optimizes for safety. JavaScript optimizes for getting something on screen fast. They all assume a human is typing the code.\nBut that's not really how I work anymore. Most of my code now starts with me describing what I want, an AI generating it, and me reviewing the result. The problem is that review step. When an AI generates 200 lines of Python, I have to read the implementation to know if it's correct. I'm tracing logic, checking edge cases, understanding control flow -- for code I didn't write, in a language optimized for writing, not for reading someone else's work.\nThat felt like the wrong tool for the job. So I started experimenting.\nThe idea What if the AI didn't just write code, but also wrote contracts -- formal statements about what the code guarantees? And what if the language made those contracts structural, not optional? Then instead of auditing implementations, you'd audit declarations:\n1function safe_divide(a: Int, b: Int) returns Result\u0026lt;Int, String\u0026gt; 2 ensures result.is_ok() implies b != 0 3 ensures result.is_err() implies b == 0 4{ 5 if b == 0 { 6 return Err(\u0026#34;Division by zero\u0026#34;); 7 } 8 return Ok(a / b); 9} Those two ensures lines tell you what this function guarantees. You don't need to read the body. The compiler generates runtime assertions that enforce the contracts -- if the implementation doesn't match, the program fails loudly rather than silently doing the wrong thing.\nThis is the core of what I've been calling Intent -- a contract-based language where the AI expresses guarantees, and the human verifies those guarantees match what they asked for.\nWhat makes it different from \u0026quot;just add asserts\u0026quot; Fair question. A few things emerged as I worked on this that surprised me:\nContracts aren't comments. In Python or JavaScript, an assert is something you can add. In Intent, contracts are part of the grammar. The linter warns when they're missing. This matters because when an AI generates code, optional things tend to get skipped. Structural things don't.\nNo type inference, on purpose. let x: Int = 5; not let x = 5;. This felt wrong at first -- why make the AI write more? But the point isn't the AI's experience. It's the auditor's. When everything is explicit, there's nothing to mentally reconstruct.\nIntent blocks link English to code. This is the feature I'm most curious about:\n1intent \u0026#34;Account safety\u0026#34; { 2 goal \u0026#34;Maintain non-negative balances for all accounts\u0026#34;; 3 guarantee \u0026#34;Deposits always increase balance by exact amount\u0026#34;; 4 verified_by BankAccount.invariant; 5 verified_by BankAccount.deposit.ensures; 6} The verified_by references are compiler-checked. If BankAccount.deposit.ensures doesn't exist, the program doesn't compile. You can't state a goal that isn't backed by an actual contract. I think there's something interesting here about bridging natural language and formal verification, though I'm still working out how far it can go.\nWhere it is now I built a working compiler in Go that produces native binaries via Rust. You can write programs with loops, arrays, enums, pattern matching, error handling (Result/Option with try operator), quantifier contracts (forall/exists), and multi-file modules with visibility control.\nIt's a proof of concept -- enough to test whether the idea has legs, not something you'd use in production. The biggest limitation is that contracts are only runtime-checked (assertions). The roadmap has Z3 SMT solver integration to prove contracts at compile time, which is where this would become genuinely more powerful than existing approaches. Today it's closer to \u0026quot;Rust with mandatory asserts\u0026quot; than it is to formal verification.\nThere's also no generics on user-defined types, no standard library, and no editor support. Though that last one matters less when the intended author is an AI, not a human in VS Code.\nOpen questions I'm sharing this because I think the question is more interesting than my particular answer to it. Some things I'm still thinking about:\nIs \u0026quot;audit the contracts\u0026quot; actually faster than \u0026quot;audit the code\u0026quot;? My experience says yes, but I'm biased. I'd like to see others try it. What's the right level of contract detail? Too little and you're back to trusting the implementation. Too much and auditing contracts is as hard as auditing code. Should the AI also generate the intent blocks, or should those come from the human? Right now the AI does everything. But maybe the human should write the intent blocks (goals and constraints in English) and the AI fills in the contracts and implementation. How far can runtime assertions take you before you need static verification? I was surprised how useful they were during development -- postcondition failures caught real bugs immediately. But for production use, you'd want compile-time proofs. The code is open source. I'd genuinely like to hear what others think about the approach, the design tradeoffs, and whether this direction is worth exploring further.\nGitHub: https://github.com/lhaig/intent\n","link":"https://fc4c6dbc.haigmail.pages.dev/announcing-intent-programming-language-for-ai/","section":"post","tags":["General","Programming","Go","OpenSource","Personal Thoughts"],"title":"What if programming languages were designed for AI, not humans"},{"body":"Back in 2021, I had an idea. What if there was a better way to share and discover Nomad job files and Nomad Packs? What if we could make it as easy to find a production-ready Nomad configuration as it is to find a Docker image? We needed a helm like repository for Nomad\nThat idea became Ramble -- Github Repo.\nToday, after multiple restarts, countless refactorings, and a journey that taught me Go from the ground up, I'm finally ready to share it.\nThe Journey That Almost Wasn't I'll be honest: Ramble has been restarted more times than I care to count. Each restart came as I learned something new about Go, about web development, about what I was trying to build. There were moments when I questioned whether it would ever see the light of day.\nThen last year, something changed. While out running, I had a health scare that put me on the sidelines for a year. No exercising, just time to think. By the end of the year, I'd come to a simple conclusion: I needed to either finish the things I'd started, or stop pretending I would.\nSo over the break, I made it happen. Ramble is now open source and ready for the community.\nWhat Is Ramble? Ramble is a registry for HashiCorp Nomad job files and Nomad Packs. Think of it as a discovery platform where you can:\nEasily discover and share Nomad job specifications and Packs Search interactively with live search-as-you-type powered by HTMX Navigate quickly with a responsive, SPA-like experience built on server-side rendering Manage your contributions with user accounts and session-based authentication It's built with Go, Fiber, and HTMX.\nThe Tech Behind It For those curious about the stack:\nBackend: Go 1.25 with Fiber v2 Database: PostgreSQL with GORM Frontend: HTMX, Hyperscript, and Tailwind CSS Templating: Go's html/template The combination gives fast, server-rendered pages with interactive elements.\nA Journey Made Possible by Others No project like this happens in isolation, and I owe thanks to several people who made this possible:\nMike Nomitch, for those early conversations when Ramble was just an idea bouncing around in my head.\nThe entire Nomad Engineering team at HashiCorp, who put up with me for years and taught me so much about building distributed systems.\nJonathan Vermeulen, for helping me develop the idea and for sharing my passion for making Nomad more accessible.\nPeter Wilson, for coaching me through learning Go and being incredibly patient when my code was, let's be kind and say, \u0026quot;a work in progress.\u0026quot;\nWhat's Next? Ramble is out there now at https://ramble.openwander.org and github.com/open-wander/ramble. It's ready for you to try out, use, to contribute to, to make better. I am sure i have made mistakes and I hope that you will help me make it better. And it needs to start being populated\nGetting Started Want to try it out? You have a few options:\nLocal Development:\n1git clone https://github.com/open-wander/ramble.git 2cd ramble 3export DATABASE_URL=\u0026#34;host=localhost user=postgres password=postgres dbname=rmbl port=5432 sslmode=disable\u0026#34; 4make run Using Docker:\n1docker build -t ramble . 2docker run -p 3000:3000 -e DATABASE_URL=\u0026#34;your-db-url\u0026#34; ramble The server will start on http://localhost:3000, and you'll need Go 1.25+ and PostgreSQL to run it locally.\nI've also included:\nA self-hosting guide Docker support for easy containerized deployment Example Nomad job files to get you started creating packs and job specs. Full documentation in the repository Whether you're a Nomad user looking for an easier way to share configurations, or someone who is a more experienced programmer than I am, I'd love to hear your thoughts.\nBetter Late Than Never Looking back, I'm glad I didn't give up on this. The restarts weren't wasted time; they were part of learning. The health scare that forced me to slow down? It gave me the perspective I needed to finish what I started.\nSometimes the best way forward is to stop pretending and start doing.\nIf you're working with Nomad, give Ramble a try. And if you're sitting on an idea that you keep restarting, maybe this is your sign to push through and finish it.\nBecause better late than never really is good enough.\nCheck out Ramble: https://ramble.openwander.org github.com/open-wander/ramble\nGet Started: See the Self-Hosting Guide for deployment instructions.\n","link":"https://fc4c6dbc.haigmail.pages.dev/announcing-ramble-nomad-registry/","section":"post","tags":["General","Programming","Nomad","Go","OpenSource","Personal Thoughts"],"title":"Better Late Than Never: Announcing Ramble, A Nomad Job \u0026 Pack Registry"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/categories/cloud/","section":"categories","tags":null,"title":"Cloud"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/nomad/","section":"tags","tags":null,"title":"Nomad"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/categories/management/","section":"categories","tags":null,"title":"Management"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/personal-development/","section":"tags","tags":null,"title":"Personal Development"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/categories/presales/","section":"categories","tags":null,"title":"PreSales"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/presales/","section":"tags","tags":null,"title":"PreSales"},{"body":"\u0026quot;Do you work with [insert latest tool here]?\u0026quot;\nIf you're a Solution Engineer, you've heard this question countless times. That moment when a prospect mentions a tool you've never heard of can either be an opportunity or an uncomfortable scramble.\nThe difference? Whether you've done your homework or not.\nWhy This Matters As Solution Engineers, we need to understand more than just our own products. We need to understand the ecosystem our customers work in. When they ask about integration with a specific tool or mention a new technology, they're not just making small talk - they're trying to figure out if we actually understand their world.\nIf we can't engage with the technologies that matter to them, we're not much use as advisors.\nThe MCP and Code Assistance Journey Let me share a recent example. When the Model Context Protocol (MCP) and AI code assistance buzz started, I knew I needed to understand it. Not because I'm particularly noble about learning, but because I work in Privileged Access Management at StrongDM, and I could already see the questions coming: \u0026quot;How do we let our developers use these AI tools while maintaining compliance and security?\u0026quot;\nI couldn't just wait for someone else to figure it out. I needed to understand the practical reality - the good, the bad, and the security gaps.\nSo I went down the rabbit hole. I needed to understand not just how MCP worked in theory, but what it looked like in practice.\nI set up three different databases - MySQL, MSSQL, and PostgreSQL - with realistic test data. Not because I love database administration, but because I needed to see how this stuff worked in an environment that looked like what customers use.\nI configured three different MCP clients and connected them to Claude. Each one behaved differently. Each one had its own quirks and configuration headaches. Each one presented different security considerations.\nThe goal wasn't to become an MCP expert for the sake of it. The goal was to understand the security implications. How do you grant access to these tools while maintaining compliance? Where are the gaps? What are customers going to struggle with?\nTurns out, there are significant gaps in how to securely implement these tools in enterprise environments. And now I know what those gaps are. That knowledge has already proven valuable in customer conversations.\nThe Bigger Picture This isn't really about MCP specifically. It's about the fact that our job requires us to stay current. The technology landscape keeps moving. New tools show up. Platforms add features. Customer requirements get more complex.\nIf you wait for formal training or official enablement, you're already behind. Early-adopter customers are exploring these technologies right now. They need Solution Engineers who can talk about them intelligently today, not in six months.\nHow? Here's what works for me:\nPick your battles. You can't learn everything. Focus on what matters to your customers and your market. Develop a sense for what's real versus what's hype.\nBuild real things. Reading documentation is fine, but deploying and configuring tools is where you learn what matters. The documentation never tells you about the weird edge cases or the configuration gotchas.\nThink about security early. As you explore new tech, think about how it'll be used in real organizations. Where are the security concerns? What compliance questions will come up?\nWrite things down. Document what you learn. Future you will thank you, and your colleagues will benefit too.\nTalk to other people doing the same thing. The community around new technologies is usually full of people figuring out the same problems you are.\nWhat are the benefits? When you put in this work, you get better at your job. Customer conversations get easier because you can engage with what they're talking about. You understand their challenges because you've dealt with them yourself.\nYour product feedback gets better too. When you've tried to integrate something, you know where the pain points are and where the opportunities are.\nAnd yeah, it's good for your career. Organizations value Solution Engineers who understand the technology landscape, not just their own product.\nMaking It Sustainable Look, this takes time and energy. Here's how you could make it work:\nSet boundaries. You literally cannot explore every new technology. Focus on what matters.\nMake it part of your work. Look for chances to explore new tech as part of POCs or customer conversations. Then you're learning while doing actual work.\nShare the load. Get your team involved. When everyone shares what they're learning, you all benefit.\nAccept that curiosity is part of the job. If you're not interested in how technology works, Solution Engineering is going to be a struggle.\nHere's the thing: being a good Solution Engineer means understanding more than just your product. It means staying current with the broader technology landscape and being ready to engage with customers who are exploring new approaches.\nWhen someone asks \u0026quot;Do you work with [insert tool here]?\u0026quot; you want to be able to answer based on genuine understanding, not vague hand-waving. That understanding comes from putting in the work to learn.\nThe next time a new technology trend shows up, don't wait for someone else to tell you about it. Go figure it out yourself. Your customers will notice, and so will everyone else.\n","link":"https://fc4c6dbc.haigmail.pages.dev/staying-ahead-of-the-curve-why-solution-engineers-must-embrace-continuous-learning/","section":"post","tags":["General","PreSales","Personal Development","Technical Skills"],"title":"Staying Ahead of the Curve - Why Solution Engineers Must Embrace Continuous Learning"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/technical-skills/","section":"tags","tags":null,"title":"Technical Skills"},{"body":"This is the final post in our five-part series exploring practical implementation of the SPACE-SEA framework. Having examined satisfaction, performance, activity, and communication, we now turn to efficiency - not just doing more with less, but ensuring Solution Engineers can focus their time and energy where it matters most.\nUnderstanding True Efficiency in Solution Engineering Efficiency in Solution Engineering isn't about maximizing the number of demos delivered or reducing preparation time. It's about ensuring every hour spent creates maximum value for customers. When a Solution Engineer spends extra time deeply understanding a customer's manufacturing process, that's not inefficiency - it's investing in better outcomes.\nFor example, a Solution Engineer working with a financial services company might spend several hours creating a reusable demonstration environment that showcases common compliance workflows. While this takes more time upfront, it enables faster, more relevant demonstrations for future customers in the industry. That's true efficiency.\nMeasuring Meaningful Efficiency When developing efficiency measurements with your team, focus on value creation:\nSolution Development Streamlining without compromising quality:\nReusable solution component creation Industry-specific templates development Common integration pattern documentation Proof-of-concept automation Best practice standardization Knowledge Management Making expertise accessible:\nSolution design patterns Technical discovery frameworks Implementation guides Customer success stories Technical tips and workarounds Resource Optimization Supporting smart time investment:\nDemo environment availability Technical documentation access Tool and platform reliability Process streamlining Workflow automation Value Delivery Speed Accelerating customer success:\nTechnical discovery effectiveness Solution design clarity Implementation readiness Knowledge transfer quality Issue resolution time Tools That Enable Efficiency Modern presales platforms like Elvance.io, Vivun and HomeRun can help identify where efficiency improvements matter most. These tools should help understand:\nWhere teams spend their time Which activities create lasting value What processes need streamlining How to replicate successful approaches Where automation makes sense Creating Your Efficiency Strategy Work with your team to explore:\nWhat activities deserve more time investment? Where can we reduce administrative overhead? How do we measure efficiency without compromising quality? What tools and resources would boost effectiveness? Signs of True Efficiency Look for these indicators:\nTeams focus on high-value activities Solutions adapt quickly to customer needs Knowledge flows easily between team members Common tasks have clear processes Tools support rather than hinder work Moving Forward The complete SPACE-SEA framework documentation provides additional context for efficiency measurement. As you implement efficiency metrics, consider:\nHow does this help deliver better customer outcomes? What enables your team to work most effectively? Where can standardization improve quality? How do we maintain creativity while increasing efficiency? Remember that true efficiency isn't about doing more with less - it's about maximizing the impact of every hour your Solution Engineers invest. Focus on measurements that help your team deliver better outcomes while working sustainably.\nThis concludes the series on implementing the SPACE-SEA framework. These five dimensions - Satisfaction, Performance, Activity, Communication, and Efficiency - work together to create an environment where Solution Engineers can thrive while delivering exceptional customer value.\nI would welcome your thoughts and experiences as you implement these ideas with your own teams. Share your insights and questions in the comments below or connect with us through the SPACE-SEA community.\n","link":"https://fc4c6dbc.haigmail.pages.dev/optimizing-solution-engineering-efficiency/","section":"post","tags":["General","PreSales"],"title":"Implementing the SPACE-SEA Framework - Optimizing Solution Engineering Efficiency"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/series/","section":"series","tags":null,"title":"Series"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/categories/space-sea/","section":"categories","tags":null,"title":"SPACE-SEA"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/series/space-sea/","section":"series","tags":null,"title":"SPACE-SEA"},{"body":"This is the fourth post in our five-part series exploring practical implementation of the SPACE-SEA framework. After examining satisfaction, performance, and activity, we turn to what often determines the success of complex technical sales: Communication and Collaboration.\nThe Bridge Between Technical Excellence and Business Value Solution Engineers serve as translators, bridging the gap between complex technical capabilities and real business challenges. A brilliant technical solution only delivers value when customers understand how it solves their problems, and when internal teams align to support customer success.\nConsider a Solution Engineer working with a manufacturing company modernizing their operations. Success requires clear communication with business stakeholders about how AI can optimize production, detailed collaboration with the customer's IT team on integration requirements, and seamless coordination with internal teams to ensure smooth implementation. Each interaction builds understanding and trust.\nCreating Meaningful Communication Measures When developing communication measurements with your team, focus on aspects that drive understanding and alignment:\nCustomer Communication Strong customer relationships grow from:\nClear technical concept explanations Business-focused solution discussions Proactive status updates Thoughtful question handling Documentation that drives understanding Sales Team Alignment Effective partnership requires:\nShared opportunity understanding Clear technical win strategies Regular solution reviews Risk and concern sharing Joint customer planning Technical Team Coordination Successful delivery depends on:\nDetailed solution handoffs Implementation requirement clarity Regular progress updates Issue resolution discussions Shared success criteria Knowledge Exchange Team growth comes through:\nSolution approach sharing Customer insight distribution Technical tip exchanges Best practice discussions Lesson learned reviews Supporting Tools and Platforms Modern presales platforms like Elvance.io, Vivun and HomeRun help track communication patterns and collaboration effectiveness. These tools can help understand:\nCommunication flow across teams Knowledge sharing patterns Collaboration bottlenecks Engagement effectiveness Documentation impact Developing Your Measurement Strategy Work with your team to determine:\nHow do we ensure technical discussions create clarity rather than confusion? What communication patterns lead to successful customer outcomes? How can we measure collaboration without disrupting natural team dynamics? Where do we need stronger communication bridges? Signs of Effective Communication and Collaboration Watch for these positive indicators:\nCustomers express clear understanding of technical solutions Teams naturally share insights and approaches Implementation handoffs proceed smoothly Questions find quick, accurate answers Knowledge flows freely across team boundaries Building Better Communication Practices Success often comes from:\nCreating safe spaces for questions and discussion Encouraging diverse perspective sharing Recognizing effective collaboration Supporting multiple communication styles Removing collaboration barriers Moving Forward The complete SPACE-SEA framework documentation provides additional context for communication and collaboration measurement. As you implement these metrics, consider:\nHow do your communication patterns impact customer success? What collaboration approaches best support solution delivery? How can you measure effectiveness while maintaining authenticity? What communication bridges need strengthening? Remember that measuring communication isn't about counting messages - it's about ensuring every interaction builds understanding and trust. Focus on measurements that help your Solution Engineers communicate more effectively and collaborate more naturally.\nIn our final post, we'll explore the Efficiency dimension of SPACE-SEA, examining how to optimize Solution Engineering operations while maintaining quality and effectiveness.\n","link":"https://fc4c6dbc.haigmail.pages.dev/building-strong-communication-and-collaboration-in-solution-engineering/","section":"post","tags":["General","PreSales"],"title":"Implementing the SPACE-SEA Framework - Building Strong Communication and Collaboration in Solution Engineering"},{"body":"This is the third post in our five-part series exploring practical implementation of the SPACE-SEA framework. After examining satisfaction and performance, we turn our attention to activity - specifically, how to ensure the day-to-day work of Solution Engineers creates meaningful value for customers.\nUnderstanding Activity Through the Customer Lens Every activity a Solution Engineer undertakes should ultimately contribute to customer success. A technical discovery session isn't just about gathering requirements - it's about understanding how we can help transform a customer's business. A demonstration isn't merely showing features - it's illustrating how our solution solves real business challenges.\nConsider a Solution Engineer working with a healthcare provider. Their activities might include analyzing current workflow bottlenecks, mapping out integration points with existing systems, and demonstrating how automation could reduce patient wait times. Each activity directly connects to the customer's goal of improving patient care.\nMeasuring What Matters to Customers When developing activity measurements with your team, start by understanding the customer's perspective:\nDiscovery and Understanding Activities that build deep customer insight:\nUnderstanding current business processes and pain points Identifying opportunities for business transformation Mapping technical requirements to business outcomes Learning about existing technology investments Understanding regulatory and compliance needs Solution Development Work that shapes customer success:\nArchitecting solutions that align with business goals Creating proofs of concept that validate business benefits Developing implementation approaches that minimize disruption Planning for scalability and future growth Ensuring security and compliance requirements are met Value Demonstration Activities that help customers envision success:\nCreating demonstrations that showcase specific business benefits Building ROI models based on customer data Conducting technical workshops focused on value realization Documenting expected business outcomes Planning successful adoption approaches Knowledge Transfer Ensuring lasting customer success:\nDeveloping implementation guides that accelerate value Creating adoption materials that drive user acceptance Documenting best practices for optimal use Training customer teams on value-driving features Building reusable assets that speed deployment Tools That Support Value Creation Modern presales platforms like Elvance.io, Vivun and HomeRun can help track how activities connect to customer outcomes. These tools should help answer questions like:\nAre we spending time on activities that customers value most? Which activities consistently lead to successful implementations? Where do we need to adjust our approach to better serve customers? How can we replicate successful patterns across our customer base? Developing Customer-Centric Measurements Work with your team to understand:\nWhich activities most directly impact customer success? How can we measure impact without losing focus on the customer? What current activities might not be adding sufficient customer value? How can we better align our work with customer goals? Signs of Customer-Focused Activity You'll know your approach is working when:\nCustomers actively engage in technical discussions Solutions clearly address business challenges Implementation success rates improve Customer references increase Teams naturally focus on high-value activities Moving Forward The complete SPACE-SEA framework documentation provides additional context for activity measurement. As you implement activity metrics, consider:\nHow do your activities directly contribute to customer success? What mechanisms help identify and prioritize value-creating work? How can you ensure measurements maintain focus on customer outcomes? What balance of activities best serves your customers' goals? Remember that measuring activity isn't about tracking time - it's about ensuring every interaction moves customers closer to their business goals. Focus on measurements that help your Solution Engineers maximize their impact on customer success.\nIn our next post, we'll explore the Communication and Collaboration dimension of SPACE-SEA, examining how these critical skills amplify customer value creation.\n","link":"https://fc4c6dbc.haigmail.pages.dev/ensuring-solution-engineering-activities-drive-customer-value/","section":"post","tags":["General","PreSales"],"title":"Implementing the SPACE-SEA Framework - Ensuring Solution Engineering Activities Drive Customer Value"},{"body":"This is the second post in our five-part series exploring practical implementation of the SPACE-SEA framework. Having examined satisfaction and well-being as our foundation, we now turn to a challenging question: How do we meaningfully measure Solution Engineering performance?\nBeyond Win Rates Traditional metrics often reduce Solution Engineering performance to simple win rates or number of demos delivered. While these numbers matter, they tell an incomplete story. A Solution Engineer's impact extends from initial technical discovery through to successful customer implementation.\nLet's explore how we can develop a more complete picture of SE performance - one that captures both immediate deal impact and long-term customer success.\nCore Performance Areas When developing performance measurements with your team, consider these key areas:\nTechnical Solution Quality Understanding how well solutions meet customer needs requires looking at:\nAlignment with customer requirements Technical feasibility and scalability Implementation success rates Customer feedback on solution design Long-term solution adoption Customer Engagement Effectiveness Success in customer interactions involves:\nTechnical discovery depth Demo effectiveness Technical objection handling Proof of Value (POV) outcomes Customer technical relationship development Sales Team Partnership Effective collaboration shows through:\nJoint opportunity strategy development Technical win strategy execution Sales team technical enablement Deal progression improvements Risk identification and mitigation Technical Documentation Impact Quality documentation supports success through:\nSolution design clarity Implementation guidance completeness Technical proposal effectiveness Knowledge base contributions Reusable asset development Working with Your Team Developing meaningful performance measurements requires close collaboration with your Solution Engineers. Start by discussing:\nWhat does excellent performance look like in your context? Which activities have the most impact on customer success? How can you measure quality without creating overhead? What barriers currently prevent peak performance? Available Tools and Support Modern presales platforms like Elvance.io, Vivun and HomeRun offer capabilities for tracking various performance aspects. These tools can help track:\nTechnical discovery completion Solution design progress Customer engagement quality Technical win rates Resource utilization patterns Remember that tools should simplify measurement, not complicate it. Choose platforms that integrate well with your existing workflows and support your team's natural way of working.\nSigns of Effective Performance Measurement You'll know your performance measurements are working when they:\nGuide improvement rather than just track numbers Help identify skill development needs Highlight successful approaches that can be shared Support better resource allocation Enable proactive problem-solving Common Implementation Challenges As you develop your performance measurements, watch for:\nOver-emphasis on short-term metrics Neglect of quality indicators Missing customer impact measures Disconnect between metrics and team goals Excessive measurement overhead Moving Forward The complete SPACE-SEA framework documentation provides additional context for performance measurement. As you begin implementing performance metrics, consider:\nHow will you balance immediate and long-term success indicators? What mechanisms will you use to gather meaningful customer feedback? How will you ensure metrics drive improvement rather than just measurement? What support do team members need to achieve their best performance? Remember that effective performance measurement isn't about creating pressure - it's about enabling success. Focus on metrics that help your team deliver better outcomes for customers while growing their capabilities.\nIn our next post, we'll explore the Activity dimension of SPACE-SEA, examining how to measure and improve the day-to-day work that drives Solution Engineering success.\n","link":"https://fc4c6dbc.haigmail.pages.dev/understanding-and-measuring-solution-engineering-performance/","section":"post","tags":["General","PreSales"],"title":"Implementing the SPACE-SEA Framework - Understanding and Measuring Solution Engineering Performance"},{"body":"Following the introduction of the SPACE-SEA framework, many discussions with Solution Engineering leaders have centered on one key question: \u0026quot;How do we put this into practice?\u0026quot; To answer this, I'm writing a five-part series exploring each dimension of the framework in detail. We begin with what I consider the foundation of successful Solution Engineering teams: Satisfaction and Well-being. Through these posts, we'll examine practical approaches to implementing and measuring each aspect of SPACE-SEA, helping you build more effective and resilient Solution Engineering teams.\nWhy Start with Satisfaction? Solution Engineers operate at a critical intersection between technical depth and customer engagement. Their effectiveness directly impacts both sales success and long-term customer outcomes. Yet traditional metrics often overlook the foundational elements that enable sustained high performance.\nLet's explore how we can meaningfully measure and support satisfaction and well-being in ways that align with your team's specific needs and culture.\nDeveloping Meaningful Measurements The key to effective measurement lies in collaborating with your team to identify indicators that provide genuine insight into team health and effectiveness. Here are suggested areas to explore with your team:\nTeam Workload Indicators Weekly meeting distribution patterns Balance between customer-facing time and preparation After-hours support requirements Travel demands versus local engagement Resource Effectiveness Demo environment reliability Documentation accessibility Knowledge sharing effectiveness Tool and process efficiency Growth and Development Skill development opportunities Certification progress Innovation project participation Mentorship program engagement Team Health Insights Regular discussions with your team might cover:\nCollaboration effectiveness Cross-functional relationships Technical resource adequacy Process improvement opportunities Creating Your Implementation Plan Start with a collaborative approach to measurement design:\nStep 1: Team Engagement Hold open discussions about what matters most to team effectiveness Identify current challenges and opportunities Define what success looks like from the team's perspective Agree on initial focus areas Step 2: Measurement Design Work with the team to select relevant indicators Define how data will be collected Establish regular review cycles Create feedback channels Step 3: Continuous Improvement Review effectiveness of chosen measurements Adjust based on team feedback Evolve metrics as team needs change Share insights and learnings Common Considerations When designing your measurement approach, consider these factors:\nTeam Size and Structure: Different team sizes may require different approaches to gathering insights and maintaining communication.\nGeographic Distribution: Remote or distributed teams may need different support mechanisms than co-located teams.\nBusiness Cycle: Consider how sales cycles and business patterns affect team workload and stress levels.\nTeam Culture: Ensure measurement approaches align with and reinforce positive team culture.\nAvailable Tools and Systems While the framework focuses on principles rather than specific tools, several platforms can support your measurement efforts. Modern presales platforms like Elvance.io, Vivun and HomeRun offer capabilities for tracking various aspects of Solution Engineering team health and effectiveness.\nThese platforms typically provide features for:\nTracking team capacity and workload distribution Managing resource allocation across opportunities Monitoring team engagement and activity patterns Collecting feedback from various stakeholders However, remember that tools should support your chosen measurement approach, not define it. The most effective implementations often combine platform capabilities with thoughtful team processes and regular discussions.\nWhen evaluating tools, consider:\nHow well they align with your existing workflows Their ability to capture the specific metrics your team has identified as important The effort required to maintain data quality Their integration capabilities with your current systems Indicators of Success How do you know if your approach to satisfaction and well-being is working? Look for these signs:\nEarly Signals\nIncreased voluntary knowledge sharing More proactive problem-solving Higher team collaboration Better resource utilization Long-term Impact\nImproved customer satisfaction Higher solution quality Better win rates Strong team retention Moving Forward The complete SPACE-SEA framework documentation provides additional context for developing these measurements. As you begin planning your approach, consider:\nWhat aspects of satisfaction and well-being are most relevant to your team's success? How can you gather meaningful insights without creating additional overhead? What feedback mechanisms will work best for your team's culture? How will insights drive meaningful improvements? Remember that measurement itself isn't the goal - it's a means to create an environment where Solution Engineers can perform at their best. Focus on gathering insights that help you support and improve team effectiveness.\nIn the next post in this series, we'll explore measuring the Performance dimension of SPACE-SEA, building on this foundation of team satisfaction and well-being.\n","link":"https://fc4c6dbc.haigmail.pages.dev/measuring-satisfaction-and-well-being-in-solution-engineering/","section":"post","tags":["General","PreSales"],"title":"Implementing the SPACE-SEA Framework - A Guide to Measuring Satisfaction and Well-being in Solution Engineering"},{"body":"When I was leading Solution Engineering teams, I found myself grappling with a fundamental question: How can we most effectively measure success in the presales phase? It is not sufficient to consider only the number of wins and losses. We must also focus on ways of measuring success that will actually help our teams to thrive and grow. I am pleased to put forward a new approach that I believe has the potential to transform our understanding of excellence in Solution Engineering.\nThe Genesis of an Idea The idea was born out of a training session on \u0026quot;How to Measure Developer Productivity Using the SPACE Framework\u0026quot; led by Rachel Magasweran. As Rachel outlined how the SPACE framework assesses the collective impact of its constituent elements, beginning with satisfaction and well-being, I was struck by the clarity of her presentation. This framework, designed for development teams, could revolutionise our approach to Solution Engineering.\nSubsequently, at CTO Craft Con in Berlin, I was able to discuss these concepts directly with Rachel, which led to my mission to adapt this framework specifically for presales teams. As a result I create this vision for measuring and improving solution engineering effectiveness was created.\nWhy a New Approach is Necessary The current state of SE measurement is, to put it mildly, unnecessarily complicated. It is not uncommon to encounter multiple systems to log into, an overwhelming number of fields to complete, and metrics that are not aligned with the key drivers of success in our role. As one SE leader recently observed, \u0026quot;\u0026quot;We have an app for everything, but insight into nothing.\u0026quot;\nI have experienced this myself in the roles I have held, which was one of the reasons I wanted to change the way things were being done. This identified a need for a solution that addresses our specific requirements and addresses the challenges we currently face. This is why SPACE-SEA was developed: to create a model that meets these needs and addresses these challenges.\nSatisfaction and Well-being: SEs are subject to a range of distinctive pressures, including the need to adapt rapidly between different products and audiences, as well as the expectation of acting as the \u0026quot;technical expert\u0026quot; in every situation. By focusing on satisfaction first, we recognise the challenges these issues present and their impact on performance.\nPerformance: It is not sufficient to focus solely on win rates. We must consider the full impact of SE activity, including the quality of technical engagement and long-term customer success.\nActivity: While monitoring activity is important, it is essential to focus on meaningful activities that drive value, rather than merely completing tasks in various systems.\nCommunication and Collaboration: Solution Engineering is a team effort at its core. The framework places an emphasis on the collaborative aspects that are often overlooked in environments where individual quotas are the primary focus.\nEfficiency: This is not about doing more with less; it is about identifying and removing the barriers that prevent SEs from performing at their optimal level.\nMoving Beyond Traditional Metrics:: A New Way Forward The current approach to measuring success in Solution Engineering often feels like a mere box-ticking exercise, rather than a catalyst for genuine improvement. The SPACE-SEA framework provides a fundamentally different approach.\nTraditional Metrics vs. SPACE-SEA Framework Deal Support Metrics Traditional Approach\nNumber of demos delivered Number of RFPs completed Deal pipeline coverage Raw win/loss rates SPACE-SEA Framework Approach\nQuality and impact of technical engagements Customer satisfaction with technical interactions Effectiveness of solution storytelling Long-term success of implemented solutions Team collaboration on complex opportunities Activity Tracking Traditional Approach\nHours logged in various systems Number of customer meetings attended Volume of technical documents produced Response time to requests SPACE-SEA Framework Approach\nValue delivered in customer interactions Quality of technical discovery and solution design Impact of reusable assets created Effectiveness of time allocation Balance of strategic vs. tactical activities Performance Evaluation Traditional Approach\nIndividual quota attainment Number of deals supported Average deal size Activity volume metrics SPACE-SEA Framework Approach\nOverall team success and collaboration Knowledge sharing and team enablement Customer relationship development Innovation in solution design Contribution to team capabilities Team Management Traditional Approach\nUtilization rates Coverage metrics Training completion rates System usage compliance SPACE-SEA Framework Approach\nTeam satisfaction and well-being Mentorship and growth opportunities Cross-team collaboration effectiveness Process improvement contributions Work-life balance sustainability Success Measurement Traditional Approach\nBinary win/loss metrics Revenue contribution Activity volume System compliance SPACE-SEA Framework Approach\nCustomer success stories Solution innovation Team knowledge growth Process improvements Sustainable performance The Cost of Traditional Metrics Traditional metrics often create hidden costs:\nSEs are spending hours updating multiple systems instead of focusing on customers Teams are prioritizing individual metrics over collaborative success Burnout is occuring from constantly chasing numbers There are missed opportunities for innovation and improvement Job satisfaction is decreased despite \u0026quot;good numbers\u0026quot; The SPACE-SEA Advantage The SPACE-SEA framework addresses these challenges by:\nFocusing on Outcomes: Measuring the key performance indicators that matter to customers and team success, rather than focusing on the easy-to-count metrics. Encouraging Collaboration: The most successful SE teams are those that succeed together Supporting Growth: Creating an environment conducive to innovation and learning Reducing Overhead: Eliminating superfluous reporting and system updates Promoting Balance: Ensuring sustainable high performance Implementation in Practice Moving to SPACE-SEA does not entail the abandonment of all traditional metrics. Rather, it entails placing them in the appropriate context. For example:\nInstead of merely monitoring the number of demos, assess their effectiveness and customer engagement. Rather than simply counting the number of documents produced, evaluate their impact on customer success. Beyond monitoring system usage, evaluate the value of the information captured. Instead of individual quotas alone, consider team contribution and knowledge sharing. The key is to start small: select one area where traditional metrics are not serving you well and experiment with SPACE-SEA-inspired alternatives. Measure the impact, gather feedback and make any necessary adjustments.\nA Framework Built for Presales To assist teams in implementing this approach, I have developed guidance documents that adapt SPACE specifically for both Solution Engineers and Solution Architects. The resources, which are available via this GitHub repository, provide insights into:\nHow to measure each dimension of SPACE in a presales context Practical implementation strategies for teams of all sizes Guidelines for creating meaningful metrics that drive real improvement Approaches to balance individual and team performance Methods to ensure customer success remains at the centre of our work An Invitation to Innovation If you are a leader of a Solution Engineering team, I encourage you to consider this adaptation of the SPACE framework. I believe there are several reasons why it is worth considering this approach:\nIt is a holistic approach: Rather than focusing on isolated metrics, SPACE-SEA provides a comprehensive view of how different aspects of SE work interact and impact each other.\nIt is a collaborative tool: The framework encourages input from the entire team on both metrics and goals, leading to greater commitment and more meaningful measurements.\nIt is also human-centred: By prioritising satisfaction and well-being, we recognise that our most effective technical work is produced by teams that are supported and motivated.\nSPACE-SEA can assist in identifying and eliminating the \u0026quot;productivity theatre\u0026quot; that is often prevalent in SE organisations, namely activities that appear to enhance productivity but in fact impede it.\nJoin the Journey This is just the beginning of what I hope will become a broader conversation in our community about how we measure and improve Solution Engineering effectiveness. The complete framework documentation is available for your reference on GitHub. I encourage you to explore, adapt, and enhance these ideas for your own teams. I encourage you to engage in discussion and contribute to this process.\nYour experiences and insights will be invaluable in evolving this framework. As you begin to explore and potentially implement SPACE-SEA in your organisation, I would appreciate hearing about your challenges, successes, and ideas for improvement.\nRemember: Our goal isn't just to measure success – it's to create an environment where Solution Engineers can do their best work and truly thrive. It is important to remember that our objective is not merely to quantify success; it is to foster an environment where Solution Engineers can perform to the best of their abilities and truly flourish.\n","link":"https://fc4c6dbc.haigmail.pages.dev/introducing-space-sea-a-new-framework-for-solution-engineering-excellence/","section":"post","tags":["General","PreSales"],"title":"Introducing SPACE-SEA, A Framework for Solution Engineering Excellence"},{"body":"Something amazing happens when we expand how we measure SE success we discover the true magic they bring to our organizations.\nEvery great SE brings multiple superpowers to the table:\nThey architect solutions that delight customers They bridge the technical-business gap effortlessly They lay foundations for long-term customer growth They make complex technology feel accessible And yet, traditional metrics only capture a fraction of this impact.\nThe full spectrum of SE excellence comes from:\nCustomer Success Stories\nThose \u0026quot;aha!\u0026quot; moments when customers see the full potential Smooth implementations that set everyone up for success Growing partnerships that expand naturally over time References who can't wait to share their success Technical Excellence\nPOCs that become trusted blueprints Scalable solutions that grow with our customers Proactive problem-solving that prevents future headaches Knowledge sharing that elevates entire teams Long-term Partnership Wins\nCustomers who come back excited for more Growing adoption that spreads organically Technical trust that opens new opportunities Solutions that stand the test of time The best part? When we recognize these broader impacts, we create space for SEs to do their best work.\n#SalesEngineering #CustomerSuccess #TechnicalSales #TeamSuccess\n","link":"https://fc4c6dbc.haigmail.pages.dev/sales-engineers-measuring-what-really-matters/","section":"post","tags":["General","PreSales"],"title":"Sales Engineers Measuring What Really Matters"},{"body":"Let's talk about the unsung heroes of technical sales - Sales Engineers.\nThey're expected to:\nSwitch between multiple products seamlessly Be the smartest technical person in every room Translate complex tech into business value Handle high-stakes demos without breaking a sweat Navigate challenging customer questions on the fly But here's what many leaders miss: SE satisfaction isn't just a \u0026quot;nice to have\u0026quot; - it's a strategic advantage.\nHappy and Healthy SEs deliver:\n✅ Higher demo-to-win rates ✅ More effective POCs ✅ Better customer satisfaction scores ✅ Stronger technical credibility ✅ Lower turnover (saving $100K+ in replacement costs) The key? Stop treating SE satisfaction and well-being as just HR metrics.\nSix things that work:\nWork with your team to find things that raise their satisfaction while still benefit the business Protect focus time for deep technical prep before and between meetings Keep a keen eye on their workload to make sure they have time to decompress. Investment in continuous learning and skill development Encourage teamwork - a problem shared is a problem halved Work hard on your team culture Remember: Your SEs aren't just technical presenters - they're the architects of customer trust. Invest in their well-being, and watch your win rates soar.\n","link":"https://fc4c6dbc.haigmail.pages.dev/why-happy-and-healthy-sales-engineers-are-your-secret-weapon/","section":"post","tags":["General","PreSales"],"title":"Why Happy and Healthy Sales Engineers Are Your Secret Weapon"},{"body":"Presales Engineers are known by many names, including, but not limited to, Solution Engineering, Solution Architects, Sales Engineering, and so on. In this article, I have opted to use Solution Engineering as a catch-all term for all the people who interact with your customers before they purchase your products.\nThere is a long-standing discussion on how product management and Development Teams interface. Balancing the competing priorities of business needs, product vision, and technical delivery from programming teams. The battle between new features and technical debt, and which is more important, has been widely discussed and continues to be a hot topic. I will probably write an article on this at some stage, as both camps have their virtues and flaws. This article aims to highlight that both of these teams miss out on valuable insights when they don't make an effort to integrate the feedback received from their Solution Engineering teams.\nThese teams engage directly with clients, gaining a deep understanding of both the technical capabilities of the products, and the specific needs and pain points of the customers. Their deep knowledge of their clients gives them a unique insight to identify gaps, potential improvements, and innovative use cases that might not be apparent to those not involved in the day-to-day sales process. Product Managers do speak to customers, but they mainly speak to the big spenders.\nThis skewed view impacts how products are used, cutting out feedback from smaller companies. While it is tempting to focus on customers who could sign large deals, sustaining a business and creating continued growth requires valuing the feedback from smaller customers.\nThe Disconnect and Its Implications Organizational silos often cause the disconnect between Solution Engineers, Product Management, and Development Teams. Solution Engineering, typically embedded within sales teams, may lack structured channels to share their insights with product and Development Teams. Even when feedback mechanisms exist, they are often informal or inconsistent, leading to valuable information being overlooked or underutilized.\nWhen a startup is still small, feedback is instant as Solution Engineers have direct access via a common forum to Engineers and Product Managers. Sometimes they even provide code to help fix bugs, or add new features. However, as the company grows, this distance widens, until the only way Solution Engineers' feedback is heard is if the feature or bug is connected to imminent million-dollar deals.\nThis lack of communication can result in product features that do not fully address customer needs, or misses opportunities for differentiation in the market. Solution Engineering teams might frequently encounter customer requests for specific functionalities or integrations that, if implemented, could significantly enhance the product’s value proposition. That said, without a fast and robust feedback loop, such insights might never reach the product backlog or influence development priorities.\nSolution Engineers often have a front-row seat to competitive dynamics and emerging trends. Their exposure to diverse client environments enables them to provide early warnings about shifts in technology preferences or competitive threats. Ignoring this input can leave the company unprepared and reactive, rather than proactive.\nBest Practices for Integrating Solution Engineering Feedback Structured Feedback Mechanisms: Establish formal channels for Solution Engineers to regularly provide feedback through meetings, forms, or collaboration tools. Develop a closed-loop system to track, address, and communicate feedback back to customers, showing that their input was valued and acted upon.\nCross-Functional Teams and Regular Collaboration: Create cross-functional teams and schedule regular collaboration sessions where Solution Engineers, Product Managers, and Engineers can work together on projects and share insights. Hackweeks are ideal for fostering collaboration outside the normal work environment, encouraging innovation and creativity.\nFeedback Integration in Product Roadmaps: Systematically integrate insights from Solution Engineers into product roadmaps by creating a dedicated section for field insights and using feedback to prioritize features.\nKnowledge Sharing and Training: Utilize internal knowledge-sharing platforms such as wikis, forums, or collaborative workspaces for Solution Engineers to document and share insights. Provide training for Solution Engineers on effective communication, and for product and Development Teams on interpreting and acting on feedback.\nLeadership Support and Metrics: Ensure leadership actively supports and promotes the integration of Solution Engineering feedback. Here executive sponsorship of initiatives, inclusion of feedback metrics in performance reviews, and public recognition of successful collaborations are great ways to do this. Establish metrics and KPIs to track the impact of feedback on product development, including customer-requested features, time to market, and customer satisfaction scores.\nPilot Programs: Implement pilot programs to develop or enhance features based on Solution Engineer feedback. Share Alpha and Beta builds with Solution Engineers for testing and feedback.\nKey take away Regular, structured collaboration between the teams is essential for leveraging frontline experience and building more customer-centric products. By implementing best practices for feedback integration, companies can enhance their product development processes, address customer needs more effectively, and stay ahead of market trends. Leveraging the insights of Solution Engineers not only bridges the gap between sales and product development, but also drives innovation and competitive advantage.\n","link":"https://fc4c6dbc.haigmail.pages.dev/best-practices-for-Integrating-solution-engineering-feedback/","section":"post","tags":["General","PreSales","Product Management"],"title":"Best Practices for Integrating Solution Engineering Feedback"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/product-management/","section":"tags","tags":null,"title":"Product Management"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/ai/","section":"tags","tags":null,"title":"AI"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/categories/conferences/","section":"categories","tags":null,"title":"Conferences"},{"body":"As I walked into the AWS Summit in Berlin, I couldn't help but feel a sense of excitement and anticipation. The atmosphere was electric, with attendees buzzing about the latest innovations in cloud computing and AI. As someone who follows the industry closely, I was eager to see what the summit was going to present.\nAs I made my way through the different halls, The passion and enthusiasm of the exhibitors and attendees was palpable, it was clear that everyone was there to either present, to learn and be inspired. The array of solutions and services on display was impressively diverse and innovative\nTwo notable announcements at the summit caught everyone's attention – the introduction of the AWS Sovereign Cloud in Brandenburg and the unveiling of AWS's new AI chips. The Sovereign Cloud from AWS provides German businesses with more flexibility regarding their choice of sovereign cloud hosting. This addition to the existing local Sovereign Cloud Stack solutions is a welcomed development. The new AI chips, on the other hand, promise to have a transformative impact across various industries.\nAs I listened to the talks and presentations, I couldn't help but feel a sense of déjà vu. The excitement and optimism surrounding AI and cloud computing reminded me of the dot com boom of the late 1990s. While it's natural to feel enthusiastic about new technologies, I couldn't help but wonder if we've learned from history. Have we taken a measured approach to the adoption of AI, or are we rushing headlong into the unknown?\nDespite my reservations, I was heartened to see so many familiar faces at the summit. Catching up with old colleagues and friends served as a reminder that even in this age of AI and automation, human connections remain paramount. A special thank you to Mariane Kido, Gerd Prussman, Rob Barns, Patrick Schulz, Robin Pikulik, Carsten Duck, Steffen Schneider, Armin Mesic, and Mark Van Der Zijden for sharing some of your busy day with me.\nLeaving the summit, I was struck by a sense of optimism. The innovations displayed at the AWS Summit are a testament to our boundless human creativity and ingenuity. While we must remain cautious and mindful of the potential risks of unchecked enthusiasm, the future of cloud computing and AI certainly holds a world of endless possibilities.\n","link":"https://fc4c6dbc.haigmail.pages.dev/insights-from-aws-summit-berlin-2024/","section":"post","tags":["General","Personal Thoughts","AI"],"title":"Insights from the AWS summit Berlin 2024"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/categories/growth/","section":"categories","tags":null,"title":"Growth"},{"body":"As a manager at a startup, you know that stress and creativity are intertwined. While a moderate amount of stress can be motivating, unchecked stress can stifle innovation and hinder growth. As your team scales, it's crucial to strike a balance between these two forces.\nUnderstanding Stress in Startups Stress, much like a coin, has a dual nature. On one side, a moderate amount of stress can act as a stimulant that keeps team members alert, motivated, and ready to face challenges. This type of stress is a vital part of the startup environment, where quick thinking and adaptability are valued. However, the other side of stress, when it amplifies unchecked, can impair judgement, inhibit innovative thinking, and foster a risk-averse mindset, all of which can hinder a startup’s growth\nWhen Stress Overpowers Creativity As startups grow, the pressure to meet deadlines, manage resources, and hit growth targets can multiply. This can lead to a shift from an exhilarating, idea-driven environment to one dominated by stress, which stifles creative thinking. The effects are noticeable—team members may start to feel overwhelmed, their work may decline in quality, and the vibrant energy that once characterized the startup could fade.\nStrategies to Foster Creativity Amidst Stress Mindfulness Matters: Encourage your team to practice mindfulness exercises, such as deep breathing, meditation, or quiet reflection, to clear their minds and restore focus.\nCelebrating Calculated Risks: Create a culture that encourages taking calculated risks and views failure as an opportunity for learning and growth. Celebrate and acknowledge efforts, even when they don't lead to the desired outcome, to foster creativity and innovation. Ensure that all team members understand and share the responsibility of taking risks, reinforcing the idea that the organization and each individual play a critical role in managing and learning from these risks. By doing so, you can create a supportive and dynamic environment that values continuous improvement and growth.\nEncourage Open Communication: Establish a culture where team members feel comfortable expressing their ideas and concerns. Regular brainstorming sessions and open forums can spark innovation and ensure all voices are heard. Think of it like show and tell for the workplace.\nWork-Life Balance: Encourage a balance between work and personal life. Offer flexible working hours, remote work options, and ensure vacations are taken to rejuvenate the team and boost creative output. As a manager it's important to model behavior, especially in being transparent on how you manage work/life balance\u0026quot;\nPrioritization and Delegation: Teach your team to prioritize their workload and delegate tasks appropriately to reduce feelings of being overwhelmed and maintain productivity.\nRemember As a manager, it's vital to recognize the delicate balance between stress and creativity in your team. When stress levels rise, it's crucial to take proactive steps to mitigate its impact on your team's innovation, productivity, and motivation. By adopting these strategies, you can ensure that your team remains energized, focused, and driven to achieve your startup's goals, even as you navigate the challenges of scaling. Remember, a startup's true strength lies not only in its innovative ideas but also in its ability to bring those ideas to life in a sustainable and healthy manner, fostering a culture of resilience and adaptability.\n","link":"https://fc4c6dbc.haigmail.pages.dev/managing-stress-and-fostering-creativity-in-your-team/","section":"post","tags":["General","Startup Life","Team Health","PreSales","Personal Thoughts"],"title":"Managing Stress and Fostering Creativity in Your Startup Team"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/startup-life/","section":"tags","tags":null,"title":"Startup Life"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/team-health/","section":"tags","tags":null,"title":"Team Health"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/cloud-automation/","section":"tags","tags":null,"title":"Cloud Automation"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/categories/general/","section":"categories","tags":null,"title":"General"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/multi-cloud/","section":"tags","tags":null,"title":"Multi-Cloud"},{"body":"DNS in a multi-cloud world As companies transition to multi-cloud deployments, creating a common way to deploy solutions has become a requirement, this is also easily achieved by using Terraform to create your immutable infrastructure.\nThe challenge you face is that the infrastructure in a cloud deployment is dynamic in nature and so you can't predict what the IP addresses of parts of your systems will be and these IP addresses can change daily if your developers have a fast deployment cycle.\nThe most common way for us to solve this problem is to create DNS records for each piece of the infrastructure that we are deploying and that needs to be addressed. If you deploy resources with external IP addresses on cloud providers they have different ways that these IP addresses are presented. Each cloud provider provides their solutions with differing features.\nBy providing and configuring your own DNS delegated zones within the providers you give yourself the flexibility you need when creating your applications within these clouds.\nOverview This post explains how you would utilise Terraform to deploy and manage a multi-cloud DNS solution from a hosted Route53 domain.\nPrerequisites For this example you need to have an account on each of the cloud providers if you only want to use two providers then you only need an account on the two you would like to use.\nTerraform 0.12.x cli installed AWS Account GCP Account Azure Account Azure Service Principal Account Terraform Cloud account. DNS domain hosted on route53 Git repository hosted on Github or Gitlab or Bitbucket Text editor (I use vscode)\nSteps Create a Terraform Cloud Free Account by following the guide you can find here https://www.terraform.io/docs/cloud/getting-started/access.html Login to your Terraform Cloud Account. Create an organization, I will use dns-multicloud-org. Create a new workspace for the dns deployment. I will call mine dns-multicloud. You now need to configure some variables.\nGeneral Variables created-by: terraform (This a variable You use in your tags to show it was created by Terraform).\nowner: dns-demo-team (This is another label so that you know who the owner is).\nnamespace: dnsmc (This is the name of the delegated subzone you want to create).\nhosted-zone: hashidemos.io (Hosted domain on Route53).\nGeneral Environment Variables CONFIRM_DESTROY: 1 (This is so that you don't accidentally delete your zones).\nType in\n1cd ~ 2mkdir dns-multicloud 3git init Creating the working environment Open a terminal and navigate to the directory where you want to store this code.\nThere are many ways that people split their Terraform code up to make it easier to know where resources are. I prefer to split my Terraform code into areas of concern for this example.\nCreate the files needed. Type in\n1touch general.tf 2touch variables.tf 3touch outputs.tf The current repository looks like this.\n1 =\u0026gt; tree 2 . 3 ├── LICENSE 4 ├── README.md 5 ├── general.tf 6 ├── outputs.tf 7 └── variables.tf 8 0 directories, 6 files general.tf file to declare our general Terraform configuration .e.g. Our remote configuration to use Terraform Cloud as our backend cloud provider specific configuration.\noutputs.tf file that will be used to output the information needed to use these delegated zone when deploying infrastructure to our cloud providers.\nvariables.tf file that will be used to declare the Terraform code that asks for the variables needed to run our code.\nI also added a .gitignore for Terraform, LICENSE and a README.md for the repository.\nCommit these files to the git history.\nAdding the backend To start working with Terraform you need to configure a remote backed for the Terraform plan.\nYou can open the general.tf file and add the following.\n1terraform { 2 required_version = \u0026#34;\u0026gt;= 0.11.0\u0026#34; 3 backend \u0026#34;remote\u0026#34; { 4 hostname = \u0026#34;app.terraform.io\u0026#34; 5 organization = \u0026#34;dns-multicloud-org\u0026#34; 6 workspaces { 7 name = \u0026#34;dns-multicloud\u0026#34; 8 } 9 } 10} There are a number of fields here. required_version (Version of the Terraform cli you are using). backend \u0026quot;remote\u0026quot; (This tells Terraform you want to use the remote backend). hostname (Hostname for Terraform Cloud). organization (Our organization). workspaces (The workspace you will be using).\nYou have one more step to do before can test this configuration. You need to authenticate against Terraform Cloud. There are multiple ways to do this. You can find the documentation here: https://www.terraform.io/docs/commands/cli-config.html#credentials\nI will be using a Token that you can generate in the Token Section of your account.\nNavigate to your user settings section and generate a new Token to use.\nMake sure you copy the token to a safe place as it is only displayed the one time.\nYou need to add this token to a credentials file to use when you run our Terraform. For a *nix based system you will use a file called .terraformrc in your home directory.\nThe structure of the file looks like this.\n1credentials \u0026#34;app.terraform.io\u0026#34; { 2 token = \u0026#34;INSERTTOKENHERE\u0026#34; 3 } Insert the token code into this file and save it. Now you are ready to test if your local client can connect to Terraform Cloud. You should make sure you are in the dns-multicloud directory you can do this by typing the following commands and pressing enter after each one.\n1pwd 2/Users/lance/dns-multicloud Initialising The Terraform Cloud Backend To test that you have everything configured correctly run the following command. terraform init You should see the following output in the console.\n1Initializing the backend… 2 Successfully configured the backend \u0026#34;remote\u0026#34;! Terraform will automatically 3 use this backend unless the backend configuration changes. 4 Terraform has been successfully initialized! 5 You may now begin working with Terraform. Try running \u0026#34;terraform plan\u0026#34; to see 6 any changes that are required for your infrastructure. All Terraform commands 7 should now work. 8 If you ever set or change modules or backend configuration for Terraform, 9 rerun this command to reinitialize your working directory. If you forget, other 10 commands will detect it and remind you to do so if necessary. After that you want to initiate the state file in the backend.\n1terraform plan 2 Running plan in the remote backend. Output will stream here. Pressing Ctrl-C 3 will stop streaming the logs, but will not stop the plan running remotely. 4 Preparing the remote plan… 5 To view this run in a browser, visit: 6 https://app.terraform.io/app/dns-multicloud-org/dns-multicloud/runs/run-N4hkB4m81kVaP1QG 7 Waiting for the plan to start… 8 Terraform v0.12.9 9 Configuring remote state backend… 10 Initializing Terraform configuration… 11 2019/10/07 11:57:37 [DEBUG] Using modified User-Agent: Terraform/0.12.9 TFC/3bcf15d045 12 Refreshing Terraform state in-memory prior to plan… 13 The refreshed state will be used to calculate this plan, but will not be 14 persisted to local or remote state storage. 15 16 No changes. Infrastructure is up-to-date. 17 This means that Terraform did not detect any differences between your 18 configuration and real physical resources that exist. As a result, no 19 actions need to be performed. When these two commands complete successfully then we are now ready to start writing our Terraform configuration.\nOpen the variables.tf file in your editor and create the following items.\n1# General 2variable \u0026#34;owner\u0026#34; { 3 description = \u0026#34;Person Deploying this Stack e.g. john-doe\u0026#34; 4} 5 6variable \u0026#34;namespace\u0026#34; { 7 description = \u0026#34;Name of the zone e.g. demo\u0026#34; 8} 9 10variable \u0026#34;created-by\u0026#34; { 11 description = \u0026#34;Tag used to identify resources created programmatically by Terraform\u0026#34; 12 default = \u0026#34;terraform\u0026#34; 13} 14 15variable \u0026#34;hosted-zone\u0026#34; { 16 description = \u0026#34;The name of the dns zone on Route 53 that will be used as the master zone \u0026#34; 17} The description in the variables explains what each one does.\nCommit the changes to git.\nCreating the DNS zones Now that we have bootstrapped the plan we now need to start configuring the zones.\nAs mentioned before we have a hosted zone in Route53 that we will use as the master zone and from that we will create 3 delegated sub zones in each cloud provider. Starting with AWS we will create our delegated zone in AWS.\nAmazon Web Services (AWS) Sub Zone We now need to add the AWS configuration to our zone. To connect to AWS we need to use a Terraform provider that will give us this ability. In the general.tf file add the following lines below the Remote backend configuration.\n1# AWS General Configuration 2provider \u0026#34;aws\u0026#34; { 3 version = \u0026#34;~\u0026gt; 2.0\u0026#34; 4 region = var.aws_region 5} This block of code tells Terraform that we want to use the AWS provider from the registry in our plan. We are telling it that we want to use version 2.0 of the provider and we have an extra configuration item called region. This is the region we want to use for our deployments. We have set another variable here called aws_region which we will add to the Terraform Cloud configurastion later in the post. You can read more about the provider block here: https://www.terraform.io/docs/providers/aws/index.html\nNow create a file in the project called aws.tf. You can do this in the same way we did before by using touch in the console.\n1touch aws.tf The directory structure should look like this.\n1=\u0026gt; tree 2 . 3 ├── LICENSE 4 ├── README.md 5 ├── aws.tf 6 ├── general.tf 7 ├── outputs.tf 8 └── variables.tf 9 0 directories, 6 files Open the aws.tf file in your editor and add the following block of code.\n1data \u0026#34;aws_route53_zone\u0026#34; \u0026#34;main\u0026#34; { 2 name = var.hosted-zone 3} This is a data source block that will query AWS for the zone we have hosted there and return the resource for us to use in our code later. You can read more about the data sources here: https://www.terraform.io/docs/configuration/data-sources.html\nAWS Sub Zone The next step is to create the DNS subzone that we will be using. You must add the code listed below to the aws.tf file just after the data source.\n1# AWS SUBZONE 2 3resource \u0026#34;aws_route53_zone\u0026#34; \u0026#34;aws_sub_zone\u0026#34; { 4 name = \u0026#34;${var.namespace}.aws.${var.hosted-zone}\u0026#34; 5 comment = \u0026#34;Managed by Terraform, Delegated Sub Zone for AWS for ${var.namespace}\u0026#34; 6 7 tags = { 8 name = var.namespace 9 owner = var.owner 10 created-by = var.created-by 11 } 12} What we are doing here is using the aws_route53_zone resource from the provider with a name we have chosen aws_sub_zone we have then provided a number of arguments to the resource so that it can be created. The important ones are the name argument where we have used two variables to create our zone name.\nIn this case it would form a domain of dnsmc.aws.hashidemos.io We have also populated the tags from the other general variables we created.\nThe block above only creates the zone in AWS but does not provide the master zone with any information on the zone. We need to create some DNS nameserver(ns) records for the new delegated zone so that any records that are created in the new zone will be found. The code block below will create the nameserver(ns) records for the zone .\n1resource \u0026#34;aws_route53_record\u0026#34; \u0026#34;aws_sub_zone_ns\u0026#34; { 2 zone_id = \u0026#34;${data.aws_route53_zone.main.zone_id}\u0026#34; 3 name = \u0026#34;${var.namespace}.aws.${var.hosted-zone}\u0026#34; 4 type = \u0026#34;NS\u0026#34; 5 ttl = \u0026#34;30\u0026#34; 6 7 records = [ 8 for awsns in aws_route53_zone.aws_sub_zone.name_servers: 9 awsns 10 ] 11} The important section here is the records section. You can see that we use a for loop in the section to grab all the name servers that were created in the aws_route53_zone block we created earlier and populate them in this argument.\nWe now need to create the variable block in our variables.tf file for the aws_region argument we used in our provider block. The code Block will look like this.\n1# AWS 2 3variable \u0026#34;aws_region\u0026#34; { 4 description = \u0026#34;The region to create resources.\u0026#34; 5 default = \u0026#34;eu-west-2\u0026#34; 6} When you need to use this zone in AWS for creating records for other resources you will need the zone ID. To provide this we need to create a block in the outputs.tf file that provides this detail. Add the blocks below to the outputs.tf file.\n1output \u0026#34;aws_sub_zone_id\u0026#34; { 2 value = aws_route53_zone.aws_sub_zone.zone_id 3} 4 5output \u0026#34;aws_sub_zone_nameservers\u0026#34; { 6 value = aws_route53_zone.aws_sub_zone.name_servers 7} This creates two outputs the zone_id output to be referenced in other deployments and a list of the name servers that were assigned to the delegated domain.\nThis completes the configuration we need to create the resources for the plan. To apply these to our account we will need to add some authentication credentials for AWS to our Terraform Cloud workspace. We will also need to add the aws_region variable. Below are the variables we need to create. Please take note that the Environment Variables need to be marked as sensitive when you create them to encrypt them when they are stored.\nAWS Variables aws_region: eu-west-2 (Region to deploy the delegated domain).\nAWS Environment Variables Mark these as sensitive so that they are hidden You can get these from your AWS account\n1AWS_ACCESS_KEY_ID: [AWSACCESSKEY] 2AWS_SECRET_ACCESS_KEY: [AWSSECRETACCESSKEY] The variable screen will look like this when you are done.\nWe can now run our terraform plan to see what will be created.\n1=\u0026gt; terraform plan 2 Running plan in the remote backend. Output will stream here. Pressing Ctrl-C 3 will stop streaming the logs, but will not stop the plan running remotely. 4 Preparing the remote plan… 5 To view this run in a browser, visit: 6 https://app.terraform.io/app/dns-multicloud-org/dns-multicloud/runs/run-Ek1ZvYEfAkMHyTqb 7 Waiting for the plan to start… 8 Terraform v0.12.9 9 Configuring remote state backend… 10 Initializing Terraform configuration… 11 2019/10/07 14:46:51 [DEBUG] Using modified User-Agent: Terraform/0.12.9 TFC/3bcf15d045 12 Refreshing Terraform state in-memory prior to plan… 13 The refreshed state will be used to calculate this plan, but will not be 14 persisted to local or remote state storage. 15 data.aws_route53_zone.main: Refreshing state… 16 17 An execution plan has been generated and is shown below. 18 Resource actions are indicated with the following symbols: 19 create 20 Terraform will perform the following actions: 21 # aws_route53_record.aws_sub_zone_ns will be created 22 resource \u0026#34;aws_route53_record\u0026#34; \u0026#34;aws_sub_zone_ns\u0026#34; { 23 allow_overwrite = (known after apply) 24 fqdn = (known after apply) 25 id = (known after apply) 26 name = \u0026#34;dnsmc.aws.hashidemos.io\u0026#34; 27 records = (known after apply) 28 ttl = 30 29 type = \u0026#34;NS\u0026#34; 30 zone_id = \u0026#34;Z2VGUC188F45PC\u0026#34; 31 } 32 aws_route53_zone.aws_sub_zone will be created 33 resource \u0026#34;aws_route53_zone\u0026#34; \u0026#34;aws_sub_zone\u0026#34; { 34 comment = \u0026#34;Managed by Terraform, Delegated Sub Zone for AWS for dnsmc\u0026#34; 35 force_destroy = false 36 id = (known after apply) 37 name = \u0026#34;dnsmc.aws.hashidemos.io\u0026#34; 38 name_servers = (known after apply) 39 tags = { \u0026#34;created-by\u0026#34; = \u0026#34;terraform\u0026#34; 40 \u0026#34;name\u0026#34; = \u0026#34;dnsmc\u0026#34; 41 \u0026#34;owner\u0026#34; = \u0026#34;dns-demo-team\u0026#34; 42 } 43 vpc_id = (known after apply) 44 vpc_region = (known after apply) 45 zone_id = (known after apply) 46 } 47 Plan: 2 to add, 0 to change, 0 to destroy. Commit the changes to git.\nYou can now run terraform apply to create these resources in AWS You should see something similar to what is below.\n1Plan: 2 to add, 0 to change, 0 to destroy. 2 Do you want to perform these actions in workspace \u0026#34;dns-multicloud\u0026#34;? 3 Terraform will perform the actions described above. 4 Only \u0026#39;yes\u0026#39; will be accepted to approve. 5 Enter a value: yes 6 aws_route53_zone.aws_sub_zone: Creating… 7 aws_route53_zone.aws_sub_zone: Still creating… [10s elapsed] 8 aws_route53_zone.aws_sub_zone: Still creating… [20s elapsed] 9 aws_route53_zone.aws_sub_zone: Still creating… [30s elapsed] 10 aws_route53_zone.aws_sub_zone: Creation complete after 37s [id=Z2MPGT7J02JUKT] 11 aws_route53_record.aws_sub_zone_ns: Creating… 12 aws_route53_record.aws_sub_zone_ns: Still creating… [10s elapsed] 13 aws_route53_record.aws_sub_zone_ns: Still creating… [20s elapsed] 14 aws_route53_record.aws_sub_zone_ns: Still creating… [30s elapsed] 15 aws_route53_record.aws_sub_zone_ns: Creation complete after 30s [id=Z2VGUC188F45PC_dnsmc.aws.hashidemos.io_NS] 16 Apply complete! Resources: 2 added, 0 changed, 0 destroyed. 17 Outputs: 18 aws_sub_zone_id = Z2MPGT7J02JUKT 19 aws_sub_zone_nameservers = [ 20 \u0026#34;ns-1441.awsdns-52.org\u0026#34;, 21 \u0026#34;ns-1595.awsdns-07.co.uk\u0026#34;, 22 \u0026#34;ns-365.awsdns-45.com\u0026#34;, 23 \u0026#34;ns-852.awsdns-42.net\u0026#34;, 24 ] Congratulations the AWS zone is created.\nGoogle Cloud Platform (GCP) Sub Zone The process for the Google Compute zone will be largely the same.\nOpen the general.tf file in your editor and add the code block below the AWS config block.\n1# Google Cloud Platform General Configuration 2provider \u0026#34;google\u0026#34; { 3 version = \u0026#34;~\u0026gt; 2.9\u0026#34; 4 project = var.gcp_project 5 region = var.gcp_region 6} This block of code describes the GCP provider for Terraform to use when creating the delegated zone on GCP DNS. It has similar arguments that the AWS one has and you can read more about it here https://www.terraform.io/docs/providers/google/index.html\nNext you need to create is the gcp.tf file where we will be storing the details for the gcp zone resource. Create the file in the same way as before with the touch command.\n1touch gcp.tf The directory structure should look like this.\n1=\u0026gt; tree 2 . 3 ├── LICENSE 4 ├── README.md 5 ├── aws.tf 6 ├── gcp.tf 7 ├── general.tf 8 ├── outputs.tf 9 └── variables.tf 10 0 directories, 7 files Open the gcp.tf file in your editor and add the code blocks below.\n1# GCP SUBZONE 2 3resource \u0026#34;google_dns_managed_zone\u0026#34; \u0026#34;gcp_sub_zone\u0026#34; { 4 name = \u0026#34;${var.namespace}-zone\u0026#34; 5 dns_name = \u0026#34;${var.namespace}.gcp.${var.hosted-zone}.\u0026#34; 6 project = var.gcp_project 7 description = \u0026#34;Managed by Terraform, Delegated Sub Zone for GCP for ${var.namespace}\u0026#34; 8 labels = { 9 name = var.namespace 10 owner = var.owner 11 created-by = var.created-by 12 } 13} The Code block above does much the same as the AWS one. The data source google_compute_zones collects all the zones available within the region you have chosen. There is a difference to the dns_name argument for the zone. GCP requires you to add a \u0026quot;.\u0026quot; to the end of the zone when you create it. The project argument is the name of the GCP project you are working in.\nYou now need to add the variables needed to the variables.tf file. Open the viariables.tf file in your editor and add the code block below.\n1# GCP 2 3variable \u0026#34;gcp_project\u0026#34; { 4 description = \u0026#34;GCP project name\u0026#34; 5} 6 7variable \u0026#34;gcp_region\u0026#34; { 8 description = \u0026#34;GCP region, e.g. us-east1\u0026#34; 9 default = \u0026#34;europe-west3\u0026#34; 10} Here you add variables for the gcp_project and gcp_region that are needed to authenticate and apply to GCP. Now you need to add the outputs that are needed for using this zone in other Terraform deployments. Add the code block below to provide the outputs.\n1output \u0026#34;gcp_dns_zone_name\u0026#34; { 2 value = google_dns_managed_zone.gcp_sub_zone.name 3} 4 5output \u0026#34;gcp_dns_zone_nameservers\u0026#34; { 6 value = google_dns_managed_zone.gcp_sub_zone.name_servers 7} Te is it for the resources now you need to configure Terraform with the variables needed for authentication and provisioning.\nGCP Variables gcp_project: dns-multicloud-demo (Name of the GCP project to deploy to).\ngcp_region: europe-west3 (GCP Region for the deployment).\nThe Environment variable below enables authentication to google cloud.\nGCP Environment variables (Sensitive) GOOGLE_CREDENTIALS: [json]\nWhat needs to be added here is the contents of the json file that you can download from your GCP account . Terraform Cloud needs the credentials in a specific format .\nSave your google credentials into the project directory. Using your editor edit the file you downloaded.\nYou need to convert the json into one single line. If you have access to vim you can use the steps below.\n1vim gcp-credentials.json 2 3then press : 4 5enter the following 6%s;n; ;g 7 8Press enter 9 10Save the file by pressing : then wq and press enter After doing these steps if you open the file in your normal editor it should all be on one line. Copy the text from this file into the GOOGLE_CREDENTIALS Environment variable and mark it as secret.\nThe variable screen will look like this when you are done.\nYou then run terraform plan and terraform apply and the outputs should look something like this.\n1Apply complete! Resources: 1 added, 0 changed, 0 destroyed. 2 Outputs: 3 aws_sub_zone_id = Z2MPGT7J02JUKT 4 aws_sub_zone_nameservers = [ 5 \u0026#34;ns-1441.awsdns-52.org\u0026#34;, 6 \u0026#34;ns-1595.awsdns-07.co.uk\u0026#34;, 7 \u0026#34;ns-365.awsdns-45.com\u0026#34;, 8 \u0026#34;ns-852.awsdns-42.net\u0026#34;, 9 ] 10 gcp_dns_zone_name = dnsmc-zone 11 gcp_dns_zone_nameservers = [ 12 \u0026#34;ns-cloud-b1.googledomains.com.\u0026#34;, 13 \u0026#34;ns-cloud-b2.googledomains.com.\u0026#34;, 14 \u0026#34;ns-cloud-b3.googledomains.com.\u0026#34;, 15 \u0026#34;ns-cloud-b4.googledomains.com.\u0026#34;, 16 ] Congratulations the GCP zone is created.\nCommit the changes to git\nAzure Cloud Platform (Azure) Sub Zone The creation of this zone should be largely the same as the AWS and GCP ones.\nOpen the general.tf file in your editor and add the code block below the GCP config block.\n1# Azure General Configuration 2provider \u0026#34;azurerm\u0026#34; { 3 version = \u0026#34;~\u0026gt;1.32.1\u0026#34; 4} This block of code describes the Azure provider for Terraform to use when creating the delegated zone on Azure DNS. It has similar arguments that the AWS and GCP ones have and you can read more about it here: https://www.terraform.io/docs/providers/azurerm/index.html\nNext you need to create is the azure.tf file where we will be storing the details for the azure zone resource. Create the file in the same way as before with the touch command.\n1touch azure.tf The directory structure should look like this.\n1=\u0026gt; tree 2 . 3 ├── LICENSE 4 ├── README.md 5 ├── aws.tf 6 ├── azure.tf 7 ├── gcp.tf 8 ├── general.tf 9 ├── outputs.tf 10 └── variables.tf 11 0 directories, 8 files Open the azure.tf file in your editor and add the code blocks below.\n1resource \u0026#34;azurerm_resource_group\u0026#34; \u0026#34;dns_resource_group\u0026#34; { 2 name = \u0026#34;${var.namespace}DNSrg\u0026#34; 3 location = var.azure_location 4} 5 6resource \u0026#34;azurerm_dns_zone\u0026#34; \u0026#34;azure_sub_zone\u0026#34; { 7 name = \u0026#34;${var.namespace}.azure.${var.hosted-zone}\u0026#34; 8 resource_group_name = \u0026#34;${azurerm_resource_group.dns_resource_group.name}\u0026#34; 9 tags = { 10 name = var.namespace 11 owner = var.owner 12 created-by = var.created-by 13 } 14} The code block above does petty much the same as the other two. The resource azurerm_resource_group creates a resource group for the DNS zone. The location argument determines where the resource Group and zone will be deployed. The resource azurerm_dns_zone creates the zone in the resource group.\nNext you need to add the variable in the variables.tf file. Open the variables.tf file in your editor and add the code block below.\n1# Azure 2 3variable \u0026#34;azure_location\u0026#34; { 4 description = \u0026#34;The azure location to deploy the DNS service\u0026#34; 5 default = \u0026#34;West Europe\u0026#34; 6} We only have one variable here to determine which location the zone will be deployed.\nThe last bit of code you need to create is the outputs in the outputs.tf file. Add the code block below to the outputs.tf file after the GCP ones.\n1output \u0026#34;azure_sub_zone_name\u0026#34; { 2 value = azurerm_dns_zone.azure_sub_zone.id 3} 4 5output \u0026#34;azure_sub_zone_nameservers\u0026#34; { 6 value = azurerm_dns_zone.azure_sub_zone.name_servers 7} 8 9output \u0026#34;azure_dns_resourcegroup\u0026#34; { 10 value = azurerm_resource_group.dns_resource_group.name 11} As before we need to output the details that will be needed to deploy resources and create DNS records in the zone.\nYou now need to add the Variables for the Azure deployment.\nAzure Variables azure_location: West Europe The Azure Region Location to deploy to.\nAzure Variables (Sensitive) 1ARM_SUBSCRIPTION_ID: [ARMSUBID] 2ARM_CLIENT_ID: [ARMCLIENTID] 3ARM_CLIENT_SECRET: [ARMCLIENTSECRET] 4ARM_TENANT_ID: [ARMTENANTID] These credentials you can get from your Azure Service Principal account.\nThe variable screen will look like this when you are done.\nCommit the changes to git.\nThe final piece of the puzzle is to now make the AWS DNS servers aware of where the different GCP and Azure DNS zones are hosted. Open the aws.tf file with your editor and add the code blocks below after the AWS blocks.\n1# GCP SubZone 2 3resource \u0026#34;aws_route53_zone\u0026#34; \u0026#34;gcp_sub_zone\u0026#34; { 4 name = \u0026#34;${var.namespace}.gcp.${var.hosted-zone}\u0026#34; 5 comment = \u0026#34;Managed by Terraform, Delegated Sub Zone for GCP for ${var.namespace}\u0026#34; 6 force_destroy = false 7 tags = { 8 name = var.namespace 9 owner = var.owner 10 created-by = var.created-by 11 } 12} 13 14 resource \u0026#34;aws_route53_record\u0026#34; \u0026#34;gcp_sub_zone\u0026#34; { 15 zone_id = \u0026#34;${data.aws_route53_zone.main.zone_id}\u0026#34; 16 name = \u0026#34;${var.namespace}.gcp.${var.hosted-zone}\u0026#34; 17 type = \u0026#34;NS\u0026#34; 18 ttl = \u0026#34;30\u0026#34; 19 20 records = [ 21 for gcpns in google_dns_managed_zone.gcp_sub_zone.name_servers: 22 gcpns 23 ] 24 } 25 26# Azure SUBZONE 27 28resource \u0026#34;aws_route53_zone\u0026#34; \u0026#34;azure_sub_zone\u0026#34; { 29 name = \u0026#34;${var.namespace}.azure.${var.hosted-zone}\u0026#34; 30 comment = \u0026#34;Managed by Terraform, Delegated Sub Zone for Azure for ${var.namespace}\u0026#34; 31 32 tags = { 33 name = var.namespace 34 owner = var.owner 35 created-by = var.created-by 36 } 37} 38 39resource \u0026#34;aws_route53_record\u0026#34; \u0026#34;azure_sub_zone_ns\u0026#34; { 40 zone_id = \u0026#34;${data.aws_route53_zone.main.zone_id}\u0026#34; 41 name = \u0026#34;${var.namespace}.azure.${var.hosted-zone}\u0026#34; 42 type = \u0026#34;NS\u0026#34; 43 ttl = \u0026#34;30\u0026#34; 44 45 records = [ 46 for azurens in azurerm_dns_zone.azure_sub_zone.name_servers: 47 azurens 48 ] 49} In these code blocks you are creating the delegated zones in Route53 and providing the DNS name servers from each cloud zone as records. Save the file and the run terraform plan and terraform apply You should get results similar to this.\n1Apply complete! Resources: 2 added, 0 changed, 0 destroyed. 2 Outputs: 3 aws_sub_zone_id = Z2MPGT7J02JUKT 4 aws_sub_zone_nameservers = [ 5 \u0026#34;ns-1441.awsdns-52.org\u0026#34;, 6 \u0026#34;ns-1595.awsdns-07.co.uk\u0026#34;, 7 \u0026#34;ns-365.awsdns-45.com\u0026#34;, 8 \u0026#34;ns-852.awsdns-42.net\u0026#34;, 9 ] 10 azure_dns_resourcegroup = dnsmcDNSrg 11 azure_sub_zone_name = /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/dnsmcdnsrg/providers/Microsoft.Network/dnszones/dnsmc.azure.hashidemos.io 12 azure_sub_zone_nameservers = [ 13 \u0026#34;ns1-02.azure-dns.com.\u0026#34;, 14 \u0026#34;ns2-02.azure-dns.net.\u0026#34;, 15 \u0026#34;ns3-02.azure-dns.org.\u0026#34;, 16 \u0026#34;ns4-02.azure-dns.info.\u0026#34;, 17 ] 18 gcp_dns_zone_name = dnsmc-zone 19 gcp_dns_zone_nameservers = [ 20 \u0026#34;ns-cloud-b1.googledomains.com.\u0026#34;, 21 \u0026#34;ns-cloud-b2.googledomains.com.\u0026#34;, 22 \u0026#34;ns-cloud-b3.googledomains.com.\u0026#34;, 23 \u0026#34;ns-cloud-b4.googledomains.com.\u0026#34;, 24 ] After this step your DNS zones will be available in each cloud provider for your services to use as needed. If you ever need to add another cloud provider just follow the same process as with these.\nThe git repository for this blog post can be found here : https://github.com/lhaig/dns-multicloud\n","link":"https://fc4c6dbc.haigmail.pages.dev/2019/10/08/multi-cloud-dns-delegated-sub-domain-with-terraform-and-terraform-cloud/","section":"post","tags":["Cloud Automation","General","Terraform","Multi-Cloud","Terraform"],"title":"Multi-Cloud DNS delegated Sub domain with Terraform Cloud"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/terraform/","section":"tags","tags":null,"title":"Terraform"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/iac/","section":"tags","tags":null,"title":"IAC"},{"body":"The getting started guides for using Terraform with Google Cloud Platform (GCP) https://cloud.google.com/community/tutorials/getting-started-on-gcp-with-terraform\nAll suggest using code like this to provide credentials 1// Configure the Google Cloud provider 2provider \u0026#34;google\u0026#34; { 3 credentials = \u0026#34;${file(\u0026#34;CREDENTIALS_FILE.json\u0026#34;)}\u0026#34; 4 project = \u0026#34;flask-app-211918\u0026#34; 5 region = \u0026#34;us-west1\u0026#34; 6} This works well when you are just learning Terraform. Once you start working with 2 or three other engineers this becomes more of a challenge because you need to keep the state file secure using a remote S3 backend etc.. but you still have the problem of the credential file that needs to be shared. However since the launch of Terraform Cloud at Hashiconf it is now possible to sign up for a free Terraform Cloud account and to use it as a remote backend for your plans.\nThis secures your state file with the encryption provided as part of the service.\nYour current GCP credentials are still stored locally on our laptop and could still accidentally be committed to a git repository\nThe way to solve this is to create an Environment Variable in Terraform Cloud add the content from your json file to the variable and then mark it as secret. This then protects the secret and you can add the local json file to your favorite password manager to encrypt. To add the credentials they need to be altered a bit to be stored in the variable. You need to remove all newline characters from the file. Using your favorite editor remove these and the json will shrink to only one line.\nI use vim for this with the following steps\n1Open the file with vim 2 3vi gcp-credential.json 4 5press : 6 7Add the following 8%s;\\\\n; ;g 9 10Press enter. 11 12press : again 13 14type wq After the file is saved add an Environment Variable Called GOOGLE_CREDENTIALS to the terraform Cloud workspace you will be running your plans in. Copy in the data from the file and paste it into the variable value and mark it as sensitive. Then you are done.\nAll terraform runs should now use these credentials for authenticating to GCP\n","link":"https://fc4c6dbc.haigmail.pages.dev/2019/10/07/setting-up-google_credentials-for-terraform-cloud/","section":"post","tags":["General","IAC","Terraform"],"title":"Setting up GOOGLE_CREDENTIALS for Terraform Cloud"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/meteor/","section":"tags","tags":null,"title":"Meteor"},{"body":"I have been trying to build a site with Meteor and have slowly started getting stuff working.\nOne of the ways to populate your development data has been with database seeding.\nI wanted to link a user account with a document in one of my collections so I worked this out from the documentation.\nYou add users to the users collection this returns the userId for the new user which you capture in a variable that you use to insert the userId into your second collection.\n1if (Meteor.users.find().count() === 0) { 2 seed1UserId = Accounts.createUser({ 3 username: \u0026#39;lance\u0026#39;, 4 email: \u0026#39;l@oo.com\u0026#39;, 5 password: \u0026#39;123456\u0026#39; 6 }); 7 seed2UserId = Accounts.createUser({ 8 username: \u0026#39;david\u0026#39;, 9 email: \u0026#39;d@oo.com\u0026#39;, 10 password: \u0026#39;123456\u0026#39; 11 }); 12 seed3UserId = Accounts.createUser({ 13 username: \u0026#39;glenn\u0026#39;, 14 email: \u0026#39;g@oo.com\u0026#39;, 15 password: \u0026#39;123456\u0026#39; 16 }); 17 seed4UserId = Accounts.createUser({ 18 username: \u0026#39;martin\u0026#39;, 19 email: \u0026#39;m@oo.com\u0026#39;, 20 password: \u0026#39;123456\u0026#39; 21 }); 22} 23 24if (MasterList.find().count() === 0) { 25 26 MasterList.insert({ 27 firstname: \u0026#34;Lance\u0026#34;, 28 lastname: \u0026#34;James\u0026#34;, 29 user\\_id: seed1UserId 30 }); 31 32 MasterList.insert({ 33 firstname: \u0026#34;David\u0026#34;, 34 lastname: \u0026#34;Cope\u0026#34; 35 user\\_id: seed2UserId 36 }); 37 38 MasterList.insert({ 39 firstname: \u0026#34;Glenn\u0026#34;, 40 lastname: \u0026#34;Manner\u0026#34;, 41 user\\_id: seed3UserId 42 }); 43 44 MasterList.insert({ 45 firstname: \u0026#34;Martin\u0026#34;, 46 lastname: \u0026#34;Drone\u0026#34;, 47 user\\_id: seed4UserId 48 }); 49} ","link":"https://fc4c6dbc.haigmail.pages.dev/2014/11/10/meteor-user-seed/","section":"post","tags":["Meteor","Programming"],"title":"Meteor User Seed"},{"body":"I was looking for a way to tidy up out photos on the NAS at home and have tried a number of things that just did not fit the bill.\nthey were either just to difficult or completely wrong.\ni then stumbled upon this blog post http://falesafe.wordpress.com/2009/07/07/photo-management/\nWhat a gem. if you can install ruby on a machine you have to sort your photos this is it.\nThe post is from 2009 and so I had to update some of the gems it uses as well as change some of the code. but it was not much work.\nThanks to Falesafe for making it available it had another bonus in that I found out that we have 76000 photos.\nI feel some culling is needed.\nEDIT:\nI had to work with the script a bit as the EXIF attribute it was using was causing my photos to be sorted incorrectly namely (date_time).\nSo I have updated the script to use the (date_time_original) atribute and this has now sorted my photos properly for me. The original post that was written has comments that are closed so I will upload the adjusted script here if you want to use it.\n1#!/usr/bin/ruby 2# == Synopsis 3# 4# This script examines a source directory for photos and movie files and moves them to 5# a destination directory. The destination directory will contain a date-hierarchy of folders. 6# 7# == Usage 8# 9# ruby photo\\_organizer.rb \\[ -h | --help \\] source\\_dir destination\\_dir 10# 11# == Author 12# Doug Fales, Falesafe Consulting, Inc. 13# 14# == Change Log 15# LANCE HAIG = changed the EXIF attribute used to determine photo date taken to .date\\_time\\_original 16# 17# == Copyright 18# Copyright (c) 2009 Doug Fales. 19# Licensed under the same terms as Ruby. 20require \u0026#39;rubygems\u0026#39; 21require \u0026#39;exifr\u0026#39; 22require \u0026#39;find\u0026#39; 23require \u0026#39;logger\u0026#39; 24require \u0026#39;optparse\u0026#39; 25require \u0026#39;pathname3\u0026#39; 26require \u0026#39;digest/sha3\u0026#39; 27 28STDOUT.sync = true 29 30#$log = Logger.new(\u0026#34;photo\\_organizer.log\u0026#34;, 3, 20\\*1024\\*1024) # Log files up to 20MB, keep at least three around 31#$log.info(\u0026#34;Photo organizer started...\u0026#34;) 32 33def log 34 @log ||= Logger.new(\u0026#34;photo\\_organizer.log\u0026#34;, 3, 20\\*1024\\*1024) # Log files up to 20MB, keep at least three around 35 @log 36end 37 38log.info(\u0026#34;Photo organizer started...\u0026#34;) 39 40def usage() 41puts \u0026lt; e 42 if(f =~ /.DS\\_Store/) 43 log.info(\u0026#34;Skipping .DS\\_Store\u0026#34;) 44 next 45 elsif (e.message =~ /malformed JPEG/) 46 log.info(\u0026#34;Malformed JPEG: #{f}\u0026#34;) 47 next 48 end 49end 50 51if(time.nil?) 52 log.info(\u0026#34;WARNING: No EXIF time for: #{f}. Will skip it.\u0026#34;) 53 next 54end 55 56was\\_moved = move\\_image(f, time) 57increment\\_counter if was\\_moved 58 59 when File.directory?(f) 60 log.info(\u0026#34;Processing directory: #{f}\u0026#34;) 61 else \u0026#34;?\u0026#34; 62 log.info(\u0026#34;Non-dir, non-file: #{f}\u0026#34;) 63 end 64end 65 66puts \u0026#34;\\\\nFinished.\u0026#34; ","link":"https://fc4c6dbc.haigmail.pages.dev/2012/12/07/great-script-to-tidy-up-our-photos/","section":"post","tags":["Ruby","OpenSource","Personal Thoughts","SystemAdmin","Tweets"],"title":"Great Script to tidy Up our Photos"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/ruby/","section":"tags","tags":null,"title":"Ruby"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/systemadmin/","section":"tags","tags":null,"title":"SystemAdmin"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/tweets/","section":"tags","tags":null,"title":"Tweets"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/powershell/","section":"tags","tags":null,"title":"Powershell"},{"body":"I am currently helping a customer migrate from Novell to Microsoft and they are using the Quest migrator product to move their data to new DFS servers.\nThey currently have a large amount of data stored on a number of volumes. The sheer number of volumes and data have required that they deploy a large number of the copy engine servers.\nThe copy engine does not utilize a central logging facility, it stores the logfiles in a folder alongside the copy engine.\nThis unfortunately has a side affect, that there are now quite a few log files and some are reaching over 1.5GB in size.\nTrying to load these files into a text editor as proven impossible and unworkable and another way was needed.\nI decided that the best way to achieve this was to use a script that would parse the log files and extract the errors from the files into another file that would be smaller and easier to work with.\nI decided to use Powershell as the scripting language as it would run on the new infrastructure and could be run on a copy engine server with enough disk space.\nI undertook quite a bit of research and trial and error but eventually I have a working script.\nThis script is not signed so you will either need to sign the script to run it or elevate the privileges with set-Executionpolicy on the system you are going to be using.\nThe script uses two files the main script file and a csv file with the volume names and copy engine server names.\nBelow you will find a copy of both. I have also created a git repository that you can find on GitHub if you would like to help make it better.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2012/05/18/quest-nds-migrator-logfile-parser/","section":"post","tags":["Personal Thoughts","OpenSource","Powershell","Programming","SystemAdmin"],"title":"Quest NDS Migrator LogFile Parser"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/bongo/","section":"tags","tags":null,"title":"Bongo"},{"body":"I have uploaded some images of the new UI so you can see what it looks like without installing it.\nPlease let me know what you think.\nImages ","link":"https://fc4c6dbc.haigmail.pages.dev/2012/01/09/bongo-admin-ui-images/","section":"post","tags":["General","Bongo","rPath","Developing","Programming"],"title":"Bongo Admin UI Images"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/developing/","section":"tags","tags":null,"title":"Developing"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/categories/oss/","section":"categories","tags":null,"title":"OSS"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/rpath/","section":"tags","tags":null,"title":"RPath"},{"body":"A while ago Alex (so_solid_moo to the IRC channel) created a php binding for the Bongo API. He also created the start of the new UI that we are working towards.\nWe started with the admin ui for now as we have created a user interface with the roundcube project that Alex also integrated with.\nI stared porting the current Dragonfly assets into the project and I tried to stick to the old design style as much as possible as I really loved it’s look and feel.\nAfter a bout a week I was done and submitted it to the git repo of the new project.\nAlthough I was glad that we had stared the project and that I had done as well as I could on the pretty bits I was not quite happy with the quality of the work.\nI was going through my git repo’s this weekend and found the twitter git repo where they have open sourced all their CSS (Cascading Style Sheets) http://twitter.github.com/bootstrap/ this inspired me to see if I could use this as it was MUCH better quality CSS that what I could come up with.\nSo I started work on the migration as an experiment and from the word go it was so much easier. Their default styles just make sense and to alter or add my customisation took only a very few lines of CSS code.\nI was extremely grateful for this as it will enable us to improve our UI as we go along. you can find the new webui in Alex’s github project here.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2012/01/09/building-the-new-bongo-admin-ui/","section":"post","tags":["General","Bongo","rPath","Developing","Programming"],"title":"Building the new Bongo Admin UI"},{"body":"This is an account of Thursday the 29th of September 2011 when my cynical view on Londoners only thinking of themselves and not wanting to get involved with other peoples troubles was blown completely out of the water thanks to some really amazing people who I don't have names for but would really love to thank from the depths of my heart for everything they did for me.\nThe story begins as I am making my way from Hertfordshire down to Camden on my commute to get to the office.\nAt about 08:22 in the morning I was driving down Hawley Road on my motorcycle and stopped for a Red traffic light at the junction with Jeffrey's and Camden Street after a short while the light turned orange and then green for us. As this is normally when a load of cyclists jump the red light on the Kentish Town Road part of this junction I made sure to check that none had done so and then started to travel across the junction, once I had reached about ¾ of the way across the junction I felt the most unbelievable pain on my left side, felt myself hit the road surface on my right hand side and heard my self screaming. (and no it was not like a girl but close though)\nThe pain was something that was indescribable and all I could see was my bike over my left shoulder and the smell petrol that was leaking out of the petrol tank around me. I looked up to see if any cars were coming and unable to stop but thankfully none were.\n(This is where people who I have never known stepped into my life to my eternal thanks)\nAlmost immediately I gentleman in a dark suite was leaning over me looking through my visor and asking if I was ok, All I could feel at the time was the screaming pain in my left foot and answered yes. I looked over my shoulder and saw another gentleman talking to a young lad in a grey helmet all I could hear was did you not see the red light.\nOut of the corner of my eye I saw another gentleman in a black helmet and a white shirt (I think) take off his helmet and say “are you ok mate?”, “Do you know your Name?” I tried to answer him as best I could. I then realised that I had not hurt my head or hands or arms so decided to take off my helmet so I could see and hear better as I use earplugs in my ears to protect them from the motorway sounds.\nAfter taking off my helmet and taking out my ear plugs the intense loads sounds flooded into my brain and I realised that my helmet had cut off my ability to realise that there were so many more people who had stopped on there way to work to help me.\nI looked behind me and could see the young chap who had ridden into me sitting against the railings on the pavements clearly in a great deal of shock and I became worried for him as he was really pale. A bit further over I looked at what was left of his Vespa and thought Bloody hell how am I still conscious and he sitting there.\nA wonderful vision in dayglo yellow cyclists gear was a lady who promptly informed me that she had called the ambulance and the police and that they would soon be here.\nMy attention was grabbed by a tapping on my Right hand shoulder another man in motorcycle helmet leaned in and said “I was right behind you and saw it all, here is my business card I will be a witness for you”, and with that he was off and climbed on his bike and road off. I did not even have time to say thanks.\nAll this time the gentlemen in the dark suite and white shirt kept talking to me asking me if I still felt ok. He asked me if I would like to get out of the road to which I agreed but then I realised that at 118 kgs and being over 6feet would make things difficult for them so I crawled towards the pavement.\nI remained calm which I was pleasantly surprised about and this helped I think everyone around me to keep focussed on what they needed to do to help me.\nFor some reason I was worried about my laptop that was in the storage on the back of my bike and so asked the gentleman in the white shirt if he would mind getting it out for me. He duly did and I can only thank him for that. I was after my mobile phone so I could call my wife as I did not want anyone calling her first and scaring her. The gentleman in the white shirt said just use mine I don't mind.\nIt was about 3 minutes later that the first ambulance arrived on the scene and two lady ambulance paramedics climbed out and started to do there work on me.\nAfter a short while I was in the ambulance and through the open door I could see the man in the suite and the one in the white shirt smile at each other and then as if to say well no one else will do this they shrugged their shoulders and these wonderful people physically righted motorbike and wheel it onto the pavement.\nThe ambulance staff (I wish I had taken their names) then closed the door and started going through their procedures Blood pressure finger pricks blood oxygen levels etc and they did this with a smile on their faces and in their voices. To anyone who ever says anything bad about the NHS ambulance staff I think you are completely mistaken.\nWe then heard the police siren and a Metropolitan police officer PC Barker knocked on the door and entered again these guys were the nicest people to talk to and were a credit to their profession.\nAfter a few more questions and answers we were free to go and I was taken to the Royal Free Hamsted hospital where I was taken to the Minors 4 cubical where some really great medical staff came to my aid and scanned and prodded and x-rayed me whilst some learner Dr's etc.. looked on and I am glad I could add one more addition to their education a RTC between two motorcycles.\nThe orthopedic staff determined that I had a fractured ankle and would not need screws etc.. (whew) and a cast would be all that is needed to med these broken bones.\nMy wonderful wife then walked in to the cubical and I relaxed quite a bit as I knew that my day could only get better from then on. After getting a back slab plaster cast and with strict instructions not to walk on my leg and a booked appointment for the fracture clinic next Thursday We dutifully made our way out of the hospital. I had not used crutches in a very long time so it was slow going.\nThe wonderful people at the company I work for help arrange transport home from the hospital to home where I was happy to sit on the couch with my foot up. My motor mechanic friend woke up at 4am and went to pick up my motorbike on Friday I can't that Duncan enough.\nSo to all you wonderful people\nGentleman in the Dark suite Gentleman in the White Shirt Lady cyclist dressed in dayglo yellow Gentleman who gave me his business card. The people who helped roll my motorbike to the pavement The two ladies who drove the ambulance PC Barker and his partner The medical staff at the Royal Free Hamstead hospital Duncan from Bikers realm I wish I had had the forethought to get all your names so I could thank you in person all I can do unfortunately is thank you from the bottom of my heart and on behalf of my Mother, Father,Wife and kids thank you for helping to get me safely home.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2011/09/30/my-interesting-way-to-end-a-week/","section":"post","tags":["The Snake and I","Personal Thoughts"],"title":"My interesting way to end a week."},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/the-snake-and-i/","section":"tags","tags":null,"title":"The Snake and I"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/categories/travel/","section":"categories","tags":null,"title":"Travel"},{"body":"I recently had to move hosts and guests to a new vcenter server as the old server had become corrupt and full of issues.\nThe current vcenter has a few custom attributes and notes that would not be transferred as part of the move.\nSo I wanted to use powercli to read the attributes out and put them back.\nTo export the attributes I used the script below.\nYou will need to add as many Key Value pairs as you have custom attributes\n1#load Vmware Module 2Add-PSSnapin VMware.VimAutomation.Core 3 4Connect-VIServer -User \u0026#39;VMUSER\u0026#39; -Password \u0026#39;USerPasswd221\u0026#39; -Server \u0026#39;vcenter1\u0026#39; 5 6$vmlist = get-vm 7$Report =@() 8foreach ($vm in $vmlist) { 9$row = \u0026#34;\u0026#34; | Select Name, Notes, Key, Value, Key1, Value1, Key2, Value2, Key3, Value3 10$row.name = $vm.Name 11$row.Notes = $vm | select -ExpandProperty Notes 12$customattribs = $vm | select -ExpandProperty CustomFields 13$row.Key = $customattribs\\[0\\].Key 14$row.Value = $customattribs\\[0\\].value 15$row.Key1 = $customattribs\\[1\\].Key 16$row.Value1 = $customattribs\\[1\\].value 17$row.Key2 = $customattribs\\[2\\].Key 18$row.Value2 = $customattribs\\[2\\].value 19$row.Key3 = $customattribs\\[3\\].Key 20$row.Value3 = $customattribs\\[3\\].value 21$Report += $row 22} 23 24$report | Export-Csv \u0026#34;c:\\\\vms-with-notes-and-attributes.csv\u0026#34; -NoTypeInformation It should produce a csv file that looks something like this\n1VMNAME,NOTES,CREATEDATE,CREATOR,DEPLOYDATE,TEAM 2vmguest1,note1,12/29/2011,Bob,12/30/2011,Web 3vmguest2,note2,12/29/2011,John,12/30/2011,Accounts 4vmguest3,note3,12/29/2011,Paul,12/30/2011,Database Once you have exported the file you need to import it into the new vCenter\nagain adding Key Value pairs as needed.\n1#load Vmware Module 2Add-PSSnapin VMware.VimAutomation.Core 3 4Connect-VIServer -User \u0026#39;VMUSER\u0026#39; -Password \u0026#39;USerPasswd221\u0026#39; -Server \u0026#39;vcenter2\u0026#39; 5 6$NewAttribs = Import-Csv \u0026#34;C:\\\\vms-with-notes-and-attributes.csv\u0026#34; 7 8foreach ($line in $NewAttribs) { 9set-vm -vm $line.Name -Description $line.Notes -Confirm:$false 10Set-CustomField -Entity (get-vm $line.Name) -Name $line.Key -Value $line.Value -confirm:$false 11Set-CustomField -Entity (get-vm $line.Name) -Name $line.Key1 -Value $line.Value1 -confirm:$false 12Set-CustomField -Entity (get-vm $line.Name) -Name $line.Key2 -Value $line.Value2 -confirm:$false 13Set-CustomField -Entity (get-vm $line.Name) -Name $line.Key3 -Value $line.Value3 -confirm:$false 14 15} Hope this helps someone.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2011/09/27/how-to-copy-custom-attributes-when-migrating-vmware-vcenter-to-new-database/","section":"post","tags":["General","Personal Thoughts","Linux","Programming","VMware"],"title":"How to copy custom attributes when migrating vmware vcenter to new database"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/linux/","section":"tags","tags":null,"title":"Linux"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/vmware/","section":"tags","tags":null,"title":"VMware"},{"body":"This blog is a follow on from a blog post I wrote ages ago and have eventually got round to finishing it off In this part of the process we will create the disks and setup the DRBD devices First we need to connect to the Virtual Machines from a terminal session as it makes life much easier and quicker when you connect remotely. You will need to make sure that your servers have static IP addresses. For this document I will be using the following IP addresses for my servers.\n1drbdnode1 = 172.16.71.139 2drbdnode2 = 172.16.71.140 3drbdmstr = 172.16.71.141 (clustered IP address) 4Subnet Mask = 255.255.255.0 5Gateway = 172.16.71.1 6DNS Servers = 8.8.8.8 and 4.4.4.4 So to set the IP address as fixed you need to do the following. Connect to the console of drbdnode1 and login now we need to edit the file that contains the IP address of the network card enter the following command and press return\n1sudo nano /etc/network/interfaces enter the password for the user you are logged in as You should see the following screen Edit network now use your arrow keys on your keyboard and move the white cursor to the section that starts with iface eth0 press Ctrl K to remove the line then add the lines below with your IP address details\n1auto eth0 2iface eth0 inet static 3address 172.16.71.139 4netmask 255.255.255.0 5network 172.16.71.0 6broadcast 172.16.71.255 7gateway 172.16.71.1 It should end up looking like this Edit network complete Now press Ctrl X to exit Then Y Then press Enter to save Now type in the following\n1sudo /etc/init.d/networking restart Do the same for drbdnode2 Now that we have given each server a static Ip address we can connect via ssh to the server to do the admin remotely. To do this you need to have a machine that has an ssh client installed most linux and osx clients have one already installed if you are on windows look for putty and use that. So open a terminal on your machine and the in the following\n1ssh cluster@172.16.71.139 and press enter. You need to substitute the username you created on your server when setting it up for the word cluster in the above command. You will be prompted to accept a key for the server. Type yes and press enter. Now enter the password for the user and press enter. You should see a screen like this ssh success Connect to both cluster nodes to make sure you are not stopped down the line to fix the problem. You are now ready to work on your cluster. First we need to create host records for the two servers type the following into your terminal session\n1sudo nano /etc/hosts and add a record for each server it should look something like this Edit hosts Save the file as before and do the same for node2 but swap the names and ipadresses Now we need to install a few packages that will allow us to use drbd in the terminal on drbdnode1 type\n1apt-get install heartbeat drbd8-utils and press enter you should have a screen like this Packages install Press Y and then Enter to install the software. Do this on drbdnode2 as well Now we need to create the partitions that we will use for the drbd cluster to find out which disk we will be using run the command\n1sudo fdisk -l to see which disks have not been partitioned your screen should look like this fdisk -l As you can see at the end is the disk /dev/sdb does not have a partition table look for the line “ Disk /dev/sdb doesn't contain a valid partition table “ to create a partition table we need to run the following commands\n1sudo fdisk /dev/sdb 2n (to create a new partition) 3p (to select a primary partition) 41 (for the first partition) 5Enter (to select the start cylinder) 6and enter (to select the end cylinder) 7w (to write the changes) the screen should look like this fdisk -l complete Do this on both servers once this is complete we now need to edit the drbd configuration files to set up our clustered filesystem. In your terminal on drbdnode1 enter the command\n1sudo nano /etc/drbd.d/clusterdisk.res Enter the password for your user and edit the file Copy and paste the following code into your terminal screen and then change the details to match your server names and ip addresses\n1resource clusterdisk { 2 # name of resources 3 protocol C; 4 on drbdnode1 { # first server hostname 5 device /dev/drbd0; # Name of DRBD device 6 disk /dev/sdb1; # Partition to use, which was created using fdisk 7 address 172.16.71.139:7788; # IP addres and port number used by drbd 8 meta-disk internal; # where to store metadata meta-data 9} 10 11on drbdnode2 12{ 13 # second server hostname 14 device /dev/drbd0; 15 disk /dev/sdb1; 16 address 172.16.71.140:7788; 17 meta-disk internal; 18} 19disk { 20 on-io-error detach; 21} 22net { 23 max-buffers 2048; 24 ko-count 4; 25} 26syncer { 27 rate 10M; 28 al-extents 257; 29} 30startup { 31 wfc-timeout 0; 32 degr-wfc-timeout 120; # 2 minutos. 33} 34 35} The screen should look similar to this Edit drbd resource ctrl x (to exit) y (to save the changed file) enter (to overwrite the file) Now we need to create the DRBD resource enter the following command into your terminal session\n1sudo drbdadm create-md clusterdisk After running this command you should see a screen similar to this Create DRBD Metadat Disk On drbdnode1 enter the following command\n1drbdadm -- --overwrite-data-of-peer primary all this will activate it as the primary drbd node to see if this has worked you can run the following command\n1sudo drbdadm status the result should look like this on drbdnode1 Drbdadm status node 1 and like this on drbdnode2 Drbdadm status node2 you will see that drbdnode1 has a status of cs=\u0026quot;SyncSource\u0026quot; and drbdnode2 has a status of cs=\u0026quot;SyncTarget\u0026quot; this tells you what role they are playing in the cluster at the end of this line you will see a status resynced_percent=\u0026quot;3.8\u0026quot; this tells you how much the drbd disk has synced. Once the sync is complete connect to drbdnode1 and run the following command\n1sudo mkfs.ext4 /dev/drbd0 this will create an ext4 partition on the drbd file system. Which will sync across to drbdnode2\nConfiguring heartbeat resource Now we need to setup the Mysql resource in the heartbeat configuration firstly we need to create a file called authkeys. The file should be created in /etc/ha.d directory. You can do this with the following command\n1nano /etc/ha.d/authkeys in this file you need to add the following text.\n1auth 3 2 33 md5 [SECRETWORD] Replace [SECRETWORD] with a key you have generated. This file needs to be on both servers in the /etc/ha.d directory. After you have created the file you need to change the permissions on the file to make it more secure. This can be done with the following command\n1chmod 600 /etc/ha.d/authkeys do this on both servers Now we need to create the /etc/ha.d/ha.cf file to store the cluster config. You can do this with the following command\n1nano /etc/ha.d/ha.cf copy and paste this code into the file\n1logfile /var/log/ha-log 2 3keepalive 2 4 5deadtime 30 6 7udpport 695 8 9bcast eth0 10auto\\_failback off 11stonith\\_host drbdnode1 meatware drbdnode2 12stonith\\_host drbdnode2 meatware drbdnode1 13node drbdnode1 drbdnode2 do the same for both servers next is the haresources file. Create the file here\n1nano /etc/ha.d/haresources paste this code in there\n1dhcp-1 IPaddr::172.16.71.141 /24/eth0 drbddisk::clusterdisk Filesystem::/dev/drbd0::/var/lib/mysql::ext4 mysql Your cluster is now ready to role. All you now need to do is test the cluster which I will tell you how to do in a future blog post Let me know how you get on\n","link":"https://fc4c6dbc.haigmail.pages.dev/2011/05/11/creating-a-two-node-mysql-cluster-on-ubuntu-with-drbd-part-2/","section":"post","tags":["Linux","OpenSource","Personal Thoughts","Ubuntu","VMware"],"title":"Creating a Two Node Mysql Cluster On Ubuntu With DRBD Part 2"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/series/how-to/","section":"series","tags":null,"title":"How To"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/ubuntu/","section":"tags","tags":null,"title":"Ubuntu"},{"body":"I was struggling with an install of ESXi on a cisco 6509 switch where the management and VM LAN connectivity worked just fine but for some reason the SAN NFS VLAN just did not want to communicate with the Nexenta on that VLAN.\nAfter some searching and trial and error I was able to utilise this post http://blogs.egroup-us.com/?p=2453 to get the port-channel and the ports configured correctly. I did not use all the settings from this post but it did remind me to check my port0-channel config.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2011/04/28/esx-trunk-vlan-config-for-storage/","section":"post","tags":["General","Personal Thoughts","VMware","Linux","Nexenta"],"title":"ESX Trunk VLAN config for Storage"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/nexenta/","section":"tags","tags":null,"title":"Nexenta"},{"body":"I am busy working on a contract with a company that is implementing a 10G network for their ESX cluster.\nWe have been using extreme X650 10G copper switches for the core.\nMigrating the current servers to the 10G environment was relatively easy and went with minimal issues.\nOver the last 2 weeks I have been trying to get a new server to connect to the cluster and have been frustrated. I have been unable to get the server communicating on the management VLAN. the server was configured correctly and so was the switch or so I thought.\nIt seems that to make this work you need to add the network cards to the vlan in the extreme os as untagged which then allows you to connect the server to vCenter and then once you add your NIC’s to the dv switch you lose connectivity again and have to readd the ports to the management vlan as tagged.\nthis post is more fo rme to be able to look it up in the future.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2011/04/26/connecting-esxi-4-1-to-extreme-x650-10g-switches/","section":"post","tags":["General","Personal Thoughts","VMware"],"title":"Connecting ESXi 4.1 to extreme x650 10G switches"},{"body":"This post should have been written quite a while ago as I wanted to start documenting my efforts to learn to program using Ruby. As most of you know I have been trying for a while to teach myself to program.\nI started my efforts with a course in c# at a company in London, the course was just great and the instructor was a fantastic guy. Unfortunately life meant I could not practice at all. I worked for a company for a year that gave me no opportunity to play during the day and having a newborn baby left my wife and I looking more like zombies that real people.\nThen things changed the year before last when I Joined Forward as a contractor to help them with their Virtual infrastructure. This company is completely different to anywhere I have ever worked before. Normally as a contractor you are shoved in a corner and beat with a whip so that they get the most out of you, here at Forward this is definitely not the case.\nForward has some really great intelligent developers who are a pleasure to work with and be part of and that is where I was going with this post.\nA short while ago Fred George held one of his famous OO Bootcamp training sessions and I was lucky enough to be invited to join and true to Freds statement he tries to keep the course at a level where you always feel stupid and believe me I felt REALLY stupid. The good thing about feeling stupid was I actually learnt something. You kind of learn to program by accident (quoting Tom Hall).\nThis is where the Ruby, rBongo, WeBogo bits come in. Fred uses Ruby to illustrate OO programming best practice and to help you understand OO in general a side effect of this is that you start learning ruby syntax and start learning the programming vocabulary needed to accomplish the tasks, having gained some experience with ruby during the course I thought it best to use ruby to continue learning to program.\nI have been working on Bongo since it was founded and the other day I was speaking to Alex the project lead and we realised it is almost 10 years now. I have always wanted to contribute more than just packaging the app on the OBS and being available to do testing and such. Alex wrote the PHP binding for the Bongo Store and having seen what some of the guys can do at Forward with Ruby and jQuery I wanted to create a binding for the store in Ruby and create a gem from it thus allowing anyone to create the best REST interface ever.\nThis is forcing me to learn TCP Sockets win Ruby and other nice things. I will try to document as often as I can what I am upto on this.\nMy efforts will be on 2 Ruby projects. Initially I will need to work on rBongo which is the ruby binding for the Bongo store I am sure most of the developers at Forward could probably write this in a day or so, hopefully I can convince one or two of them to help out .\nMy second effort will be on WeBongo the REST webui for the Bongo mail store. I have other ideas for the webui once we have a working solution (using it as a sync destination for Tomboy desktop notes)\nPlease keep that in mind as I try to get this working.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2011/02/08/learning-ruby-and-rbongo/","section":"post","tags":["General","Bongo","rPath","Programming","rBongo","Ruby","WeBongo"],"title":"Learning Ruby and rBongo with WeBongo"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/rbongo/","section":"tags","tags":null,"title":"RBongo"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/webongo/","section":"tags","tags":null,"title":"WeBongo"},{"body":"The Bongo-Project needs to be renamed\nNow before you fall of your chair or swallow your phone while reading this let me explain why.\nI have been wanting to create this post for sometime now and have been holding off as we are almost ready for our 1.0 release.\nThe problem I have is that even if we released a new version of the software and it was our 1.0 release I am not sure anyone will be able to find us. I have been doing some digging over the last few months about what actually we are and to be honest I am not convinced we are “Individual” enough. We as a project get lost in the Bongo Project mayhem that is People who play bongo’s as instruments.\nRight from day one when we started this fork we had a problem with the name, we chose ” Bongo” as a name as an interim measure so that we had something to call ourselves while we thought of a new name. This has obviously not happend and I would like to kick this discussion off before we are ready for 1.0 so we have time to get it all done so we can release both to the outside world at the same time.\nNow I know that this is not something lightly taken on and also it would mean quite a bit of work on the part of the limited Dev’s we have to change the code as well as then changing the website and our images and stuff.\nI am now thinking I will spend £30.00 on a prize for the winning name. So now I need to find out what the community think and if there is appetite for this.\nI have created a poll on my site for some active feedback\nlet me know I really want to know\nUPDATE This will be put on hold until further notice\n","link":"https://fc4c6dbc.haigmail.pages.dev/2010/11/19/bongo-project-org-needs-to-be-renamed/","section":"post","tags":["General","Bongo","rPath"],"title":"Bongo-Project.org Needs To Be Renamed"},{"body":"Creating a Two Node Mysql Cluster On Ubuntu With DRBD To create this cluster you will need 2 ubuntu node servers installed as follows.\nI am creating this cluster inside of vMware so I created 2 VM's with:\n1GB RAM\n1 10GB hdd for the root (/) partition.\n1 20GB hdd for the database store.\nI downloaded the ubuntu 9.10 server iso and presented this to the VM's and started the install.\nThis is by no means an in depth install instruction.\nI have just captured screenshots to show what I did.\nSo here we go with the install of the machines.\nYou should see this screen on booting the VM. Select the language you want to use.\nSelect Language Then push the F3 key to select your keyboard.\nSelect Keyboard Then use the up and down arrows to select the install ubuntu server option and push the Enter key.\nSelect Install Then select your install language using the up and down keys.\nSelect Language Then select your Country\nSelect Country Then Enter the hostname for the system\nSelect Hostname We then need to partition the disks.\nI selected the guided – use entire disk option as these are new servers.\nGuided Use fulldisk Then select the first disk Which is 10GB here. We are only formatting the system disk as we need to make some changes to the other disk before we format it later on in this series.\nSelecting this option lets Ubuntu manage the system partition in the default manner.\nSelect 10GB disk You will then be asked if you really want to write the changes to the disk. As these are new servers you select YES.\nAgree to Changes Now we create a new User that will be used to access the server to administrate it. Enter the Full name e.g. “John Doe”\nFull User Name After you select continue you will be asked to select or type a username.\nUser login name Select continue after you are happy with the username. And you will be prompted for a password.\nFirst password Enter a new password and select the continue option. You will then be asked to enter the password again.\nSecond Password After entering the password again select the continue option. You will then be asked if you want to encrypt your home drive. As this will be a server I selected No.\nEncrypt Home Drive You will then be asked if you need to add a proxy address to access the internet. In some businesses this is a required solution for me it was not necessary. Select Continue when finished.\nproxy Info You will be asked to enable updates for the server. The choice is yours. I prefer to automatically install security updates.\nSecurity Updates The next screen is related to the software patterns that you would like to install.\nClean Software Patterns I moved the red bar down and used the space par to select the openssh server. The reason for this is to allow us access t othe console of the server via an ssh terminal.\nSelect OpenSSH Once you select continue the install will take place. After a while the following screen will come up that shows the install is complete and that the server will now reboot.\nSelect reboot This is the last task for the install process We will move on to the configuration of the server once it has rebooted.\nPart 2 can be found here\n","link":"https://fc4c6dbc.haigmail.pages.dev/2010/04/01/creating-a-two-node-mysql-cluster-on-ubuntu-with-drbd/","section":"post","tags":["Linux","OpenSource","Personal Thoughts","Ubuntu","VMware"],"title":"Creating a Two Node Mysql Cluster On Ubuntu With DRBD"},{"body":"I have for some time now been wondering how many people actually use Bongo.\nThe reason for this is that we have had images available for a while and I am still non the wiser as to how many people actually use them.\nI faithfully spend hours and hours building packages and getting them out the door but have no markers to see if they are being used.\nWhile reading the docs for the ESVA appliance (http://www.global-domination.org/esva) I noticed that they have a cronjob that downloads a file and immediately deletes it. This allows for roughly seeing who is using their appliance .\nThey have documentation that tells people how to remove the cronjob which effectively turns off this tool.\nI propose that the Bongo project perhaps use something similar to allow us to know how many people use the products we produce. it would be nice to know how many people are using Bong while the Web-UI is not working and then once we release something if that number increases and at what rate.\nI am really interested in ideas as to how we can achieve this with or without having some kind of phone home too.\nPlease leave a comment on this post if you like, or send an e-mail to the user or devel list or even come and have your say on the IRC channel.\nI have also added a simple poll on the left\nThanks in advance\n","link":"https://fc4c6dbc.haigmail.pages.dev/2010/01/13/standing-up-and-being-counted/","section":"post","tags":["General","Bongo","rPath","VMware"],"title":"Standing up and being counted."},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/opensuse/","section":"tags","tags":null,"title":"OpenSuse"},{"body":"I have just upgraded to 11.2 from ubuntu 9.10 on my IBM / Lenovo T61 laptop. ( I will post a better blog about that later)\nWhat I wanted to mention here is that the current vMware workstation 6.5.3 does not want to run on my system.\nI have found this post http://k-----k.blogspot.com/2009/09/install-vmware-workstation-653-on.html\nWhich has steps for compiling the modules yourself but by the look of things is based on 32bit openSUSE.\nI will see if I can get it working here on my 64bit machine.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/11/15/vmware-workstation-6-5-3-on-opensuse-11-2/","section":"post","tags":["General","Bongo","rPath","VMware","OpenSuse"],"title":"vMware workstation 6.5.3 on openSUSE 11.2"},{"body":"I have great news about the images on the rPath system.\nI have been able to get Bongo 0.6.1 to build on the rPath system with a json patch from Alex.\nI have promoted it to the QA and RELEASE repo's so it should be available for you guys.\nPlease test and let me know if you have any issues.\nYou can find the images here\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/10/11/great-news-about-rpath-images/","section":"post","tags":["General","Bongo","rPath","VMware"],"title":"Great News About rPath Images"},{"body":"I have been trying to get the latest 0.6.1 release of Bongo onto the rPath images. This unfortunately has not been possible due to our reliance on a newer version of Python than what is available on the rPath system.\nThis is a sad moment as I have been doing that for quite some time now and will not be able to continue.\nSo for those that have images which contain Bongo on a rPath system please use either the Fedora, Suse or Gentoo packages that we have created.\nThanks to everyone who has helped me over the years and especially Stu Gott who was instrumental in moving the images forward.\nIf rPath eventually support python 2.6 I will revisit the images on their platform.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/10/05/bongo-rpath-images/","section":"post","tags":["General","Bongo","rPath"],"title":"Bongo rPath Images"},{"body":"I have been working on the images in the Suse Studio environment as I mentioned in my blog post here.\nI started the investigations to find that our RPM repository was in need of a bit of work. I wanted to create a new repository in my own name that would allow me to build these RPMs for the project.\nThinking about the delivery of the RPM’s I thought it best to open a repository with a generic name namely “bongo-project”. This would allow more than one person to work on the repository, but for the repository to keep its identity.\nOnce the repository was setup I realized that I had to learn RPM packaging as I had been so used to the Conary way of packaging that it was almost second nature.\nAfter quite a long time I have been able to get consistent builds from the OBS which have produced RPM’s for a number of OS’s.\nNow cam the part that I really to do from the start Create images.\nAll in all it has been a painless effort as the interface is easy to use and intuitive. I only had to ask for help a few times to find out that the error was mine and not the studio’s. I have created images for the following\nISO Live CD Vmware Image Xen Image USB/HDD Image These images are all x86 (32bit) and do not have any web interface (well we ripped it out remember)\nThe only downside at the moment is that they have not created the marketplace yet so any images created will be deleted after a while. This left me with a dilemma, how do I publish the images?\nMy solution…..\nTo create a subdomain on my own website for the bongo downloads.\nThe link is Http://bongo.haigmail.com\nHere you will find a crude yet cute website with links to the bongo tar.gz files. I was impressed with the size of the images about 150mb each which I think is quite good.\nFor those of you on the rPath images as promised I will be creating one more update to that image set unless there are enough of you that want it. I have a problem in that Bongo does not work on Python 2.4 which is the deployed version on the rPath system. rPath is not the only OS affected CentOS 5 and RHEL 5 are also affected by this. I have asked the guys to look at why it is failing and to see if they could get it working as soon as I can build it I will.\nI would really like to know who of you are using the rPath images as I have no idea how many of you there are. Please post a response here if you do.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/09/09/images-for-bongo-0-6-0/","section":"post","tags":["General","Bongo","rPath"],"title":"Images for Bongo 0.6.0"},{"body":"Over the weekend I was able to have my mobile contract changed and part of the deal is that I get an HTC Hero.\nThis has made me quite happy as I have been forced to run windows mobile on my old phone for far to long and it is refreshing that I have an android phone.\nThe first thing I noticed was that the box was really small, I wondered if they had actually just given me the charger by mistake.\nAs soon as I had opened the box the shiny new black phone was there and there was even place for the charger. In past occasions when I have taken possession of a new phone I dumped the box and manual and turned on the phone, because how difficult could it be to use it?\nI went against my better nature and actually looked for a manual in the box and there was none, at first I thought that HTC had eventually realised that Men NEVER read the manual and had not provided one as it was just wasteful and well useless. I dutifully plugged the phone into the socket and waited for the phone to charge, this did not take very long as I was able to turn the phone on after only 2 hours and the battery reading said full. I was in business.\nI started clicking round on the application list and found the pdf reader. I thought that would be a good thing to have. When the app opened I realised that HTC had just moved with the times and supplied a PDF user guide all 200+ pages of it.\nOne of the things that annoys me is that your contacts get synced to a google account. I really don't like that at all. My contacts are MY property and I want to keep it that way.\nI have searched for some time now for a contacts app that allows you to use the phone without contacting google or some other company to store your data. I have looked at what it would take to code my own one and then realised I can't code. say no more.\nI would really appreciate any help in finding this killer app for my system.\nI am really excited that we could develop an app for android or the iPhone that interfaces with our whole system and then this problem goes away. I just can't wait. Enough for now I need to search for my contacts app.\nEDIT: I just realised that I forgot to mention that there is no app I can find that will sync your evolution/thunderbird PIM to the android system. I have searched high and low but as far as I can tell nothing exists.\nBoy I wish I could code\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/08/08/htc-hero-owner/","section":"post","tags":["General","Personal Thoughts"],"title":"HTC Hero owner"},{"body":"You will be able to see from the poll archive that the following OS versions seem to be more popular\nUbutnu 9.04 (53.0%, 19 Votes) Debian 5 (39.0%, 14 Votes) CENTOS 5 (28.0%, 10 Votes) openSuse 11.1 (22.0%, 8 Votes) Fedora 11 (19.0%, 7 Votes) I will now start to work on the packages for these OS's.\nFrom the outset I see that we have quite a few Debian based users and this is a problem for me as I have no idea how to package for Debian. Not that I know much about packaging at all.\nI have now set-up the osc build server (thanks to Fatpelt for supplying a 64bit hardware platform for us) as a test run I have tried to package the gmime package for Fedora as this is a requirement for Bongo. It has built fine so this was a plus.\nFrom the initial errors I can see in the openSUSE build service. We need to look at our init scripts and also the spec file we have. quite a few errors were kicked out by rpmlint.\nI would appreciate any help with the Debian Ubuntu package creation as well as spec files for each of the rpm distributions.\nThanks\nLance\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/08/08/results-of-the-os-poll/","section":"post","tags":["General","Bongo","rPath"],"title":"Results of the OS poll"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/nature/","section":"tags","tags":null,"title":"Nature"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/categories/photography/","section":"categories","tags":null,"title":"Photography"},{"body":" Reflection Originally uploaded by lhaig\nThis was taken in the Sandringham Estate.\nI found this puddle and tried to focus on the tree and got this strange result.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/08/01/reflection/","section":"post","tags":["Nature"],"title":"Reflection"},{"body":"[ Forrest Picture Originally uploaded by lhaig\nJust trying different things out.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/08/01/forrest-picture/","section":"post","tags":["Nature"],"title":"Forrest Picture"},{"body":" Walking Path Originally uploaded by lhaig\nTrying to create a meandering path composition\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/08/01/walking-path/","section":"post","tags":["Nature"],"title":"Walking Path"},{"body":" Reflection in water puddle Originally uploaded by lhaig\nReflection of some trees in a puddle\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/08/01/reflection-in-water-puddle/","section":"post","tags":["Nature"],"title":"Reflection in water puddle"},{"body":" Prehistoric Originally uploaded by lhaig\nIt almost seems some prehistoric monster should be jumping up soon.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/08/01/prehistoric/","section":"post","tags":["Nature"],"title":"Prehistoric"},{"body":" Wood for the trees Originally uploaded by lhaig\nwas trying to get both the near and the far in focus but failed. Although this still looks ok I think.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/08/01/wood-for-the-trees/","section":"post","tags":["Nature"],"title":"Wood for the trees"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/architecture/","section":"tags","tags":null,"title":"Architecture"},{"body":" Passing Time Originally uploaded by lhaig\nWooden clock on the roof of the building at the Sandringham estate shops\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/08/01/passing-time/","section":"post","tags":["Architecture"],"title":"Passing Time"},{"body":" Wooden Slats Originally uploaded by lhaig\nTrying to create a good composition to learn more\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/08/01/wooden-slats/","section":"post","tags":["Architecture"],"title":"Wooden Slats"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/animals/","section":"tags","tags":null,"title":"Animals"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/birds/","section":"tags","tags":null,"title":"Birds"},{"body":" In flight Originally uploaded by lhaig\nThis was a lucky shot while I was testing different filters on the 300mm lens\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/08/01/in-flight/","section":"post","tags":["Animals","Birds"],"title":"In flight"},{"body":" New Growth Originally uploaded by lhaig\nA new shoot of a fern I found in a patch of sunlight\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/08/01/new-growth/","section":"post","tags":["Nature"],"title":"New Growth"},{"body":" Light Originally uploaded by lhaig\nI liked the way the sunlight shows all the lines in the leaves\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/08/01/light/","section":"post","tags":["Nature"],"title":"Light"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/foresight-linux/","section":"tags","tags":null,"title":"Foresight Linux"},{"body":"I am about to embark on the epic journey which is Bongo packaging on the OpenSUSE Build Service.\nNow that I have succumbed to this task I wanted to establish a few things.\nIn the Build service there are many many distributions available for build. Most of the distributions are very old.\nThis leaves me with a choice as to were to focus my efforts, as most of you know I have been creating the Bongo images on the rPath rbuild system so my knowledge of RPM and Deb packaging is quite limited.\nI am not sure which OS's are used by our users and so I came up with the idea to have a poll on my blog here\nhttps://haigmail.com/\nThe idea is this. The more votes an OS gets the higher up the priority list it will climb.\nSo that it gives you people a chance to tell me which OS's to focus on.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/07/19/packaging-adventure/","section":"post","tags":["General","Bongo","rPath","Foresight Linux"],"title":"Packaging Adventure"},{"body":"For quite some time now we have been using the rPath rBuilder system to create images for the project. I have also used it for a few other projects.\nThings have been going quite well until someone at rPath decided that they needed to reinvent their web interface.\nNow I don't mind change and innovation as long as the changes are well thought through and well tested.\nI have experienced some major issues with the new UI and it has overwritten my group recipe on more than one occasion.\nI am sure I will edit this post a bit more once I have thought about it a bit more.\nWe are going to decide how we are going to achieve this in the near future and I will post here what the result is.\nThanks\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/07/13/the-bongo-images-will-no-longer-be-built-on-the-rpath-environment/","section":"post","tags":["General","Bongo","rPath","Foresight Linux"],"title":"The Bongo Images will no longer be built on the rPath environment"},{"body":"The new Bongo package has been compiled, packaged and promoted so it should now be available to those running the images.\nThis version has a number of fixes that were highlighted by the change to the cmake compiler.\nThanks to the hard work of Alex and Patrick we are now in a position to say the the mail store is now stable. I can't wait for the changes that we will now be implementing on the web front.\nThe images can be found here\nEnjoy\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/07/13/bongo-052-package-released-on-rpath/","section":"post","tags":["General","Bongo","rPath","vMware"],"title":"Bongo 0.5.2 Package Released on rPath"},{"body":"I too have been watching the Mono debate with some interest as I am in the process of creating a Mono API for the Bongo Store.\nThis interests me as I do not want to spend time working on something that will stop any distribution from running such a great app like Bongo.\nWhat worries me more is the character assassination and blatant lie telling that has been going on to in some way justify what is being said by the Mono haters. I wholly agree with Alex's take on the subject you can find here. I think that this will have an affect on the community but I am not sure what affect it will be.\nI hope this is sorted out soon and that the lines get drawn and clarity starts coming to the situation.\nI wish the Mono project the best of luck for the future.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/07/13/mono-goings-on/","section":"post","tags":["General","Bongo","rPath","Programming"],"title":"Mono Goings On"},{"body":"Bongo Images and the 0.5 release I have been working on the images for the 0.5 release of Bongo and I have now completed them.\nThey can be found here http://www.rpath.org/rbuilder/project/bongo/latestRelease\nThere is a change however in how we will be implementing the images from now on.\nI have decided that to make it easier on you guys and also to limit the number of hours I have to work on them I will create a version 1.0 of the images which I will not change for the foreseeable future.\nWhat will now happen is that we will just update the packages that apply to Bongo and release them for consumption.\nI have also decided that I will start using the built in features of the rPath rbuilder system to start developing changes or updates to the bongo packages in the -devel branch and then when I am happy that they are ready for general consumption I will promote them to -qa which is an image I will be running permanently I will make this image available to anyone who would want to help test the bleeding edge stuff from Bongo.\nOnce the -qa has been completed I will promote to the release branch which will be bongo.rpath.org@rpl:bongo-1.0.\nThis will automatically make the changes available to you guys and so we will become a rolling update project. So you will never have to re-install your server again unless you have to upgrade your hardware.\nI hope you find it easier to use. We are now well on our way to making Bongo a great mail server.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/06/15/bongo-images-and-the-05-release/","section":"post","tags":["General","Bongo","rPath","Foresight Linux","VMware"],"title":"Bongo Images and the 0.5 release"},{"body":"I have been able to rework the Bongo images to make them work.\nI would appreciate any testing that could be done as I do not have all the vm technologies to test.\nSo I hope you have fun .\nHere is a link to the downloads\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/06/10/bongo-images-for-040-have-been-fixed/","section":"post","tags":["General","Bongo","rPath","vMware"],"title":"Bongo Images for 0.4.0 have been fixed"},{"body":"Due to a server error where the images get built an error has crept in that make the images useless.\nThis error has been prevalent for some time and so it has caused the images to break.\nI have therefore pulled the images and will try to fix the problem as soon as I can.\nI will post again when things get better\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/06/03/bongo-images-for-040-broken/","section":"post","tags":["General","Bongo","rPath","vMware"],"title":"Bongo Images for 0.4.0 Broken"},{"body":" Eiffel Tower Originally uploaded by lhaig\nThis is a photo I took in Paris.\nI only wish I had had a 300 mm lens it would have been much nicer\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/05/13/eiffel-tower/","section":"post","tags":["Architecture"],"title":"Eiffel Tower"},{"body":" Cara's Feet Cara is so cute\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/05/13/caras-fee/","section":"post","tags":["HumanStudy"],"title":"Cara’s Feet"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/humanstudy/","section":"tags","tags":null,"title":"HumanStudy"},{"body":"Quite some time ago I blogged about my efforts to create a mono API for the bongo store protocol, I have unfortunately been quite busy with my personal life and also at work so this has been neglected.\nI have again been working on this and at the moment I am stuck trying to get the COLLECTIONS command to work.\nAlex sent me his php API code that he was working on to help me out but unfortunately I am just not experienced enough to work this one out. I really want to get this working as I think it will be a great boost to the project as it will open the project to other coders and perhaps we could see some interesting work.\nTo help move this forward I have booked myself a course with Learning tree on how to code wit c# for beginners. I have also taken their 3 course special so I can book myself 2 more coding courses if I actually start to understand better. If anyone is interested in helping me out with this I am open.\nI am excited with what is happening in the project at the moment we are almost ready to release again after some testing.\nI would like to say thank you to Steve-O (his Nick on IRC I don't know his full name) he has been a great help testing the new release of Bongo and helping find some yet undiscovered bugs. Thanks Steve.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/05/10/update-on-the-bongo-api/","section":"post","tags":["General","Bongo","Programming"],"title":"Update on the Bongo API"},{"body":"Bongo 0.4 Development Images.\nAs promised I have published the Bongo 0.4 development images. To the rPath site.\nThis release will be quite a big step as we are upgrading the images to the rPath Linux 2 version.\nThese are the development branch of the 0.4 bongo source I have included Spamassassin and clamav in this build so these option should now work in bongo as well.\nCould you please test them and let me know if there are any issues. So we can fix them.\nI know that this is a bit late but I want to be prepared for the release of 0.5 which should be soon.\nWARNING!!!!!!!!\nThis release does not have a working Webfront end so if you use this upgrade at your peril.\nPlease backup your data before doing this upgrade.\nAs was pointed out to me I had not added the link to the downloads. HERE IS THE LINK\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/03/04/bongo-04-development-images/","section":"post","tags":["General","Bongo","rPath","Foresight Linux"],"title":"Bongo 0.4 Development Images"},{"body":"For some time now I have been asked why I have not released the Bongo 0.4.0 packages to the Bongo rPath repo.\nThe reason I have given is that the webUI bits for Bongo have been broken in Bongo after some major work was done on the store area of the project. The other agents we have e.g. SMTP, IMAP, POP, ANTISPAM and ANTIVIRUS are all still performing very well and I use the code on a server at home running about 4 domains.\nThis work has improved the performance of the store and also fixed quite a few niggles that had crept in while we were removing old Novell code. We were going to focus on the web UI once we had a stable 0.4.0 version of the store. Things have developed quite a bit further and we are now close to a 0.5 release. This does not mean that we are going to have a working webUI for this release as the work that has gone on for the webUI will need revisiting. We have had discussions about what we want to do with the webUI and perhaps where we want to take it. It is not quite as simple as one would think.\nThe reason I am rambling on about this is that I want to now work towards releasing a version of the Bongo appliances that does not have a webUI installed. This WILL break any 0.3 install of Bongo so when I do release it. It will be on your head if you lose your webUI.\nSo my next few weeks will be aimed at getting 0.4 ready for roll-out.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/02/22/work-on-the-bongo-04-appliances/","section":"post","tags":["General","Bongo","rPath","Foresight Linux"],"title":"Work on the Bongo 0.4 appliances"},{"body":"Monsoon 0.20 packaged.\nI have eventually packaged the new version of monsoon for Foresight Linux. My apologies to Alan for taking so long. Life has a habit of taking over sometimes.\nWell I have added the new meta tags that zodman's new packagekit needs so it should have a short description about it.\nPlease test this version for me as I would love for it to become Foresight Linux's default torrent client.\nThanks again to all the guys on the Foresight irc channel for the help when I get stuck while I build packages.\nHave fun using a great tool.\nAs Zodman has pointed out I should add the command to install the package\nso to install for testing please use - - -\nsudo conary update monsoon=foresight.rpath.org@fl:2-devel\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/02/22/monsoon-020-packaged/","section":"post","tags":["General","Bongo","rPath","Foresight Linux"],"title":"Monsoon 0.20 Packaged"},{"body":" Image Originally uploaded by lhaig\nMy attempt at being artistic. I was walking outside after the snow this February and found this bush.\nI think it make for quite a nice picture\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/02/21/berries-in-the-snow/","section":"post","tags":["Nature"],"title":"Berries in the snow"},{"body":"Bongo Mono API\nFor quite some time now I have been trying to learn a programming language to try to get my ideas for applications built.\nAs part of the learning curve I have started trying to use MonoDevelop and mono to create an app that will allow you to browse the Bongo store.\nOne of the developers on the Bongo Project (so_solid_moo) was kind enough to start me off with a basic small app he quickly created to test his dev stuff.\nAfter some initial hacking on the app we agreed that an API for mono to be able to communicate with Bongo would be very cool. So I started work on that.\nI have so far been able to get the API to connect to and allow login to the store. I have also been able to get the API to select which user store to use. I am now working on the collections command that will allow me to list the collections in the selected store. This is proving difficult for me to do as I have no programming experience.\nI will try now to get this working and so eventually all the commands for the store.\nI hope my learning experience will benefit the project and also myself.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/02/13/bongo-mono-api/","section":"post","tags":["General","Developing","Tweets"],"title":"Bongo Mono API"},{"body":"I have been working on getting the svn build of Bongo into the rPath repo for users to try.\nI have now completed that and the newest build of bongo is available in the 0.40-devel repository.\nPlease be aware that this version has only been tested on rPath 2 and so cannot be used on rPath 1 systems.\nPlease also remember that the webmail UI and admin side of things is currently broken so if you are not comfy running command line tools with Bongo please don’t upgrade.\nLet me know if you find any problems\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/02/08/newest-svn-build-in-the-bongo-rpath-repo/","section":"post","tags":["General","Bongo","rPath"],"title":"Bongo Appliance Users – new Bongo Experimental Packages in the rPath repo"},{"body":"Well,\nI remember I said to myself this year I will get the svn build for Bongo into the bongo repo on rPath. It has taken a awhile but I now have the 0.4 svn version available in the repository. I will also be creating a few VM's of the experimental new rPath 2 version of the Bongo appliance.\nWARNING!!!!!!\nThe Web UI is no longer working so if you use that do NOT update to this version.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2009/01/28/bongo-experimental-packages-in-rpath-repo/","section":"post","tags":["General","Bongo","rPath"],"title":"Bongo Experimental Packages In rPath Repo"},{"body":"I have been working on the product definitions for Foresight Linux repositories which will help the different versions have a common set of details.\nI will try to blog as much as possible about this so that everyone knows where I am at.\nI am currently setting up a test definition on my playground repo so that I can test my changes and clarify with everyone that they are what is needed.\nI will be using the gnome-media group from the Foresight Linux repository to create the tests against. I have hit a small issue cloning the group into my repository but I hope to fix this asap.\nI will post again when I have finished the group clone\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/12/15/foresight-linux-product-definitions/","section":"post","tags":["General","rPath","Foresight Linux"],"title":"Foresight Linux Product Definitions"},{"body":"On Friday and Saturday I was lucky enough to have gone to Linux Live in Olympia London UK and work the stand with Alex. As Alex has blogged the show was very quiet and it seems the .org village was an afterthought to the organisers.\nAs Alex said in his blog http://www.alexhudson.com I think that there was not enough advertising and the show we were paired with was the wrong one as the two user groups had completely different interests and priorities. I saw many a creative user swagger confidently into the area and you can see how his facial expression changes from complete confidence to utter fear step by step as he walks further. When he can’t take it anymore a swift about turn on the heel and almost sprinting he leaves and sighs a huge sigh of relief when he finds himself amongst the apple logos.\nThis scenario was played out over and over again for the two days I was there. Many of the other OSS people I spoke to were also under the impression that this would be their last excursion into London. This is a great shame as I think LinuxWorld and LinuxLive could have been a great way to bring the communities together.\nNow that my rant is over I would like to mention the positive things that I and I think Bongo took from this expo.\nI learned that I am actually not petrified of people and talking to them, I actually started enjoying the challenge of finding the expertise level for a interested party and then tailoring the pitch to their level, but when they started talking arrays and memory management etc… I just passed them on to Alex.\nNot having a working Web interface was a big stumbling block in the demo stakes as many people were keen to see what it looked like and you can only do so much with the admin interface. J\nI learned about the freebie hunter and their mating habits.\nBongo made some great contacts regarding potential collaboration with some big projects out their.\nI learned about how great a database postgresql is (it helped that their stand was next to ours)\nI also found the angels pleasant to watch as their small hands worked the kinks out of the shoulders of many a client (I still wish I had gathered the courage to book myself a session)\nAs this was my first outing as an exhibitor I believe I will have much more fun now I know how the other side feels when I go to more of them.\nI think the biggest benefit was that Alex and I had many hours in the day to chat about Bongo and just plain shoot ideas at each other (the be honest it was more Alex shooting ideas and me looking stunned or lost), which is invaluable to a project like ours where brainstorming is a key player in what we do.\nAll in All I was impressed and disappointed at the same time. We need marketing material to hand out we need business cards and we need to have a working solution that we can show people.\nAndy it might be time that we resurrect the Bugle again.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/10/26/linux-live/","section":"post","tags":["General","Bongo","Linux"],"title":"Linux Live"},{"body":"This evening Stu Gott dropped a bombshell on me, not literally but it had a similar impact. The people at rPath have run a report on our little project and I was shocked to say the least when I found out that the Bongo appliance has been downloaded 0ver 7000 times. I seem to remember thinking this is a nice small project for me to help the Bongo-Project with, it will never take off as much as the packages that Andrew and the others are creating but will allow me to do my part.\nWell to say the least I was skeptical as you can guess but then he pasted these stats for me to look at.\n1+------------------+ 2| ReportforProject | 3+------------------+ 4| Bongo | 5+------------------+ 6+------------------+-------------------+ 7| Downloads | ImageType | 8+------------------+-------------------+ 9| 2917 | INSTALLABLE_ISO | 10| 4 | LIVE_ISO | 11| 1002 | MICROSOFT_VHD | 12| 1 | RAW\\_HD\\_IMAGE | 13| 1090 | VMWARE_ESX | 14| 1891 | VMWARE_PLAYER | 15| 1040 | XEN_IMAGE | 16| 1 | XEN_OVA | 17| 7946 | NULL | 18+------------------+-------------------+ 19+------------------+-------------------+ 20| Downloads | Month | Year | 21+-----------+-------+------+ 22| 15 | 08 | 2007 | 23| 4 | 09 | 2007 | 24| 40 | 10 | 2007 | 25| 384 | 01 | 2008 | 26| 821 | 02 | 2008 | 27| 732 | 03 | 2008 | 28| 1048 | 04 | 2008 | 29| 1249 | 05 | 2008 | 30| 938 | 06 | 2008 | 31| 961 | 07 | 2008 | 32| 812 | 08 | 2008 | 33| 634 | 09 | 2008 | 34| 308 | 10 | 2008 | 35+-----------+-------+------+ I had to add up the totals myself as I could not believe it was that much. But true to form the total was 7000 which is a great achievement.\nI cannot continue on without mentioning the people who keep this project going I am not going to mention names as I my memory is so bad that I would forget someone. THANKS ALL!!!!!!!\nI feel like I have won and Oscar or something like that.\nThis has not been a chore to do as I have been learning as we have gone along and without Stu Gott's help I am sure I would still be pulling my hair out. What shocks me more is that people are downloading us even though we say that it is not quite ready for use yet.\nI am sure we will break all types of records when we release version 1.0 and it is something I look forward to. There is still many hours of programming and packaging ahead of us and we will continue doing what we do best looking after our baby as it were.\nI almost forgot to add that I want to that all the people who have downloaded The Bongo appliance and also the other packages for being interested and also for trying us out. We are getting better and better.\nI have run out of words to say\nThanks\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/10/15/over-7000-downloads/","section":"post","tags":["General","Bongo","rPath","VMware"],"title":"Over 7000 Downloads"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/categories/home-lab/","section":"categories","tags":null,"title":"Home Lab"},{"body":"I have been running the release version of VMware Server 2 and I must say I am impressed. the only problems I had were with existing VM's and upgrading the tools on them. And also VM's that have open-vm-tools installed.\nAfter updating the tools the systems all have been functioning just fine over the last few weeks and the host system has been under less load with more vm's installed.\nI might create a post on how I did it , but work is taking a load of my time and so that will have to be later.\nI did try the new ESXi server but my hardware is not supported and I don't have the cash to buy new stuff.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/10/13/vmware-server-2/","section":"post","tags":["General","Developing","Foresight Linux","Personal Thoughts","VMware"],"title":"Vmware Server 2"},{"body":"Ever since vmware made ESXi a free download I have wanted to install and run it at home so I can P to V my systems at home. And save money on electricity. And before you ask I have looked at the Xen and Virtualbox and Kvm solutions but have found them not quite ready fro my prime time.\nI had been running vmware server in the past with reasonable success.\nI downloaded an iso of the ESXi installer and dutifully copied all my VM’s to an external disk. When I tried to install esx it complained about not finding a device to install the image on-to.\nI initially thought it was the SATA problem so installed an IDE drive to see if that would help but it did not.\nI even tried a full ESX3.5 install CD but that also did not work.\nSo I downloaded Opensuse 11 mini and installed that and vmware server 2 which is actually quite decent and the new web based management is actually quite usable.\nI will continue my quest however. But it looks like I will have to get some new hardware. The prerequisites for this is that it must be quiet as the machine stands in out lounge next to the TV and the missus does not want to hear it. I also need 64bit support as I do some dev work for foresight and need that for packaging.\nWe will see how it goes.\nThe links below are the ones I currently have looked at. And will add more to the post as I find them or they are suggested.\nhttp://vinf.net/2008/01/14/vmware-esx-v35-on-cheap-pc-hardware/\nhttp://www.theinquisitivegeek.com/2006/11/esx-on-whitebox-as-many-of-you-know-i.html\nhttp://www.techhead.co.uk/building-a-low-cost-cheap-vmware-esx-test-server\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/10/02/looking-to-virtualise-at-home/","section":"post","tags":["General","Foresight Linux","Personal Thoughts","VMware"],"title":"Looking to virtualise at home"},{"body":"Well I knew it would happen and it eventually did.\nI was going to work this morning and I had to swerve for a black porsche and my bike dropped.\nI landed on my right hand side and slid down the road. I have a few bruises and bumps and will be seeing the doctor tomorrow morning. The bike is in the shop at the moment I will find out what the damage is later.\nI am just grateful I am alive and nothing is broken.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/10/01/came-off-my-bike-today/","section":"post","tags":["Foresight Linux","Personal Thoughts","The Snake and I"],"title":"Came off my bike today"},{"body":"I have been scarce lately as I have been working down in Plymouth on a short contract for a Art school.\nit was fun and I did more that I anticipated doing which is good.\nHopefully I will be able to get back to my Opensource stuff soon.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/08/22/posting-silence/","section":"post","tags":["Personal Thoughts"],"title":"Posting Silence"},{"body":"Well it has been a while since the Bongo team has released a version and there is good reason for this.\nOver the last few months since the release of 0.3.0 the developers have been rewriting a large proportion of the store code. Alex realised that the old one was not as efficient as it could be when there were large volumes of mail stored in the system. This actually started when it was discovered that when using IMAP and connecting to your mail account if you tried to move large volumes of mail around it would error out or worse. The store is now almost done and the branch and trunk should be merged soon.\nThe other Alex has been beavering away at a new web front end for Bongo. After we had tried to fix what was broken in the old one we decided that the best way forward was to completely rewrite the whole thing. Now I don’t profess to know a whole lot about the subject but I know that it will be much easier to manage and work with which will make it easier for other people to contribute to the project.\nI have probably summarised this far to much but I thought it best to let people know what we are doing.\nAs far as the Bongo appliance goes Stu and I have been working on a new incarnation of the appliance based on rPath Linux 2. This new version will allow us to utilise the newest version of rPath for the creation of the appliance. I have been working on other projects that have allowed me to gain valuable experience in the rPath packaging method and this will make it easier for me to administer and add features to the appliance.\nAndy has been working on getting the Opensuse Builder to build a larger number of packages for different distributions and he has also packaged an experimental version of Bongo from svn. I hope to have that done soon for the appliance as well.\nLin has been busy beavering away at fixing and adding documentation to the wiki and I would like to say THANK YOU to him for all the work he has put in.\nI hope I have not missed anything and if I have please let me know so I can add it to this post.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/06/26/busy-bees/","section":"post","tags":["General","Developing","Bongo","rPath"],"title":"Busy Bees"},{"body":"Well the heading says it all.\nOn my way in to work today I was almost flattened in by a granny in a BMW X5 and another one in a Jaguar XJ something(I did not see as I was trying to save my life). Both of the lady’s just changed lanes without even looking in their mirrors. The one could not even see her mirrors as they were folded away presumably to protect them when the car is parked. needless to say my heart was given a jolt each time.\nDuring my travel into work I regularly comment on the fact that many people mostly young ones are smoking weed while driving in to work themselves. This of course is very dangerous not only for the people driving under the influence but also for other road users.\nToday was no exception driving in I noticed the unmistakable smell wafting up from the cars in front as I came closer I noticed that the small micra or some such souped up minicar was so full of smoke I am sure the driver and passengers could not see out.\nI wonder what it will take to make these people realise what they are doing to themselves and also what they could potentially do to others. The only way things are noticed in the current society is if some innocent child is gruesomely dispatched from this world and all the graphic details are spread about in the news.\nI hope that such an occurrence is not needed for this.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/06/26/killer-grannys-and-doped-up-teenagers/","section":"post","tags":["The Snake and I"],"title":"Killer Grannys and Doped up Teenagers"},{"body":"Mypaint has now been added to FL:2-devel.\nfrom their website\nMyPaint is a fast and easy painting application. It lets you focus on the art instead of the program.\nIt comes with a large brush collection including charcoal and ink to emulate natural painting. Other features are:\nsupport for pressure sensitive graphic tablets unlimited canvas (you never have to resize) undo fast no layers (work in progress) using pygtk with C extensions If you want to look deeper, MyPaint is built around a highly configurable brush engine. This allows you to experiment with your own brushes and with not-quite-natural painting.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/06/19/mypaint-added/","section":"post","tags":["General","rPath","Foresight Linux"],"title":"Mypaint added"},{"body":"Monsoon 0.15 has been committed to FL:2-devel. This is a bugfix version.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/06/19/monsoon-updated/","section":"post","tags":["General","rPath","Foresight Linux"],"title":"Monsoon updated"},{"body":"LIbvirt has been updated to 4.3 in the fl:2-devel.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/06/19/libvirt-updated/","section":"post","tags":["General","rPath","Foresight Linux"],"title":"LibVirt updated"},{"body":"I am investigating video config (x config) for Foresight linux as the current config tool is a bit hit and miss.\nI have been investigation who does what and how but it seems quite difficult to get any information about this stuff from the different distributions and also what works and what does not.\nI would appreciate any comments on the above.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/06/13/new-video-config-tool-for-foresight-linux/","section":"post","tags":["General","rPath","Foresight Linux"],"title":"New video config tool for Foresight Linux"},{"body":"Seems that scooter drivers have a death wish, or at least some do.\nOver the last week I have noticed that the scooter drivers on my commute in and out of London seem to want to kill themselves. I have never seen anyone take risks like these guys do not even racing drivers. I would be very worried if an 18 wheel truck was driving down on me and I jumped through a gap betwen it and a dump truck.\nPerhaps I am just getting old.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/06/13/strange-travel-day/","section":"post","tags":["The Snake and I"],"title":"Strange travel day"},{"body":"After some head scratching and help from doniphon we now have a working virt-manager, virt-viewer, virtinst and libvirtd on Foresight Linux 2-qa so hopefully soon it will be released into the main repo sometime soon.\nPlease create issues on https://issues.foresightlinux.org for any problems\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/06/05/virt-manager-054-for-foresight-linux/","section":"post","tags":["General","rPath","Foresight Linux"],"title":"virt-manager 0.5.4 for Foresight Linux"},{"body":"I have packaged Monsoon for foresight 2, it has been passed though qa and is now in the main repo.\nI am glad that it has worked so easily\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/05/28/monsoon-on-foresight-linux/","section":"post","tags":["General","rPath","Foresight Linux"],"title":"Monsoon on Foresight Linux"},{"body":"Well I was sure there was something wrong this morning as I did not have any close calls or people trying to kill me on the road today.\nThanks is always good\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/05/21/uneventful-trip/","section":"post","tags":["The Snake and I"],"title":"Uneventful Trip"},{"body":"I have eventually been able to get a 64bit laptop.\nWhich means I will be able to package for Foresight Linux, rPath and the Bongo Project again.\nI feel I have been neglecting all my projects somewhat, hopefully when it arrives I will be able to package some great apps.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/05/20/new-laptop/","section":"post","tags":["General","Bongo","rPath","Foresight Linux"],"title":"New Laptop"},{"body":"If any of the Metropolitan police officers would like to increase their arrest numbers for the month why don't you drive in to London on the M1 at rush our. Your nose will lead you to a number of smokey cars and DUI's.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/05/20/drug-busting/","section":"post","tags":["The Snake and I"],"title":"Drug Busting"},{"body":"We have now created a forum for the LiveCd so you can use that the IRC channel or the bongo-users mailing list for getting help with it.\nThe Forum can be found here http://forum.bongo-project.org\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/05/19/new-bongo-live-cd-forum/","section":"post","tags":["General","Bongo","rPath"],"title":"New Bongo Live CD forum"},{"body":"I have finished the Live CD wiki page and I thought I would put it out there for you guys to have a look at and comment on.\nYou can find a direct link here\nhttp://www.bongo-project.org/Live_CD\nI have added images and some help text. This page is aimed at a person who just wants to look at what we are doing without actually installing the software.\nI would welcome any comments or ideas on the page so please let me know I have also started on the other pages that can be found here\nhttp://www.bongo-project.org/TryBongo\nThese pages are going to be there as part of the Bongo Help environment or at least that is where I see them fitting in. Comments and help on those would be welcomed too.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/05/17/live-cd-wiki-page/","section":"post","tags":["General","Bongo","rPath"],"title":"Live CD Wiki Page"},{"body":"This will be my platform to talk about my daily commute in to work on my Honda Transalp 650.\nSo expect some rants and some funny stories as things go.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/04/02/the-snake-and-i/","section":"post","tags":["The Snake and I"],"title":"The Snake and I"},{"body":"You all know I have been a very pessimistic South African for a very long time and well I had my reasons for being like that.\nThis morning I received a e-mail from someone I know who sent me a link to this site.\nhttp://www.sagoodnews.co.za\nAnd also 2 links to some stories on the site\nhttp://www.sagoodnews.co.za/your_good_news/the_headmasters_speech.html\n[http://www.sagoodnews.co.za/your_good_news/money_or_the_box_.html](http://www.sagoodnews.co.za/your_good_news/\nI have read these and some other stories on this site and I feel differently about the way things are in South Africa and how the people are starting to take back their land from the Crooks and corrupt politicians.\nThis does not mean that I am going to jump on the next plane to Cape Town with my family as there are still some concerns I have about what is going to happen in the next 2 years with regards to the court cases that are due soon and the outcome from that.\nWhat it has done is planted a seed in my brain that things might get better as long as the politicians do what is right for the country and not just right for themselves.\nI will be posting this on my blog\nhttps://haigmail.com\nif you want to point people to the stories.\nThanks for reading this my friends and I hope you don't mind me sending it.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/04/02/positive-thoughts/","section":"post","tags":["Personal Thoughts"],"title":"Positive Thoughts"},{"body":"Well I have been able to get vmware running on Foresight 2 it was a bit of a mission as since Vmware have opensourced their vmware tools the foresight developers have built the tools into the kernel by default. The problem is that when you try to install vmware workstation or vmware player they would complain about the modules already installed and fail.\nAfter manually deleting these module files I was able to install and run vmware on the workstation.\nAll was not lost though while I was trying to get this to work. I was able to build and run a QEMU (kvm) machine and run that so I could work and keep running. As one of my friends said they need to get virt-manager built and running on Foresight so that the machines can have bridged networking.\nSo this is a start at least.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/20/vmware-workstation-on-foresight-2/","section":"post","tags":["General","Bongo","rPath","Foresight Linux"],"title":"Vmware Workstation on Foresight 2"},{"body":"So I migrated my desktop to Foresight Linux v 2\nIt has been a bit of a bumpy ride mainly due to me being a newbie and the fact that FL:2 is still very new to market.\nI will see how things go and keep you updated.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/19/so-i-migrated-my-desktop/","section":"post","tags":["General","Developing","rPath","Foresight Linux"],"title":"So I migrated my Desktop"},{"body":"The much awaited release of Bongo M3 has arrived. Bongo Appliance Virtual Machines and install ISO's can be downloaded from the RBuilder Website\nIf you already have an appliance running all you have to do is run your system updates through the web interface on your appliance\nhttps://applianceIPorName:8003 then restart the appliance\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/13/bongo-appliance-030-release/","section":"post","tags":["General","Bongo","rPath"],"title":"Bongo Appliance 0.3.0 Release"},{"body":"The new release of the Bongo Appliance Virtual Machines and install ISO's can be downloaded from the RBuilder Website\nIf you already have an appliance running all you have to do is run your system updates through the web interface on your appliance https://applianceIPorName:8003 then restart the appliance\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/13/bongo-appliance-0294-release/","section":"post","tags":["General","Bongo","rPath"],"title":"Bongo Appliance 0.2.94 Release"},{"body":"Well in keeping with Alex\u0026amp;#8217;s resolution to release more this year, a new version 0.2.94 has been released. To make things more clear as to the process that is taken to produce a new release for the appliance I thought I would set out a typical process.\nNew version of Bongo is released A frenzy of packaging takes place Sorting out any requirements that the new release bring with it Building and commiting the release to the rbuilder repository Building a test iso or vm to see if everything still works the main group is then built and promoted to the release repository The different appliance builds are started once all the builds are complete a release is created and published So as you can see it is quite involved but it is rewarding to see tat just after you release people start downloading the files.\nI hope this makes sense\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/13/bongo-appliance-release/","section":"post","tags":["General","Bongo","rPath"],"title":"Bongo Appliance Release"},{"body":"**Well I have been so quiet lately that you probably thought I was missing.**I was in a way but I am now back.\nIn my absence the rpath appliance development has leaped forward in huge amounts.Thanks to Stu Gott who is far more familiar with rPath than I am we have\nour first development release of Bongo on the RPath platform. This new\nrelease can be found here\nhttp://www.rpath.org/rbuilder/project/bongo/latestRelease\nTo install from a CD created from an ISO use this link\nhttp://www.rpath.org/rbuilder/downloadImage?fileId=21395\nBe careful as this install is a new operating system on the machine you\ninsert this cd into. Only use this cd if you intend to use this machine\nonly for a Bongo server. It will remove any data that is currently on\nthe machine.\nFor a Xen raw file system image appliance use this link\nhttp://www.rpath.org/rbuilder/downloadImage?fileId=21401\nYou will need Xen installed to use this disk image\nFor a VMware player image use this link\nhttp://www.rpath.org/rbuilder/downloadImage?fileId=21402\nRoot's password is blank for the images so remember to change it if you are going to use this live on the net.\nWhen the appliance starts up you will see that a URL is shown for the administration of the appliance. The address should look like this\n1https://\u0026lt;IP Address of Server\u0026gt;:8003 The default username is admin and the password is password.\nClick OK and follow the instructions to change the password and to complete the other steps. During this setup you will have the opportunity to set the hostname and domain name this is a good time to set these as they are critical to the bongo server setup.\nAs part of the initial appliance login you also get to set the ipaddress and primary domain that will be hosted by the bongo appliance.\nWhen this is complete you will have a working bongo install.\nPlease test this as soon as possible so that we can iron out problems and work on your suggestions to make it better.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/13/rpath-appliance-development-release-for-version-0290/","section":"post","tags":["General","Bongo","rPath"],"title":"rPath Appliance development release for Version 0.2.90"},{"body":"Well this must be a sign. With the large portion of help that Stu Gott has given, we have been able to get the appliance ready for some serious testing. This means that rpath Marketing have put the Bongo appliance on the appliance spotlight section of the rPath Rbuilder website.\nWhat this means is that when you connect to the rbuilder website http://www.rpath.com/rbuilder you will see a familiar graphic with the Bongo logo. When this is clicked on it will take you directly to the Bongo project page and give you the option of downloading the appliance.\nThis also means that when rPath send out their e-mail newsletter we will be featured on this as well. All this publicity will definitely increase Bongo's visibility within the rPath community.\nI can only thank the Bongo team and specifically Stu for getting us this far.\nHow long it takes to display on their website I do not know as these things take time. I hope that we gain many more Bongoers from this extra exposure we have been given.\nThanks guys\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/13/bongo-appliance-hits-the-big-time/","section":"post","tags":["General","Bongo","rPath"],"title":"Bongo Appliance hits the big time"},{"body":"I have recently been preparing to migrate my accounts running on other mail systems to Bongo as soon as we have Bongo 1.\nThe movement of mail from any system to Bongo was my biggest worry as my account alone had 3700+ emails in 350+ folders.\nI decided after a lengthy web search to use IMAP to migrate the mail.\nI will detail the steps I used here so others can expand and use them.\nI wanted something I could set-up and run from a script but also it should be able to migrate accounts with multiple folders. After searching myself silly on the net I found imapsync (http://www.linux-france.org/prj/imapsync/dist/)\nIt was an easy to use solution.\nYou need to make sure that perl module IMAPClient.pm is installed as it is needed\nI used the following command to synchronise just my account\n1imapsync host1 imap.domian.com user1 FirstUser passfile1 /etc/secret1 host2 imap.destdomain.com user2 max passfile2 /etc/secret2 noauthmd5 This took about 40minutes on my work link and about 1.5 hours on my poor ADSL link at home.\nimapsync moved all my mail and created all the folders. The nice thing is that you could set this up before and the regularly sync the accounts until you are ready to move your domain to the new server.\nThe imapsync documentation is a bit vague but if you run ./imapsync from the directory that you extracted the files to it will give you explanations that are easier to understand. imapsync has more features than what I used and I am sure that when we start migrating in anger we will use more of them.\nI hope this is informative\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/13/migrating-accounts-to-bongo/","section":"post","tags":["General","Developing","Bongo"],"title":"Migrating Accounts to Bongo"},{"body":"Ok.. So I have not blogged for some time and there is a valid reason for this, actually there are two reasons. The first is that I am a new dad and this comes with quite a few challenges and tasks which has taken me away from doing my Bongo stuff.\nThe second is that I have not had anything to report on. I have been trying to get Bongo to compile on the rpath distribution and this has been a challenge not only for me but for Alex and the other developers. rPath has some quirks that make it a challenge to get Bongo working.\nI have however been able to get it running and working so now I am working on finishing the package and then uploading it. Once that is done I need to prepare a group recipe and create the VM's and install CD's we want.\nI will try to get these things done as soon as possible so that we can be ready for M3.\nSo that is the update\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/13/rpath-packaging-joy/","section":"post","tags":["General","Bongo","rPath"],"title":"rPath packaging joy"},{"body":"","link":"https://fc4c6dbc.haigmail.pages.dev/tags/certifications/","section":"tags","tags":null,"title":"Certifications"},{"body":"Well I have just returned from a long drive to Bristol (2h30 one way).\nI wrote my Prince 2 foundation exam today and passed.\nI was supposed to write it last week thursday but my daughter decided to be born 3 weeks early. (thanks Andy for the blog) Why am I telling you this and what has this to do with bongo? I will now be able to focus on the VM situation again and perhaps get this thing sorted out once and for all. I have put the rpath install on hold for a while until we get to a stable version of Bongo and when we have sorted out all the install issues that exist at the moment.\nI will be focusing my energies(that i have left) on a Fedora Core vm and an debian etch vm, if you want me to setup something else please let me know and I will give it a whirl.\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/13/prince-2-foundation-exam/","section":"post","tags":["Certifications"],"title":"Prince 2 foundation exam"},{"body":"Well I have eventually started down the rpath route.\nThe documentation is very difficult to pick up and I have had a hard time working things out. The #conary irc channel has been a great help to me on my path as it were. I have been able to get bongo to compile on the rpath platform but I am having trouble with the bongo-setup script and slapd.\nI am hoping to get this worked out soon and then run a script during group-build to run the bongo-setup script with all the arguments filled in for a user.\nSo this is how I am filling my time at the moment.\nI am also doing my Prince 2 exams soon so I have less time to devote to this\nrPath will allow us to give people an option when running Bongo\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/13/rpath-path/","section":"post","tags":["General","Bongo","rPath"],"title":"rPath Path"},{"body":"I have fixed the broken VM\nThank you to all those who have downloaded the vm and are seeding it. I must apologize to you as the VM that I sent out was borked. I have successfully rebuilt the vm and it no longer has the version name in the vm name as I thought that once it has been downloaded all the people have to do is update bongo and continue. The updated torrent file can be found here Bongo torrent page on haigmail. I am in the process of building a debian from scratch VM which should enable me to install a vm with the absolute minimum install needed for bongo to run. I have stumbled across a how to and I am busy working through it. Once that is complete I will will add it to the torrent page for you to try out. It should hopefully bring the download size down considerably. Please if you can download the torrent and keep it seeded.\nThank you to http://linuxtracker.org for hosting our tracker on their site\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/13/vmware-heaven/","section":"post","tags":["General","Bongo","rPath"],"title":"VMware heaven"},{"body":"The Bongo-Project Vmware image is now complete\nI have been able to create an image that will allow Bongo to be evaluated and tested.\nI have put the torrent file on my web server the address is http://torrent.haigmail.com As I create new files or downloads I will add them to the list on this server.\nPlease download the file and keep it seeding\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/13/vmware-image-complete/","section":"post","tags":["General","Bongo","rPath"],"title":"Vmware image complete"},{"body":"Back in business\nI have been taking time to study for a certification exam. I have now finished this and can dedicate more time to Bongo. My next two projects are to see how to create the bongo torrent again and also to work on some suggestions made about the BongoDemo Virtual Machine So that is the aim\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/13/back-in-business/","section":"post","tags":["Certifications"],"title":"Back in business"},{"body":"I have now created the Bongo demo virtual machine. I was going to use an rpath installation but that has proved to much for me to take on board at the moment.\nI will look into that at a later date. I have also created a torrent file and website for the Bongo demo server, I just need Alex to approve the site and also someone on the team who knows css to help me brand the page.\nOnce I have been authorised to release the torrent site. I will announce it here\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/13/bongo-demo-vm/","section":"post","tags":["General","Bongo","rPath"],"title":"Bongo Demo VM"},{"body":"I thought I would start by explaining how I came to be using Bongo\nI started using Bongo when it was still called NIMS and was part of the beta test on that one. When it was released I bought a red box version and installed it on a server that I was hosting on my broadband at home. I only had a 5 user license then and created accounts for my family to use the server.\nAs the family usage and numbers increased I bought more licenses. When I was asked if I wanted to be a beta tester on version 3 I jumped at the chance. I then moved on to version 3.5.\nWhen Novell reported that they were making Netmail open source I was elated and could not wait for the system to get to a stable release. Things seemed to stagnate on the hula front and I was worried as there were rumours that Novell were going to drop Netmail completely. I started investigating solutions that I could use to replace my Netmail implementation but found nothing that could do what it did.\nThe Netmail mailing list was very quiet for a long time and I decided to have a look at IRC. Well am I glad I did. I have been lucky to be able to join bongo at the beginning and to help move it on.\nI even tried my hand at bug fixing with the bongo-setup script so that the ssl certificate it created would not complain when you used it with a mail client.\nI am also trying my hand at creating vmware images on different os’s for people to test Bongo on.\nSo hopefully I will be able to contribute to the project as it grows and grows.\nThanks to Alex and the guys for what they are doing\n","link":"https://fc4c6dbc.haigmail.pages.dev/2008/03/13/first-of-many/","section":"post","tags":["General","Bongo"],"title":"First of many"},{"body":"The opinions expressed on this site are my own personal opinions and do not represent my employer’s view in any way. Lance Haig Solution Engineering / Solution Architect Manager Ex-HashiCorp | Ex-Mirantis\nCustomer focused, product-centered Senior global accounts Leader experienced in empowering global organizations to successfully navigate their digital and cloud transformation journeys with secure automation. 20+ years IT experience, leveraging infrastructure automation expertise to orchestrate and streamline IT processes across diverse technologies. Proven track record of success driving year-over-year growth in Annual Recurring Revenue (ARR) and Total Contract Value (TCV).\nSkilled in building and leading global teams from scratch to execute complex projects and deliver innovative solutions. Dedicated to staying abreast of industry trends and emerging technologies to maintain a competitive edge. Adept at building strong relationships with clients and partners to drive mutual success.\nPublications 2022 L'infrastructure as code peut être une solution complète!\nSécurité informatique - Comment faire décoller le zero trust\n2021 Virtual Strategy Day - DACH 1\nVirtual Strategy Day - South Africa 2\nZero Trust: What does it mean and how does it affect me? - Youtube\nModerne IT-Security stärkt die Menschen, nicht deren Fehler\nCloud Gouvernemental français : Zero Trust pour le cloud de confiance\nAbschied von ITIL. Willkommen im Cloud Operating Model 2021 - Multicloud neu gedacht\n2019 Deploying DNS Delegated Subdomains using Terraform Cloud\n2017 Workload Lifecycle Management with Heat - Youtube\nSpecialties: Strategic planning, Stakeholder Relationships, Leadership, Technical expertise, Team management, Problem-solving, Innovation, Mentoring, Cloud Computing, Orchestration, Terraform, Automation, Openstack\nVirtual Strategy Day - DACH Recording (https://www.youtube.com/watch?v=Rfc61ZjMNd8)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nVirtual Strategy Day - South Africa Recording (https://www.youtube.com/watch?v=iYLcyE84utI)\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","link":"https://fc4c6dbc.haigmail.pages.dev/about/","section":"","tags":null,"title":"About"},{"body":"Privacy Policy On this website, we prioritize your privacy and do not track any of your activities on our site. We have deliberately chosen not to implement any analytic or advertising tracking systems. Rest assured that your privacy is respected and protected with us.\nAny embedded content for example YouTube or Vimeo automatically use no cookie domains for the embed action.\nImage Credits All images are credited in the alt text\n","link":"https://fc4c6dbc.haigmail.pages.dev/privacy/","section":"","tags":null,"title":"Privacy"}]