HNHacker News
TopNewBestAskShowJobs

rgacote

272 karma · joined July 26, 2010

[ my public key: https://keybase.io/raycote; my proof: https://keybase.io/raycote/sigs/sLVuZf9I91LLlbVm1aVKEko-kjsYzYHDshfhK6tePUs ]
submissionscomments
rgacote··on Nginx reaches 33.3% web server market share while Apache falls below 50%
nginx is turning into much more than just a load balancer. Projects such as OpenResty (a full CMS built into nginx) and Kong (an API management service), are built right into nginx using Lua. We've done some minor nginx Lua extensions and are looking to offload activities such as JSON validation into the front-end nginx.

http://openresty.org/ https://getkong.org

rgacote··on Why Japan’s Rail Workers Point at Things
I also ended up instituting a physical task to track my pill taking. Need to take two pills at breakfast and I was always forgetting if I'd already taken them or not. Now, when I sit down to eat I move the pill bottles to the middle of the table. End of the meal, after taking the pills, bottles go back on a shelf at the end of the table. Not only do I no longer forget, more importantly I no longer need to remember, which is one thing off my memory list for the day.
rgacote··on CIA Coding Conventions for Python
Not quite 1:1. Google's very first language rule, "Run pylint..." is missing. Interesting that a tool set for hacking does not focus on basic code review tools.
rgacote··on CIA malware and hacking tools
Glad to see CIA hackers are Dr. Who fans!

"Weeping Angel" makes it look like a Samsung television is off while it is really on and recording the room. Precisely what the Weeping Angel does during the Dr's first encounter.

rgacote··on Entire operating system written into DNA at 215 Pbytes/gram
Organic based file storage would give a whole other meaning to the phrase, "my disk died."
rgacote··on Postmodern Error Handling in Python 3.6
Where 'in your code' is a module. Then log the exception and raise a new exception with a module-specific code. requests.exceptions.RequestException is a good example.

My modules do catch SystemExit and KeyboardInterrupt before the bare exception and simply re-raise those.

rgacote··on 22 Years of Delphi and It Still Rocks
Yes, the cost is ridiculous. Delphi used to be an affordable tool. I've been a big fan of Delphi and would still be developing Windows apps in Delphi, except for the excessive pricing. Stopped renewing my licenses two years ago.

Delphi had the flexibility of Visual Basic without the deployment problems.

Unlike VB, all the controls and libraries were written in Delphi itself, which allowed you to walk through each and every library when debugging problems.

rgacote··on Show HN: Schezzle, a flexible website monitoring tool
The ability to create dynamic POST monitoring checks is interesting. I have an API that requires a current timestamp be applied to each call plus an HMAC header. Typical uptime monitoring service does not allow that.
rgacote··on Ask HN: How to make coding at home not feel like work?
Code to learn or play at home. Explore new languages or frameworks. Select one aspect of a language/framework and dig deep down into the internals.
rgacote··on Password reset links – random strings vs. signed tokens?
My first thought is that if you have the old password then it was not stored properly in the first place. Need to fix that first.

Second thought is that anything that exposes information about the existing password is an information leak just waiting to be exploited.

rgacote··on Ask HN: What are your greatest tips to learn coding?
+1 on read, read, read. Books and articles as well as text.

Pick a topic and explore it in depth. One of my goals for 2017 is to develop a deep understanding of Python asyncio; deep dive into the philosophy and implementation as well as develop best practices for using.

rgacote··on How Unix made it to the top
The original MacOS was also supposed to copy this revision capability -- imagine, built in document versioning. Versioning was surfaced in the API but apparently never implemented. Had to always be set to 0 (1? long time ago).
rgacote··on Ask HN: What is something you do for clients that consistently blows them away?
I've found the Python pyexcel library to be the most flexible option to read/write Excel files. https://pypi.python.org/pypi/pyexcel/0.0.9
rgacote··on Ask HN: Any suggestions for a secure password manager?
I'm fond of pwsafe. Runs on Mac and IOS and shares file in cloud. Like that it is not browser based (though they do have an optional browser plug-in). Excellent for storing hundreds of passwords and security entries. https://pwsafe.info/
rgacote··on New Netflix UI forgets where you were in a video to ‘help’ you
Seen this behavior and thought it was a browser-specific bug since it seemed to appear and disappear based on which browser I was using. Definitely an anti-feature. Most annoying.
rgacote··on Ask HN: Where do you host your non-static sites?
Been using Linode for ages. Excellent performance and support. Typically Python (Django, Twisted, aiohttp).
rgacote··on Ask HN: Why aren't websites adopting client certs in lieu of passwords?
It makes sense within the DoD environment since it is a controlled environment with card readers at every location and pre-installed software on stations. Not scalable to the general public.
rgacote··on Ask HN: What to use after SQLite?
Nice Firebird feature is the ability to embed it and run without a server.
rgacote··on Python Versions Used in Commercial Projects, 2016 Edition
Tried go and fairly quickly headed back to Python. Kept running into annoyances that slowed development. Not being able to get a NULL back from a database without a third-party library was the final straw (go 1.5, might have changed since then).

I understand there's obvious use cases for Go, but an amazing amount of what we do is taking data from place 'A' (web, socket, file), sending it to place 'B' (another web, socket, file), and then returning a result. Go doesn't buy you much that asyncio won't.

rgacote··on Python Versions Used in Commercial Projects, 2016 Edition
My company has been writing a significant portion of their commercial code in Python since version 1.5 and (almost) everything new in Python 3.5.
rgacote··on Python Versions Used in Commercial Projects, 2016 Edition
The only time we're writing new Python 2.7 code is when we're working with Twisted (and they are vigorously migrating to Python 3). All other new code is Python 3.5 based and we're not looking back at all.

Using asyncio has been a delight for a lot of the small, quick web services we need to write (though not a replacement for Twisted). Looking forward to seeing the asyncio infrastructure grow.

rgacote··on I don't understand Python's Asyncio
Long-time Twisted user (and lover) here. Lots of what we build are fairly web-transaction data translators (http to http or http to db APIs). I find that async.io, by avoiding callbacks, allows us to create a more classical-looking code structure. It works for us.

That being said: a) the Twisted environment is extremely robust and battle tested. b) I know that after six months of writing async.io code I'm still just tipping my toe into the capabilities and have yet to fully wrap my head around the details. Would love to see one of those single-topic O'Reilly books take a deep dive into async.io details.

rgacote··on Sanic – Python 3.5+ web server that's written to go fast
Looks like a nice step up from the raw aiohttp I've been writing. Would be interesting to see this wrapped with a forking module. That would provide an nginx-style deployment--select the number of actual threads to run and then run async within each thread.
rgacote··on Let 'localhost' be localhost
And please make it 127.0.0.1 and not ::1. I've found several instances where localhost resolved to ::1.
rgacote··on Bidirectional Replication is coming to PostgreSQL 9.6
Do all nodes need to be up 100% of the time? If not, how long can a node be down without replicating (perhaps because a server is under maintenance).

Does BDR have rules for primary key insertion conflicts? I have a (perhaps odd) situation where identical data is already being written to multiple servers. Currently handling with a custom replication mechanism.

rgacote··on A Fast PostgreSQL Database Client Library for Python/asyncio
Pool does not seem to handle re-initializing connections that are closed by the PostgreSQL database itself (restarts, bad connections, etc.). Am I missing something?
rgacote··on CMU 15-721 (Spring 2016) Database Systems
Living just North of Massachusetts, I got the joke.
rgacote··on Ask HN: Does anyone use DB normal forms in their job?
Agree. Any database design over two tables should include review of NF.
rgacote··on Ask HN: As a Python developer are you interested in learning Go?
Been writing Python code for about 10 years (C/Pascal/Assembly-style languages for 20 years prior to that) and was interested in Go for specific advantages: - coroutines - channels - simple one-file delivery - cross platform (I tend to develop on Mac and deploy on Linux or Windows)

After writing Go for about a year now, I'm switching back to Python -- specifically Python 3.5.

My (personal) issues with Go: - No basic support for NULLs in database responses (yes, there are third-party modules). - XML manipulation is a pain. - third-party module management problematic. - poor debugging environment. Switching back to Python and stepping up to Python 3.5 (and pyInstaller for single-file builds) addresses all the above pain points, plus introduces asyncio which is a seriously pleasant way to build asynchronous web/database applications. Rewrote a 1,000 line Go application in about 300 lines of Python using asyncio.

In addition to the specifics, writing in Go simply was not enjoyable. A typical end of the day with Go felt like I'd (usually) gotten the tool to do what I needed. Contrast that to a typical end of the day with Python feeling like I'd been using a tool that always supported me.

I'll continue to watch what Go is doing, but I'm back in Python (and playing with Elixir) for now.

rgacote··on Uvloop: Make Python Networking Great Again
Look forward to trying this. Good to see so much attention being paid to Pythons async architecture.
← PreviousPage 4 of 6Next →