Blog

  • xFunc Tutorial: Building Custom Mathematical Expressions in .NET

    xFunc Tutorial: Building Custom Mathematical Expressions in .NET

    Modern software development often requires applications to evaluate mathematical formulas dynamically. Whether you are building a financial dashboard, a scientific calculator, or a custom reporting engine, hardcoding formulas is rarely an option.

    In the .NET ecosystem, xFunc stands out as a powerful, lightweight, and flexible library specifically designed for parsing and analyzing mathematical expressions. Written in C#, it converts standard string equations into an abstract syntax tree (AST), allowing developers to calculate, simplify, and differentiate expressions on the fly.

    This tutorial provides a practical, step-by-step guide to integrating xFunc into your .NET applications and building custom mathematical expressions. Key Features of xFunc

    Before diving into the code, it is helpful to understand what xFunc brings to the table:

    Robust Parsing: Converts complex string-based mathematical formulas into strongly typed expression trees.

    Extensive Built-in Library: Supports standard arithmetic, trigonometry, logarithms, statistical functions, and bitwise operations.

    Variable Support: Allows users to define custom variables and assign values at runtime.

    Advanced Mathematics: Includes native support for derivatives, simplifications, and complex numbers. Setting Up Your Project

    To get started, create a new .NET Console Application using your favorite IDE or the .NET CLI.

    Next, install the xFunc.Maths NuGet package. Run the following command in your terminal: dotnet add package xFunc.Maths Use code with caution. Step 1: Evaluating Basic Expressions

    The core of the xFunc library revolves around the Processor class. This class acts as the parser and evaluator for your mathematical strings.

    Here is how to evaluate a straightforward arithmetic expression:

    using System; using xFunc.Maths.Expressions; using xFunc.Maths.Analyzers; class Program { static void Main() { // Instantiate the processor var processor = new Processor(); // Define a string expression string expressionString = “2(3 + 5) - sin(0)”; // Parse and solve the expression var expression = processor.Parse(expressionString); var result = processor.Solve(expression); Console.WriteLine(\("Expression: {expressionString}"); Console.WriteLine(\)“Result: {result}”); // Output: Result: 16 } } Use code with caution. Step 2: Working with Custom Variables

    In real-world applications, user inputs are rarely static. You often need to inject dynamic data—like user metrics or market rates—into your formulas. xFunc handles this via an execution context (ExpressionParameters).

    using System; using xFunc.Maths.Expressions; using xFunc.Maths.Analyzers; class Program { static void Main() { var processor = new Processor(); // Define an expression with variables string formula = “basePrice * (1 + taxRate)”; var expression = processor.Parse(formula); // Define parameters and assign runtime values var parameters = new ExpressionParameters { { “basePrice”, 150.00 }, { “taxRate”, 0.152 } }; // Solve the expression using the parameters context var result = processor.Solve(expression, parameters); Console.WriteLine(\("Total Price: {result}"); // Output: Total Price: 172.8 } } </code> Use code with caution. Step 3: Expression Simplification and Differentiation</p> <p>Beyond standard calculation, xFunc excels at algebraic manipulation. You can simplify complex formulas before execution to optimize performance or display a cleaner equation to the user.</p> <p><code>using System; using xFunc.Maths.Expressions; using xFunc.Maths.Analyzers; class Program { static void Main() { var processor = new Processor(); // 1. Simplification Example string unsimplified = "2 * x + 3 * x - 5"; var parsedExpr = processor.Parse(unsimplified); // Simplify the expression tree var simplifiedExpr = processor.Simplify(parsedExpr); Console.WriteLine(\)“Simplified: {simplifiedExpr}”); // Output: 5 * x - 5 // 2. Differentiation Example string calculusExpr = “x ^ 2 + 3 * x”; var parsedCalc = processor.Parse(calculusExpr); // Compute the derivative with respect to x var derivative = processor.Differentiate(parsedCalc); Console.WriteLine($“Derivative: {derivative}”); // Output: 2 * x + 3 } } Use code with caution. Best Practices for Production

    When implementing xFunc in a production environment, keep the following architectural practices in mind:

    Cache Parsed Expressions: Parsing strings into ASTs requires processing overhead. If your application evaluates the same formula repeatedly with different variables, parse the string once and store the resulting IExpression object in memory.

    Sanitize Inputs: While xFunc safely evaluates mathematical logic without executing arbitrary system code, processing excessively large or deeply nested formulas can cause stack overflows. Restrict string inputs to reasonable character limits.

    Handle Parsing Exceptions: Wrap your parsing logic in try-catch blocks. xFunc will throw specific exceptions (such as syntax or lexical errors) if a user provides an unbalanced parenthesis or an invalid operator. Conclusion

    The xFunc library provides .NET developers with a robust toolset for breaking down the barrier between plain text inputs and dynamic mathematical logic. By leveraging its parsing engine, parameter context, and algebraic analyzers, you can easily implement custom formula engines that scale alongside your application’s business requirements.

    If you want to customize this implementation further, let me know:

    Are you dealing with specific data types like matrices or complex numbers?

    I can provide the exact code snippets or architecture patterns you need.

  • content format

    Desired tone refers to the specific attitude, mood, or personality expressed in writing or speech. It dictates how your audience feels when they receive your message. Why Tone Matters

    Shapes perception: It defines how people view your brand, character, or professionalism.

    Prevents misunderstanding: The right tone ensures your intent matches the reader’s interpretation.

    Builds connection: Matching your audience’s expected tone builds instant trust and rapport. Common Types of Tone

    Professional: Objective, respectful, and free of slang. Used for business emails and reports.

    Casual: Conversational, relaxed, and warm. Used for blogs, social media, and texting friends.

    Urgent: Direct, sharp, and time-sensitive. Used for security alerts or final deadlines.

    Empathetic: Compassionate, understanding, and supportive. Used for customer service or condolences.

    Humorous: Witty, lighthearted, and playful. Used to entertain or soften serious topics. How to Establish Tone

    Word choice: Selecting “request” feels formal, while “ask for” feels casual.

    Sentence structure: Short, punchy sentences create urgency. Longer sentences feel deliberate and calm.

    Punctuation: Exclamation points add excitement, while periods keep things serious.

    If you are working on a specific piece of writing, I can help you refine it. Let me know: What are you writing? (an email, a speech, a cover letter?) Who is your audience? (a boss, a customer, a friend?)

    How do you want them to feel? (impressed, reassured, excited?) I can tailor your text to match that exact desired tone.

  • Why GraphicsExplorer is Changing the Digital Art Game

    The phrase “Unlocking Visual Power: Inside the New GraphicsExplorer” points to the modern core visualization framework known as Visual Explorer, which is fundamentally transforming how business intelligence professionals and analysts interact with massive datasets.

    Originally introduced by platform innovators like Mode Analytics, the Visual Explorer concept has expanded into specialized data platforms and business intelligence software. It acts as a fluid, visual sandbox that grants creators and consumers alike the freedom to explore data-heavy environments seamlessly.

    Here is an inside look at how the framework functions, its core features, and its impact on the data analytics landscape: The Engine Under the Hood

    Modern data visualization frameworks often bottleneck inside a web browser due to memory limitations. Visual Explorer solves this by utilizing server-side processing engines (such as Mode’s “Helix” engine).

    Massive Scaling: It can process and display up to 10 gigabytes of data directly inside the interactive interface without lagging or crashing your browser.

    Bypassing Memory Limits: By executing cloud data analytics on the server side, it delivers lightning-fast rendering of complex, multi-layered visual formats. Key Features and Interface Capabilities

    Visual Explorer moves past rigid, pre-built charts, instead enabling a code-less, flexible canvas for data discovery.

    Layered Deep-Dives: Users can map data fields natively into Dimensions and Measures. By using adjustable layers, analysts can add profound depth to a single chart through fine-tuning color, size, text, and detail channels.

    Interactive Facets & Scatter Plots: The interface makes testing complex business hypotheses faster. It lets you rapidly pivot between multi-dimensional data facets, scatter plots, and pivot tables to capture trends that basic line charts miss.

    No-Code Calculations: It provides code-less table calculations. This allows non-technical business users to run on-the-fly math, modify fields, and dynamically filter variables without rewriting backend SQL queries. Why It Is a Game-Changer for BI

    In traditional dashboards, whenever stakeholders have a follow-up question, they must request an entirely new report page from the data team. Visual Explorer shifts this dynamic entirely.

    Self-Service Sandboxes: It empowers end-users to build their own custom views, manipulate data ranges, and change chart types on their own terms.

    Reduced Ad-Hoc Backlog: Because consumers can drill into their own inquiries, the engineering backlog for “just one more visual change” is drastically reduced.

    You can explore further implementation details on Mode’s Official Blog to see how these data exploration mechanics operate in real-time.

    Are you interested in how to set up a visual explorer framework in a specific BI tool like Power BI or ThoughtSpot, or do you want to learn about training resources for building your own custom visualizations? WebGPU: Unlocking modern GPU access in the browser | Blog

    Learn how WebGPU unlocks the power of the GPU for faster machine learning performance and better graphics rendering. Chrome for Developers Unlocking New Visualizations and Features In Power BI

  • target audience

    OutboundNet Viewer Pro is a comprehensive network diagnostics and traffic monitoring software designed for system administrators, IT professionals, and security analysts. As network architectures grow increasingly complex, maintaining visibility over outbound traffic is essential for optimizing performance and securing sensitive data. This enterprise-grade tool provides deep insights into outbound data flows, helping organizations detect anomalies, troubleshoot latency, and enforce compliance policies. Real-Time Traffic Visualization

    The core strength of the platform lies in its live telemetry engine.

    Granular monitoring: Track outbound packets by application, protocol, or destination IP.

    Interactive dashboards: Visualize bandwidth consumption through dynamic, color-coded graphs.

    Trace tracking: Identify exactly which internal processes are initiating external connections. Advanced Security and Threat Detection

    Malicious outbound connections often indicate a compromised system trying to communicate with external malicious servers.

    Heuristic analysis: Flag unusual spikes in data transmission or connections to unrecognized foreign IP addresses.

    Blacklist integration: Cross-reference destination servers against global threat intelligence databases.

    Instant alerts: Notify security teams immediately when unauthorized data exfiltration is suspected. Performance Optimization and Troubleshooting

    Network bottlenecks can severely disrupt business operations.

    Latency mapping: Measure the round-trip time of outbound requests to pinpoint network delays.

    Bandwidth throttling identification: Discover applications that hoard bandwidth and degrade critical services.

    Historical logging: Audit past traffic trends to forecast future infrastructure capacity needs. Seamless Deployment and Enterprise Integration

    Built to fit into existing corporate environments, the software minimizes configuration overhead.

    Lightweight agents: Deploy minimal-footprint software across endpoints without impacting system performance.

    SIEM compatibility: Export comprehensive traffic logs directly to popular Security Information and Event Management platforms.

    Role-based access control: Restrict viewing permissions to ensure only authorized IT personnel can inspect traffic logs.

    OutboundNet Viewer Pro transforms raw network telemetry into actionable intelligence, ensuring corporate networks remain fast, efficient, and secure against modern digital threats.

  • tailor the titles

    “BibTeX Import Made Easy: Organize Your Research Library Fast” refers to the streamlined workflow of using a structured .bib flat-file database to automate, consolidate, and rapidly scale an academic reference library. Instead of manually typing citations, this method leverages automated tools to import batches of research papers into a central repository in seconds. 🚀 The Quick-Start Import Workflow

    You can bypass manual data entry entirely by following these highly efficient methods: How To Use Mendeley (Including Web Importer & Cite)

  • HTML Shrink

    Desired tone refers to the specific attitude, mood, or personality expressed in writing or speech. It dictates how your audience feels when they consume your content. Why Tone Matters

    Shapes perception: It defines how people view your brand or personality. Builds trust: Consistent tone creates reliability.

    Drives action: The right emotional trigger increases engagement.

    Prevents misunderstanding: Clear tone ensures your message is received as intended. Common Types of Tone

    Professional: Formal, objective, and respectful (e.g., corporate reports).

    Casual: Friendly, conversational, and relaxed (e.g., social media).

    Empathetic: Supportive, understanding, and kind (e.g., customer service).

    Urgent: Direct, bold, and time-sensitive (e.g., sale announcements).

    Humorous: Witty, lighthearted, and entertaining (e.g., creative blogs). How to Choose Your Tone

    Analyze your audience: Consider their demographics, preferences, and expectations.

    Define your channel: Match the platform, like LinkedIn versus TikTok.

    Establish your goals: Decide if you want to inform, persuade, or entertain. To help me give you more relevant information, tell me:

  • Understanding GLM: A Complete Guide for Beginners

    Understanding GLM: A Complete Guide for Beginners When transitioning from simple linear regression to advanced data science, Generalized Linear Models (GLMs) are the most critical concept to master. Ordinary linear regression breaks down when data behaves unpredictably, such as when predicting binary outcomes, counting rare events, or modeling highly skewed data. GLMs solve this problem by extending linear regression to handle almost any type of data distribution.

    This guide breaks down GLMs into simple, understandable concepts without getting lost in overwhelming mathematical jargon. What is a Generalized Linear Model (GLM)?

    A Generalized Linear Model is a flexible mathematical framework that unifies various statistical models under one roof. If you have ever used linear regression, logistic regression, or Poisson regression, you have already used a GLM.

    Standard linear regression assumes that the relationship between your features and your target variable is a straight line, and that your errors are normally distributed (the classic bell curve). GLMs remove these rigid assumptions, allowing the target variable to have non-normal distributions and non-linear relationships with the predictors. The Three Pillars of a GLM

    Every GLM consists of three fundamental components. Understanding these three building blocks is the secret to understanding how GLMs work.

    +———————————————————–+ | GLM Structure | +———————————————————–+ | 1. Random Component –> Target Variable Distribution | | 2. Systematic Component–> Linear Combination of Inputs | | 3. Link Function –> The Mathematical Bridge | +———————————————————–+ 1. The Random Component (The Target) This component identifies the target variable (

    ) and its probability distribution. Instead of forcing every dataset into a normal distribution, GLMs let you choose a distribution from the Exponential Family that actually fits your data:

    Normal Distribution: For continuous data (e.g., height, weight).

    Bernoulli/Binomial Distribution: For binary outcomes (e.g., yes/no, churn/retain).

    Poisson Distribution: For count data (e.g., website clicks per hour, traffic accidents).

    Gamma Distribution: For positively skewed continuous data (e.g., insurance claim amounts). 2. The Systematic Component (The Inputs)

    This is the linear combination of your independent predictor variables (

    ). It represents the structural part of the model that you estimate from the data. It is written exactly like the standard linear regression formula:

    η=β0+β1×1+β2×2+…+βnxneta equals beta sub 0 plus beta sub 1 x sub 1 plus beta sub 2 x sub 2 plus … plus beta sub n x sub n (eta) is called the linear predictor. 3. The Link Function (The Bridge) The link function, denoted as

    , is the magic ingredient of a GLM. It connects the systematic component (the linear predictor) to the expected value of the random component.

    Instead of forcing the actual target variable to be linear, the link function transforms the average expected outcome so that it matches the linear predictor:

    g(E[Y])=β0+β1×1+β2×2+…+βnxng of open paren double-struck cap E open bracket cap Y close bracket close paren equals beta sub 0 plus beta sub 1 x sub 1 plus beta sub 2 x sub 2 plus … plus beta sub n x sub n Why Do We Need the Link Function?

    Imagine you are predicting whether a user will buy a product (1 for buy, 0 for no buy). A standard linear regression line might predict a probability of 1.5 or -0.2 for certain inputs. Mathematically, probabilities above 100% or below 0% make no sense.

    The link function solves this by bending and squeezing the linear regression line so that the predictions stay within logical boundaries. For binary outcomes, the Logit link function maps the straight line into an S-curve that strictly stays between 0 and 1. For count data, the Log log link function ensures that predictions never drop below zero. Common Types of GLMs You Already Know Model Type Random Component (Distribution) Typical Link Function Common Use Case Linear Regression Normal (Gaussian) Identity (No change) Predicting house prices based on square footage. Logistic Regression Binomial / Bernoulli Predicting whether an email is spam or not. Poisson Regression

    Predicting the number of customer calls a call center receives daily. Key Advantages of Using GLMs

    Ultimate Flexibility: You do not need to transform your raw data artificially (like taking the log of your target variable) to force it to fit a linear regression model.

    Preserved Data Structure: GLMs model the data on its original scale, making the final insights much easier to explain to business stakeholders.

    Robustness: They handle skewed data and non-constant variance (heteroscedasticity) far better than ordinary least squares regression. How to Get Started

    Implementing a GLM is straightforward in modern programming languages. In Python: Use the statsmodels library.

    import statsmodels.api as sm import statsmodels.formula.api as smf # Example for Logistic Regression model = smf.glm(formula=“outcome ~ feature1 + feature2”, data=df, family=sm.families.Binomial()).fit() print(model.summary()) Use code with caution. In R: Use the built-in glm() function.

    # Example for Poisson Regression model <- glm(clicks ~ impressions + day_of_week, data = df, family = poisson(link = “log”)) summary(model) Use code with caution.

    Mastering GLMs bridges the gap between simple heuristics and true statistical modeling. By learning how to match your data distribution to the right link function, you can model almost any real-world scenario with high precision. To help tailor this guide further, let me know:

    Are you prepping for an interview or exam that requires deep math derivations of the exponential family?

  • Why Developers Love Portable EmEditor Professional for Large Files

    Portable EmEditor Professional: The Ultimate Text Editor on the Go

    Software developers, data analysts, and system administrators often need to work across multiple computers. Setting up a preferred text editor with custom macros, syntax highlighting, and configurations on every machine is time-consuming. Portable EmEditor Professional solves this problem by delivering a top-tier text editor directly from a USB flash drive or cloud storage folder. It requires no installation and leaves zero registry traces on the host computer. Uncompromising Speed and Large File Handling

    Many portable text editors slow down or crash when opening large datasets. Portable EmEditor Professional inherits the core engine of its desktop counterpart, allowing it to open files up to 16 terabytes.

    The software utilizes multi-threading and advanced memory management to process millions of rows of data rapidly. Activities like sorting log files, removing duplicate entries, and running global search-and-replace actions execute in seconds. This performance level makes it a reliable tool for handling massive CSV databases and server logs away from your primary workstation. Rich Feature Set in a Lightweight Package

    Portable EmEditor Professional maintains all the advanced features of the standard version without bloating the file size.

    Advanced CSV Formatting: Automatically detects separators, aligns columns, and provides a spreadsheet-like view for easy data manipulation.

    Multiple Selection Editing: Allows users to select and edit text in multiple places simultaneously to cut down repetitive coding tasks.

    Robust Syntax Highlighting: Supports coding languages like HTML, Python, C++, and JavaScript out of the box.

    Powerful Regex Search: Offers full regular expression support for complex search, replace, and data extraction workflows. Complete Customization and Scripting

    A portable tool is only valuable if it remembers your specific workflow. Portable EmEditor Professional saves all configurations, themes, keyboard shortcuts, and plugins directly into its local folder.

    The editor features a built-in macro recorder that supports JavaScript and VBScript. Users can automate complex text formatting operations once and run those scripts on any computer. The plug-in ecosystem travels with the executable file, ensuring that your customized development environment remains intact wherever you plug in your drive. Secure and Stealthy Operation

    Working on guest computers introduces privacy and security risks. Portable EmEditor Professional addresses these concerns by operating entirely within its own directory.

    The application does not write data to the Windows Registry or create temporary configuration files in the host system’s AppData folders. When you close the program and remove your storage drive, you leave no digital footprint behind. This makes it an excellent choice for contract workers, IT consultants, and security auditors who operate on strict third-party networks. Conclusion

    Portable EmEditor Professional transitions from a simple notepad replacement into a mobile data workstation. By combining unmatched file capacity, complete feature retention, and zero-footprint portability, it serves as an indispensable tool for technical professionals who demand consistency and power on the go.

  • How to Use GBCopy to Streamline Your Daily Workflow

    Boost Your Efficiency with GBCopy: The Ultimate Productivity Tool

    In today’s fast-paced digital workspace, professionals face a constant barrage of information. Managing snippets of text, code blocks, URLs, and images across multiple applications can quickly become chaotic. The constant need to copy, switch windows, and paste disrupts focus and drains valuable time.

    Enter GBCopy, a powerful productivity solution designed to streamline your workflow. By redefining how you handle clipboard data, this tool eliminates repetitive friction and allows you to focus on high-value tasks. The Evolution of Clipboard Management

    The standard operating system clipboard is fundamentally flawed: it only remembers one item at a time. Copying something new instantly overwrites your previous data, forcing you to constantly toggle between windows to fetch information.

    GBCopy solves this bottleneck by transforming your clipboard into an intelligent, searchable database. It operates quietly in the background, automatically saving everything you copy so you can retrieve it later with minimal effort. Key Features that Drive Efficiency

    GBCopy is more than just a storage bin for copied text. It offers a robust suite of features tailored for power users, developers, writers, and administrative professionals alike. 1. Multi-Format Clipboard History

    Whether you copy a line of text, a complex code snippet, a high-resolution image, or a file path, GBCopy stores it securely. The tool retains the original formatting, ensuring that your data looks exactly as intended when pasted. 2. Lightning-Fast Search and Filtering

    Finding a link you copied three hours ago is effortless. GBCopy features an instant search function that lets you type keywords to locate past clips. You can also filter your history by data type, such as text, images, or links, to narrow down results instantly. 3. Custom Pins and Collections

    For data you use repeatedly—such as email templates, boilerplate code, or brand color hex codes—GBCopy allows you to create permanent collections. Pinning frequently used items ensures they are always just a click or a keystroke away. 4. Seamless Hotkey Integration

    Speed is the core of productivity. GBCopy relies on customizable global hotkeys. With a simple keyboard shortcut, the GBCopy interface pops up exactly where your cursor is, allowing you to select and paste historical data without touching your mouse. Transforming Your Daily Workflow

    Integrating GBCopy into your routine yields immediate, measurable improvements in daily efficiency:

    For Software Developers: Store multiple code blocks from documentation and paste them sequentially without breaking your train of thought.

    For Writers and Researchers: Gather quotes, statistics, and source URLs simultaneously, then compile them into your draft at the end.

    For Customer Support Teams: Keep standard, approved responses pinned for rapid deployment, drastically reducing resolution times. Maximize Your Output

    True productivity is about reducing the cognitive load of mundane tasks so your brain can focus on creative problem-solving. GBCopy eliminates the repetitive “copy, alt-tab, paste, alt-tab” loop, giving you back hours of lost time every week.

    If you are ready to eliminate digital clutter and take control of your workflow, making GBCopy a central part of your toolkit is the ultimate place to start. To help tailor this content further, please let me know:

    Who is your primary target audience? (e.g., developers, general office workers, creators)

    Are there specific features of GBCopy you want highlighted or added?

  • Top 5 Time-Saving Hacks Hidden Inside Amblit Easy Navigator

    ⁠Amblit Easy Navigator is an affordable, entry-level personal productivity and data management software. Retailing for \(19.95 USD</strong> with a 30-day free trial, it is designed for everyday PC users seeking a simple, low-stress method to consolidate disjointed files, shortcuts, and web notes. If you struggle with a cluttered desktop and want basic, no-frills organization, the software is generally <strong>worth the small investment</strong>. However, power users seeking modern cloud integration or deep AI functionality will find it lacking compared to contemporary suites. Core Feature Review</p> <p><strong>Hierarchical Container System:</strong> The software allows you to create high-level project folders, or "containers," to drop related information into a single space.</p> <p><strong>Drag-and-Drop Simplification:</strong> You can drag text fragments, file shortcuts, bookmarks, and images directly from other apps into the Navigator window. The program automatically recognizes the file type and assigns the appropriate icon.</p> <p><strong>Multi-Format Organization:</strong> It supports a broad range of data types in one hub, including text notes, to-do lists, webpage bookmarks, software shortcuts, movies, and pictures.</p> <p><strong>Semantic Agent Limitations:</strong> While its parent software, <a href="https://www.amblit.org/our-history/consumer-products/amblit-navigator/">⁠Amblit Navigator</a>, heavily boasts natural language capabilities and speech tools, the "Easy" budget version functions strictly as a basic desktop manager. It lacks integrated access to advanced backend AI agents. Pros and Cons Low, one-time price (\)19.95) Outdated user interface and system environment Extremely easy drag-and-drop mechanics No active cloud syncing or advanced modern app extensions Lightweight and runs on minimal system memory Single-document interface limits multitasking The Verdict: Is It Worth It?

    For users on older Windows systems or minimalists who want a cheap, local tool to group project files and links together without paying for a monthly subscription, Amblit Easy Navigator is a helpful, low-cost utility. If you rely on cross-device mobile syncing, advanced team collaboration, or automated data extraction, you should skip this tool and look into modern alternatives like Notion or Obsidian.

    To help you decide if this fits your current workflow, could you share what operating system you use and what specific organizational pain points you are trying to solve? www.amblit.org Amblit Easy Navigator