HNHacker News
TopNewBestAskShowJobs

aduitsis

735 karma · joined December 22, 2011

submissionscomments
aduitsis··on Why I’m Learning Perl 6
Read the article, very informative. Pleasantly surprised to find out that it doesn't mention at all language traits like syntax, but focuses on the features of Perl6's underlying VM, specifically MoarVM.
aduitsis··on Udp.c in Linux kernel pre-4.5 allows remote attackers to execute arbitrary code
I've managed to find one case, the net-snmp package uses MSG_PEEK in the SMUX subagent system, heaven knows why. But since the smux socket is practically always bound to localhost, that is not a problem.

As far as I can tell, a packet from a non-localhost source may be received, but (obviously) the udp_recvmsg does not get called since the system call is not triggered.

Unfortunately, there is a large amount of devices such as home routers, televisions, phones, etc, that are completely impossible to update. So, being aware of cases of software that actually use MSG_PEEK might be useful.

aduitsis··on The relationship between social media use and well-being
Thank you, that was extremely insightful. Sometimes it's a pity there is no Reddit gold equivalent in HN.
aduitsis··on DragonFly BSD 4.8 released
Re: pledge() in OpenBSD:

In FreeBSD for quite some time there is Capsicum and CloudABI has been included in FreeBSD 11. Definitely worth a look, especially the second which is also present in DragonFly.

https://wiki.freebsd.org/Capsicum

https://nuxi.nl/cloudabi/freebsd/

aduitsis··on How to Write a Git Commit Message (2014)
This reminds a recent tweet by Rob Pike:

Goals imposed by git: Commit subject < 65 "chars", commit message lines < 70 "chars".

All in service of the punch card god Hollerithus.

https://twitter.com/rob_pike/status/837410954518286337

aduitsis··on Improving TrueOS: OpenRC
If you have to start several jails upon init, each running its own rc.d start sequence, it can easily take more than a minute. Heaven forbid if you have something like tomcat that takes ages to start, you might be looking at much more.
aduitsis··on Transitioning Firefox's rendering engine from Gecko to Servo
The complete rewrite wasn't initially too good either. It took them years to bring it on par with Netscape 4.7, warts and all.

I've been in a talk of a mozilla developer like a decade or more ago, shortly after they had released the rewrite. His comment on starting a project like that from scratch: "don't". What they intend to do (slowly and gradually transition to Servo) seems consistent with an organization that has learned from this experience.

aduitsis··on Useful Perl one-liners (2013)
If you feel unproductive or uncomfortable with Perl, you should avoid it and use whatever language strikes your fancy.

Many people however are extremely comfortable and productive with Perl, for a wide variety of reasons. It's really an awesome language that has proven its vast usefulness a long time ago.

aduitsis··on AdultFriendFinder was hacked
That's nothing!

My name in Greek has a letter with a double accent. Perfectly valid of course. But many (Greek) sites will reply that this NOT a Greek letter :)

aduitsis··on The Mac Platform Decline
Federighi has already confirmed it.

http://www.macrumors.com/2016/10/28/using-touch-bar-with-boo...

aduitsis··on Begin LaTeX in minutes
For any poor soul that has to write LaTeX for whatever reason but doesn't want to bother installing anything, I cannot recommend https://www.sharelatex.com/ enough.
aduitsis··on Region of the Americas is declared free of measles
A .0001 risk to MY child is not worth protecting everyone else's child.

THIS. Totally insightful.

aduitsis··on Region of the Americas is declared free of measles
If one was to ask you to cite a peer reviewed paper regarding any of this, would it come across as ad hominem and passionate anger?
aduitsis··on MySQL Remote Root Code Execution/Privilege Escalation Exploit
For FreeBSD users out there, I would seem that, in the default setting, the mysqld_safe script is being run as mysql uid by the rc startup script. So by the time mysqld_safe is invoked, root privileges are already dropped.

But that shouldn't dissuade one from taking some preventive measures, e.g. making sure that unnecessary FILE privileges are revoked from accounts and/or making sure that my.cnf is owned by root and only writable by root. Also, as the CVE mentions, do remember that a my.cnf in /var/db/mysql (or /var/lib/mysql for Linux) will override settings in other locations. Touching it as root with an appropriate flag mask should plug that hole too.

An updated mysql package will be soon be available of course.

aduitsis··on Medical guidelines don’t include a diet low in carbohydrates
A 15-second google search reveals this:

http://www.marksdailyapple.com/artificial-sweeteners-insulin...

Some interesting links to pubmed there. Seems that aspartame does not affect insulin fwiw.

aduitsis··on Why do we use the Linux kernel's TCP stack?
Can't give a good technical answer to that. But I suspect that it should be a matter of driver mostly. When you mmap /dev/netmap from userland, the OS TCP/IP stack is disconnected and you get access to the card tx/rx rings. Obviously the driver has to facilitate this.
aduitsis··on Why do we use the Linux kernel's TCP stack?
Yes GENERIC has it! But 10.3-RELEASE doesn't have it by default yet, so I had to compile.
aduitsis··on Why do we use the Linux kernel's TCP stack?
FreeBSD Netmap user here. You actually have to recompile the kernel with "device netmap" added in your kernconf. Piece of cake, after 20' you are good to go. But you need a real network card and the FreeBSD driver must be ready for netmap. Using intel 10Gbps adapters (~200euros) is a safe avenue (FreeBSD ixgbe driver). Even in VMWare, you can pass-through the PCI address of the adapter port to your virtual machine and have it talk to the card directly. Everything works very good.

The gain in performance is mind boggling! Trying to sniff approx. 2+Gbps traffic with Suricata using the "normal" avenue of libpcap ends up dropping a small percentage of the packets. And the machine will waste incredible CPU. Using Suricata with netmap (no need to recompile, Suricata pkgng binary build from FreeBSD comes ready) uses exactly one capture thread and drops ZERO packets. This behavior is stable for days!

Netmap is hands down awesome.

aduitsis··on Celery, non-blocking code and quest against coroutines
I have used Gearman for a long time and I like it a lot, very simple to use, lightweight, does its job and doesn't get in the way. It's one of the few cases where something literally just works.

If one would just want a job queue to fanout jobs in a network transparent fashion, would moving to Celery provide any advantages? With regard to Celery's broker, which is most preferable, Redis or RabbitMQ?

aduitsis··on FreeBSD – a lesson in poor defaults
As floatboth said, there's really no reason to build every minor package by hand. Only those that you want to change the config or their dependencies.
aduitsis··on FreeBSD – a lesson in poor defaults
Yes, that is correct. But this isn't a characteristic of Poudriere, but of FreeBSD ports in general. If you try to build a port and it has dependencies, it will build them as well. Doing pkg search -f yourpackage will fetch the build options that were used when building the remote package if I remember correctly. So one could theoretically ascertain what are the local Poudriere and the remote repo build options.

And yes, I agree, it would be more efficient to just download the packages if the default options are unchanged. But in practice I hardly notice, because for most packages the dependencies are not too deep.

Besides, doing all the dependencies yourself adds a level of consistency. If your package depends on libwhatever.so.6 and there is a major/minor version change in that library, that might introduce a subtle but important API change, I guess you would rather prefer building libwhatever yourself to make sure that everything will work out ok.

aduitsis··on FreeBSD – a lesson in poor defaults
Pkgng and poudriere can very neatly be used in conjunction. You can use pkg to fetch and install all your binary packages from FreeBSD in the same way that apt-get is used in Debian. Most people will do just that.

But, if you'd like to have some ports built by yourself with special options, you can setup a poudriere builder and tell it to periodically make the ports you're interested in. The ports are compiled and packaged into pkgng packages. The final result is an additional private repo which you can totally use along with the official FreeBSD one.

aduitsis··on We Hire the Best, Just Like Everyone Else
I've seen people that have solid proven development experience of more than a decade, investing time preparing for coding interviews(!). And, in a perverse way, it makes sense because they know that they are going to be asked to do something their experience has little to do with and most likely forgotten after university.
aduitsis··on ZFS is the FS for Containers in Ubuntu 16.04
Maybe off topic, but Alex Reece from Delphix had a blog post about a year ago about the ability to remove a disk from a pool.

http://blog.delphix.com/alex/2015/01/15/openzfs-device-remov...

This would imply some kind of rebalancing, if I understand correctly. Which maybe could be considered a form of indirect defragmentation.

aduitsis··on iTerm2 Version 3 Now in Beta
Hello George, many many thanks for all the hard work you've put in. Yours is hands down the most heavily used application many people's macs.

Is it possible to try the beta while still having around the normal version? Is the configuration compatible between the two?

Again, thanks!

aduitsis··on How I Simplified My Phone (2015)
Nova launcher is mentioned in the article and I would like to add my 5 cents about it. Specifically, it is an absolute gem of a launcher and is fast and highly customizable. 100% worth paying for it, though there is a free version with most of the features. I was able to customize it and make it exactly as I wanted it to be, up to details like icon spacing, using custom themes, gestures, unread badges, home screen arrangement and effects, home folders, widgets, app menu arrangement (I prefer it vertical coming from Symbian), etc.
aduitsis··on MEGAChat now includes end-to-end encryption
Author of the Wired article seems to think that Anonymous Coward is an actual Slashdot user :)
aduitsis··on Tcpdive – A TCP Performance Profiling Tool
You don't mention it, but credit where it's due: DTrace, with the creation of which you had a lot to do, can be used in quite the same way in kernels that have added the TCP provider. I think we all owe you a big thanks.
aduitsis··on Tcpdive – A TCP Performance Profiling Tool
Some tools like tcpdump or ss are mentioned, but those tools are not really comparable to what's described here. What I'd like to see would be a rough comparison with the existing web100 set of kernel patches https://web10g.org/ which is used for many many years in conjunction with the Network Diagnostic Tool (NDT) from Internet2. It provides userland visibility into some of the TCP kernel parameters of each connection via a documented interface that can be used e.g. by a special web server that does performance measurements. Also see http://www.measurementlab.net/.

Similar results could theoretically be obtained with the TCP Dtrace provider, which was added in Solaris 11 if memory serves. I am not aware whether FreeBSD or MacOSX have any similar providers, but my info could be outdated.

The idea behind all these approaches is basically to target a specific TCP connection and generate an event each time a TCP packet arrives. For each of those events, a rolling estimation of the RTT is generated by the kernel and is used as a basis for calculations for the congestion window, which limits how many bytes can be subsequently sent. Various timeouts can probably trigger similar events and so on.

(edit: s/packets/bytes/)

aduitsis··on Ask HN: Looking to purchase a software-defined radio, any advice?
Another happy NooElec customer here, wholeheartedly recommended.
← PreviousPage 7 of 9Next →