I was going to share a link to this. Thank you for making `cs`, I use it both with LLMs and directly in the terminal, despite not performing indexing it's pretty fast for my needs. Also definitely planning to try out semble.
HN user
zikani_03
Software Engineer from Malawi, Africa.
GitHub: github.com/zikani03
Email: <My GH username>@gmail.com
This was an interesting thread to read as a Malawian living right here in Malawi and frustrated about our situation. As the article mentions, we have a lot of things going for us that should have us in a better situation - very few natural disasters, no wars/civil unrest, even though the rains are sketchy sometimes we generally have good rainfall and even though we have challenges with food sometimes, it's rare to hear someone actually died of hunger.
However, there are a multitude of problems that have resulted in us being where we are. Now mind you, I am just a software engineer not a development expert (but for some credibility, I was the first engineer at Malawian owned Credit Reference Bureau and built most of the software there and I have worked with Social Cash Transfer program before as a consultant).
* Infrastructure is a big problem, we have poor road infrastructure, almost no rail or airline industry though those are picking up as of recent years. Very few Malawians have access to electricity, I believe some reports indicated less than 10%. Most of our population lives in rural areas. Internet penetration is growing but even cell tower coverage is not yet there - our TELCOS have about 3-4 million subscribers max, we are a population of about 20 million people (maybe 40% under 19?) and yet our largest bank only has about 2 or 3 million customers.
* We have low literacy rates and high dropout rates especially in rural areas. This is worrying for a population with almost half being youth/children. Our school infrastructure is also not that great, it is not strange to find a class of students learning under a tree in some rural and peri-urban areas.
* Corruption and mismanagement of funds - this is a big problem here. A lot of the money in the government programs and NGO/Donor programs finds it's way into individuals' pockets. Some of the initiatives are well meaning but because of corruption and pilfering of funds the impact isn't always felt at the level that's expected.
* Mismanagement of Natural resources - we have deposits of gold, rutile, uranium and other materials - we have companies from Australia/China and the likes setting up and possibly benefitting without giving much back to the country besides some veiled Corporate Social Responsibility activities, with parts of the funds going into people's pockets - we need to do better to control our resources but the low literacy rates and lack of awareness of some of these things affects how we as citizens react.
* There's lots online about our agriculture, so I won't spend too much time there - only to say we need to do better to mechanize and not rely too much on the rain cycles. I'm saying this as someone who has gotten into farming recently and is frustrated by how... manual it all is :)
There's a lot more I could say but I hope this give somewhat of a picture.
I should just mention, Malawians are some of the brightest most hardworking people you will ever meet but also trustworthy and loyal. You will probably meet a Malawian doctor in any part of the world and our software engineers are getting there too, we just need the exposure and opportunity to prove ourselves. I help moderate a community of developers and I can tell you we have talent and we do come cheap (even as low as $25/hr ;)
If you are ever in the market to try working with some Malawians, contact is on the profile :)
This is a neat trick for a quick visual presentation, thanks!
pom.xml and package.json came up on couple of separate projects I ran the commands on. Which makes sense because the versions get bumped rather frequently. I guess context matters, as usual.
Nice, this seems interesting. I don't use Obsidian (I use Logseq) but this has given me a couple of ideas for a CRM I am building (it's currently in a Personal Relationship manager phase which I've found useful for about a year or two).
Thanks for sharing.
I also thought the same thing. Had to double take and scroll to see I'm not alone. It's an interesting phenomenon, I suspect the title was too on the nose that it invokes an immediate reaction.
Anyways, I wish more people commented on what's actually in the article - i've observed what OP is complaining about happening in whatsapp groups too esp when there is a difference of opinion; people defer to calling Meta's in-chat AI instead of giving a bit more effort and stating _their_ view.
I'm still working on basi[0], a Playwright alternative syntax/tool. I am curious about using LightPanda as an optional headless browser for it and wrote about it here[1]
[0] https://github.com/zikani03/basi [1]: https://code.zikani.me/using-the-zig-built-lightpanda-browse...
Postgres can definitely handle a lot of use cases; background job scheduling always had me tempted to reach for something like rabbitmq but so far happy enough with riverqueue[0] for Go projects.
Where I come from (Malawi, Africa), WhatsApp is so widespread that most people prefer it over email - to the extent that people don't really check their e-mails unless it's required for work or they are applying for something. For most people, WhatsApp is the de-facto communication channel.
I help moderate a community of developers and we hit the whatsapp group limit of 1024 members and sometimes have to wait for someone to leave (intentionally or accidentally) before we can add new members. We've tried to move people onto "better" platforms like Discord or Slack but we always end up coming back to WhatsApp which is subsidized via MNOs (mobile network operators) social media data/internet bundles and for the fact that most people are just stuck on whatsapp.
"Buying tools for the thing is not doing the thing."
This one hit me right in the feels, I have been buying more woodworking/DIY tools than the projects I've worked on with them.
https://zikani.me - My site
https://code.zikani.me - My Hashnode Blog (planning to self-host soon)
https://blog.nndi.cloud - My startup's blog
Hi Eric, this is very nice work! I played with this and love the idea and execution. I have had similar thoughts about how chatting with AI seems to lack some of the elements you mention that we get from talking to other people.
I appreciate that you've made it open source and will be checking out the code and maybe that can get me to finally play with Tauri :)
This has inspired me to move my personal blog to Hugo aswell. I have been using Hashnode[0] for the past few years and while it's okay, they recently automatically deleted one of my blog posts which was written in my local language, Chichewa and was one of my popular amongst, even non-developers.
Ironically, my company's blog and websites are built with Hugo.
I would rather use semantic elements for the examples like the one in the article and use web components/custom elements where appropriate.
Web Components are underrated for sure. I had a need for a custom element[0] and it was not difficult to implement.
Thanks for all the great work. How good is the model at composing actions and is there a way to say, give the model ability to scope actions, for example if actions are related to permissions or some other context? Would one need to pass the role or permission as context or finetune separately?
I hope those questions make sense
absolutely revolutionary! ;)
Nice, this looks interesting.
Somewhat related is a project we worked on within Golang community in Malawi: https://github.com/golang-malawi/geneveev
It supports converting types to Zod schemas and Dart classes. Never got around to TypeScript and would be cool to see if we could add support for guts
I'm working on basi, an alternative/syntax to writing Playwright: https://github.com/zikani03/basi
Trying to keep it simple but I can already feel some "design pressure" to think about making the DSL more complete (language) by adding features like loops and variables. Still early days!
Looks interesting and good use case for introducing folks to extending web apps with WASM functionality.
Used a similar technique using tinygo wasm builds (without Vite ofcourse) on toy project where WASM based functionality acted as a fallback if the API wasn't available or user was offline - found it an interesting pattern.
Mass assignment problems sometimes also come from (improper?) use of frameworks. This goes beyond frameworks and more about how thorough the testing and review of how the user account modification and access control is done.
Seconding.. gotenberg has been solid for us. We also make use of it's convert from Word to PDF feature and it's been really solid.
I am working on a tool for testing web apps with a simple to use syntax/DSL aimed to reduce work for automated testing of applications, based on Playwright (Go).
It has additional cool feature like documentation generation in which the steps of the UI test can be used to generate a markdown document with screenshots to aid teams in crafting end-user documentation.
I am planning on adding reports like Playwright and Cypress support and then later on adding support for running tests on remote browser instances to enable different workflows
This is a cool project! Would be interesting if this could be used to help teach and learn linux to a group of students. No need to muck about with user accounts and one could add a proxy layer and map each username to a dynamic DNS entry to help students host their own temporary webserver.
I am working on a tool[1] to try to make working with playwright a bit more ergonomic and approachable. Sorry to shamelessly plug but I'd love feedback on if it is even a good idea/direction.
Hadn't considered the Page Object Model and will definitely have to consider how to incorporate that for those who want to do things that way.
---
I've found that using Git libraries directly is usually slow and less ergonomic. I've got another tool (written in Go) here: https://github.com/zikani03/git-monorepo which uses a Git library and is a bit slow.
But I'm willing to take up that challenge and test out gix, I've regained my interest in Rust so the timing is good :)
I'm not the one who posted, thanks to the OP for sharing though :)
Thanks for the heads up! I don't know how i missed pact.io - interesting that both are about testing. Will try to think of a different name :_)
I'm working on pact[0], a tool to enable developers and hopefully less technical users to interact with Playwright and perform actions and tests on web-based user interfaces and applications using either a YAML file or a simple DSL (in a .pact file).
Initially this started off as a feature for a PR on venom[1], an integration testing tool, but as I thought about it more - it made sense to maybe make a standalone tool that can evolve a bit different from venom. It's still very early but it works to perform some basic actions using typical CSS selectors that playwright supports.
[0] https://github.com/zikani03/pact [1]: https://github.com/ovh/venom
Always excited to see Josh's projects - last time I played with uhaha (loved the name) and it was mind-opening to some extent. Pogocache also looks very interesting and good to see the benchmarks on ARM
This is well put. I once built a tool called [zefaker] (github.com/creditdatamw/zefaker) to test some data pipelines but never managed to get a good pattern or method for generating data that simulates actions or scenarios that didn't involve too much extra work.
Was hoping this AI dataset generator solves that issue, but i guess it is still early days. Looks good though and using Faker to generate the data locally sounds good as a cost-cutting measure, but also potentially opens room for human-in-the-loop adjustments of the generated data.