HN user

minhajuddin

457 karma

I am currently working on Zammu which makes Automatic Deployment of static websites to Github Pages very easy. I would love to get your feedback on it, My email is minhajuddin.k+hn@gmail.com

Posts121
Comments220
View on HN
minhajuddin.com 1y ago

That one time when office365 was marking our emails as spam

minhajuddin
4pts1
minhajuddin.com 4y ago

Memory Cached Tables for building faster web applications

minhajuddin
1pts0
github.com 6y ago

Show HN: Tummy – Tmuxfile with your tmux configuration to easily manage sessions

minhajuddin
4pts0
webpipe.hyperngn.com 6y ago

Show HN: WebPipe – Pipe from your servers to the browser

minhajuddin
6pts4
minhajuddin.com 7y ago

Pearls of Elixir – Interesting Patterns from Popular Elixir Packages

minhajuddin
3pts0
engineering.tripping.com 7y ago

Blazing fast Elixir configuration

minhajuddin
2pts0
minhajuddin.com 8y ago

7 ways of doing Fizz Buzz in Elixir and other clickbaity stuff

minhajuddin
4pts0
slow.webutil.in 8y ago

Show HN: A simple timeout service to unit test your timeouts

minhajuddin
3pts0
minhajuddin.com 8y ago

Tossing a bottle

minhajuddin
1pts0
news.ycombinator.com 9y ago

Ask HN: Feedback for a form endpoint

minhajuddin
3pts2
liveformhq.com 9y ago

Show HN: LiveForm simple reCAPTCHA integration for your contact forms

minhajuddin
3pts0
docs.liveformhq.com 9y ago

Show HN: LiveForm – Form endpoints with reCAPTCHA support

minhajuddin
3pts1
slugex.com 9y ago

Show HN: Slugex – Deploy your websites in a jiffy, from your terminal

minhajuddin
4pts1
blog.liveformhq.com 9y ago

Show HN: Liveform. Creating an Imgur Clone Using GitHub Pages and Liveform

minhajuddin
4pts5
github.com 9y ago

Show HN: Automatically check for invalid patterns in your commits

minhajuddin
2pts0
news.ycombinator.com 10y ago

Http://beta.asp.net points to 0.0.0.0

minhajuddin
1pts1
minhajuddin.com 10y ago

Script your tmux to maximize the awesome

minhajuddin
4pts0
blog.zammu.in 10y ago

How to Setup a Middleman Blog on GitHub Pages with One Click

minhajuddin
4pts1
minhajuddin.com 10y ago

Lets build a dumb static site generator

minhajuddin
1pts0
minhajuddin.com 10y ago

Make evil monkey nag you back to work – Simplicity

minhajuddin
1pts0
blog.zammu.in 10y ago

Creating Banner Images Using HTML – The Zammu Blog

minhajuddin
1pts2
cloak.websrvr.in 11y ago

Show HN: Cloak – Encode your binary files to base64 text and decode them back

minhajuddin
1pts2
www.websrvr.in 11y ago

Show HN: Create and host websites from your dropbox

minhajuddin
2pts0
www.websrvr.in 11y ago

Show HN: Create and host websites from your dropbox

minhajuddin
4pts1
www.fastcoexist.com 11y ago

Why You Should Be Outsourcing Your Laundry by Bike – Co.Exist – Ideas + Impact

minhajuddin
2pts0
blog.websrvr.in 11y ago

Websrvr now minifies and gzips your css, JavaScript and html

minhajuddin
4pts1
www.websrvr.in 11y ago

Show HN: Deploy your websites from Dropbox

minhajuddin
28pts46
showcase.websrvr.in 11y ago

Turn your dropbox into a webhost

minhajuddin
4pts0
www.websrvr.in 11y ago

Show HN: Deploy your websites to a Amazon Cloudfront/S3 using dropbox

minhajuddin
6pts8
linkanalyzer.cosmicvent.net 11y ago

Linkanalyzer – Analyze all the links on your web page

minhajuddin
1pts0

I have started fiddling with rust, and one thing that I miss from the Elixir world is binary pattern parsing/matching. The elixir model is so much nicer, I've used byteorder to convert a datetime to a byte array and then the reverse and it is not the most elegant code, nom looks much nicer. I wish rust had Elixir/Erlang like binary pattern matching.

I've been using Elixir/Erlang for more than 6 years and absolutely love it. The community is a lovely place to be, tooling is great. Concurrency is awesome. Erlang is battle tested. If you are building applications that have anything to do with networks, you'll be able to build some seriously performant apps without having to reach for other tools and I love the community's focus on performance.

We also found many times missing libraries, or found libraries which are incomplete, or unmaintained or just not well documented

Can you give some examples here. This may have been true in the past, but isn't true anymore. I can give an example where ruby is lacking: Performant HTTP libraries, Elixir and Erlang are so good in this space, look at `finch`, `httpoison` etc,. there is first class support for HTTP2 and connection pooling / persistent connections which is very hard to find in ruby.

Tooling is just terrible. The VSCode plugin is crap, kills the CPU unless you disable features. There is no IDE from jetbrains. There is a plugin but last time I tried it, it was even worse than the VSCode plugin.

Which plugin are you referring to? Is it using dialyzer? Using dialyzer gives you so much static analysis for free as opposed to the default ruby vscode plugin. I have never heard of complaints about tooling. On the other hand, I know lots of developers who love the tooling, mix is great, iex gives you documentation with just `h String`. Plus with language server support, you have really good IDE support in vscode and vim. Look at the number of stars on the `ElixirLS` plugin here: https://marketplace.visualstudio.com/search?term=elixir&targ...

Also, I've read some comments where people mention "we don't need redis", "we don't need workers" everything is so much easier. That was our thinking at first. But then you realize on deployments you will lose your cache, or your background jobs, etc.

Yes, you'll lose data in your cache. Caches are supposed to be ephemeral, not everyone needs their caches to be persisted. However, if your use case requires persistence, you have a lot more options than just sticking it in redis. Plus, `oban` is a high quality background processor with persistence, without the need for adding redis to your stack.

For applications where performance matters, Elixir and Erlang give you lots of tools to build a truly performant app, However, if you don't need those tools, you might be better off building it in something more familiar.

Yeah, all my projects are web apps and Phoenix (The web framework for Elixir) is a joy to work with and highly performant.

I used to program professionally in Elixir where we talked to a ton of external providers. So, our app was heavy on the network (http) and Elixir was a really good fit for it. Now, I use it on personal projects.

The Elixir ecosystem is really healthy. You can find almost any package you want on hex (https://hex.pm/). Moreover, because it is built on top of erlang you can seamlessly use any Erlang code (which a lot of Elixir apps use).

You can usually find high-quality libraries with a google search or looking at the number of stars of a hex package. Mix, the build tool is awesome and the language now has out of the box support for creating deployment releases.

There are a lot of high paying jobs for Elixir.

This is going to be a real problem and it is hard for small sites to tackle this. I have simple service (https://liveformhq.com) which allowed users to sign up for an account with a free 1 month trial and it didn't ask for your credit card upfront. Everything was fine until a few months ago when people started signing up and setting up phishing forms (I had the registration form behind recaptcha). At the end I had to move the credit card form to the front to stop these bad actors (and even after this I had 1 guy set up a phishing form which I promptly shut off after an abuse report). The amount of effort spent to handle bad actors is really a terrible thing for the current SaaS apps. And, it ends up making the UX for the good users bad :(

Websocketd 7 years ago

This is really useful for building one of utility websites. I used this in one of my previous companies to tail the logs on our little QA server and push them via websocktd to an internal web page.

I'll share our deployment stack with Elixir, which is pretty hands off. We use docker with AWS ECS and have a simple release process:

  1. Our jenkins CI builds a docker image which contains an erlang release (using distillery).
  2. This image gets pushed to ECR (AWS's image repository), every version is tagged with a $GIT_REF.
  3. We have another jenkins job which updates our AWS ECS Tasks to use the new version of Docker images.
  4. AWS ECS now spins up a few new containers and drains out the connections from the old ones.

Well, the erlang vm is what runs Elixir apps. Elixir runs on the erlang VM (called BEAM) similar to how scala/clojure run on the JVM. However, while writing a lot of elixir code you end up using the erlang standard library for things which are not available in Elixir, :crypto is a module which comes to mind. Elixir apps at the end of the day are erlang apps.

I am proud of making LiveForm (https://liveformhq.com/) and GetSimpleForm (https://getsimpleform.com/). Both are simple products which allow users to integrate contact forms seamlessly in their websites. However, their use by others gives me great pleasure. A very recent user of LiveForm is using it to do translations! A user submits a scanned document with some extra information using LiveForm and my customer translates the text for a fee :)

This outage mainly effected the certificate generation and renewal. People who wanted to renew an existing/expired SSL cert or wanted to generate a new SSL cert weren't able to do it during this window. However, I believe the impact was small enough.

SSL certs don't need any external service for verification. The clients (in this case your browser) would have a set of root certificates issues by many CAs which serve as way for verifying.

The impact wasn't huge as most people who do renewal had a one time failure in the cron jobs which renew the certs. And since the renewals are tried 1 month before cert expiry, this was a non issue.

I recently got to use `join`. However, without reading documentation on outer joins. I went ahead and wrote my own version:

  join -t$'\t' <(cat c <(comm -13 <(cut -f1 c)  <(cut -f1 d) | sed -e 's/$/\t/') | sort -k1,1) <(cat d <(comm -23 <(cut -f1 c)  <(cut -f1 d) | sed -e 's/$/\t/') | sort -k1,1)
Then I stumbled on an easier version with using just join
  join -a1 -a2 -o auto f1 f2
There are really too many unexplored things on the linux command line for a typical dev.