Do you still consider #JavaScript as “glitter” for webpages? Maybe it's time to reconsider! The math ecosystem of JavaScript is quietly growing under the mainstream radar! Projects like stdlib are building a robust foundation for scientific computing. The stdlib team is building versions of #BLAS and #LAPACK running in the browser! (if you have programmed in #FORTRAN I think you can relate to my enthusiasm😃) At FEAScript, we are also starting to integrate stdlib into our code, thus avoiding having to reinvent everything from scratch! #ScientificComputing #FEA #FEAScript #OpenSource #Engineering
Nikolaos Chamakos’ Post
More Relevant Posts
-
Day 112 of #200DaysOfCode Leveling up Consistency continues, one concept at a time. Today I solved the "Memoize" problem on LeetCode using closures + caching in JavaScript. Key Idea: Avoid recomputing the same function call by storing previously calculated results. Approach: • Use a Map as cache storage • Convert arguments into a unique key using JSON.stringify() • If result already exists return cached value • Otherwise compute, store, and return result Concepts Used: • Closures • Memoization • Map • Higher Order Functions Time Complexity: • First Call → Depends on function • Repeated Calls → O(1) average lookup Space Complexity: O(n) Takeaway: Memoization is a powerful optimization technique that trades space for speed and is heavily used in Dynamic Programming and performance optimization. Learning not just to solve problems — but to make solutions smarter Let’s keep building #Day112 #200DaysOfCode #LeetCode #JavaScript #Memoization #Closures #CodingJourney #ProblemSolving #KeepGoing
To view or add a comment, sign in
-
-
🌞 Day 44 – LeetCode 75 ✅ 547. Number of Provinces Today’s problem was about finding how many connected components (provinces) exist in a graph represented using an adjacency matrix. Approach : I treated the matrix as a graph problem: - Each city = a node - isConnected[i][j] = 1 means there is a connection (edge) So the goal becomes: - Count how many disconnected groups exist. DFS Approach : - Maintain a visited[] array to track visited cities Loop through each city: - If not visited → it means a new province - Run DFS to mark all cities connected to it Complexity : - Time: O(n²) → because we scan adjacency matrix - Space: O(n) → visited array + recursion stack Key Insight : This is a classic Connected Components in Graph problem. Even though it looks like a matrix problem, it’s really: - How many disconnected graphs exist? Once you see that pattern, DFS/BFS becomes very natural. Restarting consistency again — building momentum one graph problem at a time 🚀 #LeetCode75 #Day44 #LeetCode #DSA #JavaScript #Graph #DFS #ConnectedComponents #ProblemSolving #Coding #LearningInPublic #Consistency
To view or add a comment, sign in
-
-
Analyzed the SkyFrac platform today. ~640k lines of code. JavaScript ~239k, Python ~165k, PHP ~157k, CSS ~68k But what I love about our software is that we built it from the ground up to handle and serve data, so developing new modules and technologies is easy. Typically we can conceptualize a new technology or analysis at 8AM and have a beta version deployed for testing by 2PM.
To view or add a comment, sign in
-
𝗬𝗼𝘂𝗿 𝗣𝘆𝘁𝗵𝗼𝗻 𝗽𝗿𝗼𝗷𝗲𝗰𝘁 𝗵𝗮𝘀 𝗳𝗹𝗮𝗸𝗲𝟴, 𝗶𝘀𝗼𝗿𝘁, 𝗯𝗹𝗮𝗰𝗸, 𝗽𝘆𝗹𝗶𝗻𝘁, 𝗮𝗻𝗱 𝗯𝗮𝗻𝗱𝗶𝘁. Five tools. Five configs. Five places for CI to silently drift. Ruff replaces all of them. Written in Rust, it runs in milliseconds on a full codebase. One config in 𝗽𝘆𝗽𝗿𝗼𝗷𝗲𝗰𝘁.𝘁𝗼𝗺𝗹. One command in CI. 🔹 Replaces: flake8, isort, black, pyupgrade, pydocstyle, and 700+ rules from pylint 🔹 10–100x faster than the tools it replaces — no more slow CI lint steps 🔹 𝗿𝘂𝗳𝗳 𝗰𝗵𝗲𝗰𝗸 --𝗳𝗶𝘅 auto-fixes most violations — not just reports them 🔹 One binary, zero inter-tool conflicts, one source of truth This "BIFES UP" ruleset is my way of beefing up code quality while keeping the stakes high on security. It covers 90% of what matters from security to logic. Want 100%? Just extend it with 𝗪, 𝗔𝗦𝗬𝗡𝗖, and 𝗡 — especially essential for ensuring concurrency safety in FastAPI environments. What other rules do you often include in your projects? #Python #DevSecOps #SoftwareEngineering #BackendDevelopment #SoftwareArchitecture
To view or add a comment, sign in
-
-
LeetCode Day 13 : Problem 42 (Trapping Rain Water) Just solved another LeetCode problem. It was "Trapping Rain Water", sounds like a physics problem, right? But here's what I actually learned: The core insight, for any position, the water it can hold is limited by the shorter of the two tallest walls surrounding it. min(maxLeft, maxRight) - height[i]. Once that clicked, the solution wrote itself. My first approach used two extra arrays, one for the tallest bar to the left of each position, one for the right. Three passes total. O(n) time, O(n) space. Clean and readable. Then I learned the O(1) space version using two pointers. Instead of pre-building arrays, move from both ends toward the middle. Whichever side is shorter determines the water level, process that side and move inward. Same result, no extra arrays. The pattern I keep seeing, when you need both left and right context, either do two passes and store results, or use two pointers and process on the fly. Same idea, different tradeoff between readability and space. Thirteen problems in. The two pass and two pointer patterns keep showing up in different forms. The more problems you solve, the more you recognise the shape of the solution before you write a single line. The real lesson? Understand why the brute force works first. The optimal solution is just the brute force with the extra space removed. #DSA #LeetCode #JavaScript #CodingJourney #Programming
To view or add a comment, sign in
-
-
I try to building an mini Async Task Retry logic. The goal was to simulate a flaky network request and build a wrapper function that automatically retries the request if it fails, instead of just breaking. What I practiced and learned: Generics with Promises: I used TypeScript's built-in generics by defining Promise<ApiResponse> for both the simulator function and the retry wrapper. This ensured both functions knew exactly what shape of data to expect on success. Function Types: I learned how to strongly type a function parameter. I defined my input as apiCallFunc: () => Promise<ApiResponse> so the compiler knows exactly what the passed function will return. later added 3 emojis to make terminal output more readable, 🟢🔴⏳ fun :) #TypeScript #AsyncProgramming #WebDev #LearningInPublic #StudentDeveloper
To view or add a comment, sign in
-
I shipped a 8KB open-source library this weekend. ditherwave Dither effect is everywhere right now. But dithering on the web usually means pulling in three.js (~150kb). So i made an 8kb alternative. A WebGL2 dithering primitive for React. It dithers on the GPU in real-time. Vibe-coded with Claude Code. 👾 Demo: https://lnkd.in/d6u5T9NA Repo, npm, and demo in the first comment ↓ #𝗼𝗽𝗲𝗻𝘀𝗼𝘂𝗿𝗰𝗲 #𝘄𝗲𝗯𝗱𝗲𝘃𝗲𝗹𝗼𝗽𝗺𝗲𝗻𝘁 #𝗮𝗶 #𝗰𝗹𝗮𝘂𝗱𝗲𝗰𝗼𝗱𝗲 #𝗿𝗲𝗮𝗰𝘁 #𝘄𝗲𝗯𝗴𝗹 #𝗷𝗮𝘃𝗮𝘀𝗰𝗿𝗶𝗽𝘁 #𝗯𝘂𝗶𝗹𝗱𝗶𝗻𝗽𝘂𝗯𝗹𝗶𝗰
To view or add a comment, sign in
-
📄 New preprint published on Zenodo today. FlowBridge: A Zero-Cost Generalized Framework for Cross-Platform Email-to-Messaging Automation Using Browser Automation in Containerized Virtual Display Environments. 5 named subsystems: → DedupGuard — multi-signal deduplication → ClipCast — Unicode injection bypassing ChromeDriver BMP limit → SessionHeal — self-healing browser sessions in Docker → SheetConfig — spreadsheet-as-configuration → BatchForge — message aggregation engine Production result: 100% delivery accuracy, zero duplicates, $0/month infrastructure. Sole-author preprint #5. Open source. MIT license. DOI: https://lnkd.in/gidKy6BQ GitHub: https://lnkd.in/ge3RaEUr Full deep-dive article coming this week. #FlowBridge #OpenSource #Research #Zenodo #Automation #Docker #Python
To view or add a comment, sign in
-
Ever look at a LeetCode problem and think, "Oh, this is just simple math," only to see a constraint of $10^{15}$ staring back at you? That was my experience with the "Count Good Numbers" problem today. The core logic was actually pretty straightforward: even indices get even digits (5 options), and odd indices get prime digits (4 options). But trying to calculate 5^even * 4^odd for massive numbers? Immediate Time Limit Exceeded (TLE). I had to scrap the standard approach and write a custom pow() function using Binary Exponentiation. It’s wild how applying modulo 10^9 + 7 at every single multiplication step within the recursive call is the exact difference between a failing solution and a clean O(log n) pass without integer overflow. Definitely a great reminder that knowing the brute-force math is only half the battle—optimizing it is where the real engineering happens. Back to the grind! #LeetCode #DSA #CPP #CompetitiveProgramming #SoftwareEngineering #CodingJourney
To view or add a comment, sign in
-
Explore related topics
- Scientific Programming Languages
- High-Performance Computing Libraries
- Mathematical Modelling Applications
- Parallel Computing in Scientific Research
- Scalable Tools for Modern Breeding Programs
- Parallel Computing Frameworks
- High-Performance Computing Solutions
- Optical Computing Tools
- Front-end Development with React
- Scientific Code Optimization
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development