HNHacker News
TopNewBestAskShowJobs

clone1018

799 karma · joined August 9, 2011

Homepage: http://axxim.net/

Email: luke@axxim.net

submissionscomments
clone1018··on A guide on how to use Ranch with Elixir
Definitely agree some of the "using erlang libraries in Elixir" guides on the internet are 10/10 confusing. It'll be good to have this as a resource on Google in the future! I spent quite awhile figuring out how to implement a SSL TCP server, with PSK and only a subset of cipher suites... a good long while.

Also related, I really like the `active` (GenServer example in this post) socket approach because then you're just writing a TCP server that acts like any erlang message provider. Of course there's some difficulties related to that but it makes the code very straightforward to understand and manage.

clone1018··on Woob: Web Outside of Browsers
I've had two ideas related to this in the past that I've always wanted to prototype:

- A social media website without a frontend. We just provide a fully exposed API and Oauth, and devs can create their own client to interact with the social network. This would give devs the freedom to create their own experiences without locking users into one specific way of using the social network.

- "Cloud" content hosting as a service. You'd be able to build your own frontend for interacting with a website / blog, and then include our JS code and your site's content will automatically be populated in. This would keep the frontend clean, simple, and cheap, while offloading posts, comments, and other advanced functionality to the service.

Of course both are purely experimental ideas, with no potential real world meaning :D

clone1018··on The WebSocket Handbook
Right, this is the comment I was going to make as well. It's certainly possible, but there's tradeoffs (mainly around complexity) to code hot-swapping. We haven't implemented it because restarting servers to upgrade code helps everyone prepare for when servers go down for unexpected reasons, or so I like to think :P!
clone1018··on The WebSocket Handbook
We use WebSockets in two regards: handling live page updates via Phoenix Live View for users (eg: real time chat messages, viewer count, etc) and as a transport medium for our real time API. The former is very easy to handle because for the most part users are navigating around pages which can terminate the ws connection and creates a new one (though most of the times not). The advantages Live View provides us is not having to write duplicated logic in the client & server, and instead just push data to users and their browser automatically reflects the changes.

However the latter use offers very powerful benefits with some difficult downsides. On the positives side you get a "real time" API to work with, and you can handle events as they happen and send updates back to them. In some cases our API users can even respond to a chat message faster than we can!

Since WebSockets are virtually just a transport, it's up to you to write a protocol for handling heartbeats, authentication, and communication. In addition when you have a horizontally scaled service it can make balancing the WebSocket connections a bit more challenging since they are long lived. Deployments are even more inconvenient since (in our case) we disconnect the WebSocket consumers whenever a server is restarted for the update. It can also be difficult to fully measure and understand how many WebSocket connections you have open, and how many resources they are consuming. It's important to really push down the number of computations you are doing for users who are subscribed to the same topics so that when you send out 10,000 updates with the same message it's just the text being sent, not 10,000 DB queries :D.

clone1018··on Give me /events, not webhooks
I've never heard of WebSub until you mentioned it. Apparently I was so intrigued by it / your post that I ended up making a little service to provide an alternative to Google's pubsubhubbub. Got it mostly feature complete as of a couple of minutes ago: https://websubhub.com/

Thanks for sharing your struggle!

clone1018··on SerenityOS demo at Handmade Seattle 2021 [video]
I don't have anything profound to say, but I love alternative OSes like SerenityOS, and I wish the world had more of them.
clone1018··on Mobile LTE Coverage Map
I'm on a MVNO provider and frequently experience issues where I have full signal like you mention, but nothing "works". Are you aware of any tools that can test the signal strength in comparison to... I guess download speed? Would be interesting to plot it out!
clone1018··on Operating System Development Tutorials in Rust on the Raspberry Pi
I love hobbiest operating systems! In a world of billions of software projects, it's sad only a small handful are OSes. I really love to watch what the Serenity[0] project is working on and I've been working to get it running on an older computer. However parts are harder to find & the spec requirements are very specific (drivers are hard).

I love the idea of doing more operating system experiments on RPIs just because of the availability & consistency of the platform. You don't have to worry about thousands of drivers for the most part, plus if you're using the RPI 400[1], basically everything is included in the keyboard!

Rust seems like a good way to get people involved as well, because of it's innate following. Excited to give this tutorial a try.

[0] https://github.com/SerenityOS/serenity [1] https://www.raspberrypi.org/products/raspberry-pi-400/

clone1018··on How we got to LiveView
Right, the normal way for Phoenix LiveView apps is to make the registration / login exist inside your regular controllers / actions since a LiveView cannot directly modify your cookies or global session (with some caveats).
clone1018··on How we got to LiveView
Yeah, the channel / category pages are all "live patched" generally, which means the user can navigate around without incurring a full HTTP roundtrip. Some pages like the account settings are "dumb views" though and do not offer the same advantages.

Thanks for the offer to be on the podcast, I'll check it out!

clone1018··on How we got to LiveView
We use Phoenix and LiveView to power all of our non-video interactions on Glimesh.tv[0] and the immediate out of the box features and performance are unmatched. LiveView allowed us to get a completely real time updating channel where streamers can edit their metadata (game, title, viewer count, etc) and all of the viewers can see it in real time. Not to mention we implemented a distributed chat system that sends message updates in real time to both browser clients and API clients. Both of these features combined amount to less than 1000 lines of code and "just work" across multiple web nodes.

It can be daunting to jump into such a strange world as a LiveView environment may look (Elixir syntax, OTP terminology, etc) but honestly once you dig in deeper, everything just makes sense. LiveView (and HEEx) continue to be very simple to understand abstractions on top of the rock solid OTP platform. It's a joy to build real time applications using it, and I very much appreciate the "developer experience" focus both Chris & Jose have for us Elixir devs!

I'm excited for the launch of Phoenix 1.6 and HEEx is shaping up to be a complete replacement for your traditional SPA + Backend API, and using one consistent language for your full stack really has very freeing & powerful benefits, especially for small teams!

[0] https://github.com/Glimesh/glimesh.tv/

clone1018··on Usage statistics of server-side programming languages for websites
I suspect these reports also have a good 5-10 years lag time from when a language gets popular, early adopters start using & creating libs, and then finally actual companies start adopting it. From that point there's a lull of development to get the site up, and then a couple of years later everything finally blossoms and the technology shows up on this chart.
clone1018··on Usage statistics of server-side programming languages for websites
I wonder how much the results of this are skewed because PHP reports via the server response header that it is being used. Other languages like Elixir, Go, etc aren't so public about their usage unless one of their web frameworks adds it.

I'd also love to see a study like this instead focused on "How much of the active web is wordpress?" and "How much of the inactive web is wordpress?".

clone1018··on Ask HN: Freelancer? Seeking freelancer? (September 2021)
SEEKING FREELANCER | Glimesh.tv | Video Ingest Project | HOURLY / PROJECT | REMOTE

Technologies: Go, Pion, WebRTC, UDP, RTP!

Glimesh.tv is a next-gen live streaming platform using WebRTC to deliver sub second latency to all content creators. We're looking for an experienced Go engineer to help us push our newest RTMP => WebRTC project across the finish line. The project has all of the initial framework in place, and is only a couple hundred lines of Go. The project takes RTMP input, converts it to RTP packets, and forwards the traffic into our video distribution network. Experience with Pion or video / audio manipulation is preferred, but we'd love to hear from anyone!

Additionally the project is open source, and your paid work on it would be given back to the video streaming community. The project is at: https://github.com/Glimesh/rtmp-ingest

Email: luke@glimesh.tv

clone1018··on Node.js binding for libobs – OBS studio's internal library
For anyone lacking some backstory here, OBS Studio is a highly performant, completely open source, native C/C++ app. It's honestly one of the best real time video compositing tools, and works directly with ffmpeg, x264, NVENC, etc. They recently released official support for Wayland as well!

Streamlabs OBS is a fork of OBS Studio with an added Electron wrapper. Streamlabs' primary focus for their OBS fork is to integrate directly with their paid services and other integrations. Due to the electron wrapper, "SLOBS" is known to underperform and crash unexpectedly.

Personally I'm concerned for the direction of Streamlabs OBS, with more and more of it's code becoming closed source or otherwise unavailable. They are also declining new streaming services be added to the tool, unless the service pays money, or has enough clout. For their business, the direction makes complete sense however I can't help but feel this is hurting the overall open source community.

clone1018··on SVG favicons have some cool benefits
When you look at it compared to actual browser usage, you end up with 89.62% support, which is not bad at all. WebP & CSS Grid are at about 95%.
clone1018··on Ask HN: Freelancer? Seeking freelancer? (July 2021)
SEEKING CONTRACT WORK | Backend / Full Stack Engineer / Solutions Consultant

---

Resume: http://axxim.net/~clone1018/personal/resume/dev.html

GitHub: https://github.com/clone1018

Location: Pittsburgh, PA, USA

Email: luke@axxim.net

-----

Greetings! I'm Luke, an experienced software engineer looking to take on contract work to help enable & empower your business. My primary focus has been designing & implementing complex web applications for handling business functions.

I can help you or your business with consulting on new / existing projects, or I can get my hands dirty building / maintaining your project by myself or in conjunction with your existing team. My direct experience involves building point of sale systems, customer relationship management systems, product fulfillment engines, ecommerce applications, ETL processes, and more.

Primary Languages: Elixir, Golang, PHP, JavaScript

Not-so-primary Languages: Python, Scala, Dart, Rust

Technical Competencies: AWS, PostgreSQL, MySQL, Performance Analysis, Unit Testing, Automated Testing, Engineering Processes (Disaster Recovery, Business Continuity, Agile, Team Formation, etc)

Please email me directly at luke@axxim.net with a brief description of what you are looking for, and I'll reach back out immediately with how I can help!

clone1018··on A Weekend MVP
Hey everyone, I'm the author of the post. It was great fun hacking out this MVP in a weekend (from idea to advertising), if you have any questions please let me know!
clone1018··on Ask HN: Who is hiring? (July 2019)
Idelic | Pittsburgh, PA | Full-Time | Onsite | Engineering & Product

Idelic's goal is simple, use technology and a thoughtful product to help predict and prevent trucking accidents, and reduce driver turnover to get drivers home safe every night. Our SaaS solutions transform the pen-and-paper trucking industry to a platform of safe drivers through advanced machine learning and our driver management platform.

Our products focus on a primary objective, quality software that meets the needs of our users. We tackle tech debt and use the best tooling to help us maintain quality.

Stack: Scala, Python, Go, React, Redux, TypeScript, Postgresql, Docker

Open Engineering Positions:

- Senior Frontend Software Engineer

- Frontend Software Engineer

- DevOps Engineer

- Data Analyst

Open Product Positions:

- Head of Product Management

- Lead UX Designer

Full job details: https://idelic.com/careers/

Email: luke@idelic.com

clone1018··on We'll pay you $3000/mo to build your startup on Dark
It's all just hosted on GitHub, uses regular HTML and CSS, no javascript :)

http://darklang.github.io

clone1018··on The End of Gratipay
Back in 2015 Gratipay hosted it’s second ever retreat; the idea was a full weekend of hacking and building with all of our normally-remote members of the team. The thing you need to know about Chad is he is exceptional at bringing people together and spreading his passion. I arrived a bit early to the retreat and was tasked by Chad to cook dinner. It sounded easy enough; I need to make dinner for 10 or so people, something easy like sandwiches would work right? That was when Chad brought out the giant oven-sized dutch oven, I couldn’t believe we would be making so much food for 10 people! I was peeling potatoes for hours! Turns out that night we fed over 50 amazing people from Chad’s life. All of his friends, neighbors, churchgoers, family, peers, and even random people he had inspired at the local pub.

And every time I hung out with Chad it was like this, people from all over the world, in all sorts of backgrounds and difficulties made it a point to be Chad’s friend.

Chad, you may think you didn’t get to change the world with Gratipay, but you did, you are the catalyst that will change the world for the better. Thank you.

clone1018··on SKYACTIV-X: first commercial gasoline engine to use compression ignition
They didn't leak oil did they? They burned oil as part of the strokes right?
clone1018··on We are barely halfway done
Jason Scott is really one of the heros of our time. His dedication to preserving history is seriously amazing. I really hope to meet him one day.
clone1018··on Twitch.tv Breached (email from Twitch)
From my email:

We are writing to let you know that there may have been unauthorized access to some of your Twitch user account information, including possibly your Twitch username and associated email address, your password (which was cryptographically protected), the last IP address you logged in from, and any of the following if you provided it to us: first and last name, phone number, address, and date of birth.

For your protection, we have expired your password and stream keys. In addition, if you had connected your account to Twitter or YouTube, we have terminated this connection.

You will be prompted to create a new password the next time you attempt to log into your Twitch account. If applicable, you will also need to re-connect your account to Twitter and YouTube, and re-authenticate through Facebook, once you change your password. We also recommend that you change your password at any other website where you use the same or a similar password.

We apologize for this inconvenience.

The Twitch Team

clone1018··on Ask HN: What small webapps do you know that have a large audience?
https://minotar.net does about 4 billion requests every month. About 15 million unique "visitors".
clone1018··on Microsoft announces the Surface Pro 3
Not if you launch bash.exe, then it's GNU bash, version 3.1.0
clone1018··on How 'DevOps' Is Killing The Developer
Vagrant can help developers who make OS and Games :). It can be used for simple testing on another OSes and environments.
clone1018··on How 'DevOps' Is Killing The Developer
"If you are a developer of moderately sized software, you need a deployment system in place. Quick, what are the benefits and drawbacks of the following such systems: Puppet, Chef, Salt, Ansible, Vagrant, Docker. Now implement your deployment solution! Did you even realize which systems had no business being in that list?"

I'm not understanding this, you can deploy with Puppet, Chef, Salt, Ansible, Vagrant and Docker. With Vagrant you can deploy a bare image and use Chef (or one of the others) or you can just deploy a fully setup box file (like with Docker).

clone1018··on Kill your index.php
Aspen makes it a feature :). The code can still be organized, you can still have models and shared code. I think (although I don't use it in production) that it's quite refreshing.
clone1018··on Steam Removes Game 'Order Of War: Challenge' From User Libraries
Thankfully the community still has an active group of modders so even if Rockstar doesn't fix it, we should eventually get a patch.
← PreviousPage 2 of 6Next →