HN user

ice799

1,136 karma

@joedamato github.com/ice799 joe at packagecloud.io

Posts28
Comments40
View on HN
blog.packagecloud.io 10y ago

Bootstrapped startup packagecloud.io adds support for Python package repos

ice799
4pts0
enterprise.packagecloud.io 11y ago

Show HN: Launched onpremise version of our bootstrapped startup, packagecloud.io

ice799
2pts0
packagecloud.io 12y ago

Show HN: Packagecloud – Hosted Package Repositories

ice799
45pts17
timetobleed.com 13y ago

Notes about an odd, esoteric, yet incredibly useful library: libthread_db

ice799
7pts0
timetobleed.com 13y ago

How a crazy GNU assembler macro helps you debug GRUB with GDB

ice799
11pts0
blog.boundary.com 14y ago

A deep dive to find a nasty bug

ice799
77pts5
timetobleed.com 15y ago

The Broken Promises of MRI/REE/YARV

ice799
149pts65
timetobleed.com 15y ago

An obscure kernel feature to get more info about dying processes

ice799
132pts28
timetobleed.com 16y ago

Dynamic symbol table duel: ELF vs Mach-O, round 2

ice799
5pts0
timetobleed.com 16y ago

American Express fails miserably at basic security

ice799
252pts69
timetobleed.com 16y ago

Dynamic Linking: ELF vs. Mach-O

ice799
62pts0
timetobleed.com 16y ago

Descent into Darkness: Understanding your system’s ABI is the only way out

ice799
54pts21
timetobleed.com 16y ago

Memprof: A Ruby level memory profiler

ice799
70pts3
timetobleed.com 16y ago

Hot patching inlined functions with x86_64 asm metaprogramming

ice799
7pts0
timetobleed.com 16y ago

Rewrite your Ruby VM at runtime to hot patch useful features

ice799
24pts10
timetobleed.com 16y ago

Defeating the Matasano C++ Challenge with ASLR enabled

ice799
23pts0
timetobleed.com 16y ago

Extending ltrace to make your Ruby/Python/Perl/PHP apps faster

ice799
61pts8
timetobleed.com 17y ago

Enabling BIOS options on a live server with no rebooting

ice799
23pts2
timetobleed.com 17y ago

Yo Dawg: Using a package management system to install a package management system

ice799
13pts5
timetobleed.com 17y ago

Things You Don’t Know About User IDs That Will Destroy You

ice799
69pts16
timetobleed.com 17y ago

MySQL Doesn’t Always Suck; This Time it’s AMD

ice799
63pts12
timetobleed.com 17y ago

A/b test mallocs against your memory footprint

ice799
25pts7
timetobleed.com 17y ago

Fibers implemented for Ruby 1.8.{6,7}

ice799
8pts0
timetobleed.com 17y ago

How often do you check your RAID/BBU/consistency status?

ice799
2pts0
timetobleed.com 17y ago

PXE booting: easily getting what you want on to remote servers

ice799
8pts0
timetobleed.com 17y ago

I/O models: how you move your data matters

ice799
8pts0
timetobleed.com 17y ago

Plugging Ruby Memory Leaks: heap/stack dump patches to help take out the trash.

ice799
8pts0
timetobleed.com 17y ago

Short and informative overview of different threading models

ice799
3pts0

Hi!

Just for fun: man reprepro and search for 'corrupt' :)

You can use all your normal tools to upgrade, install, and remove packages as you normally would. So, for, Debian-based systems, apt-get upgrade, install, remove, etc all work as you expect.

We provide SSL, gpg, and fine-grained access control all out of the box. Fine-grained access control doesn't really exist with reprepro or createrepo or other tools and you'd have to build it yourself.

Also, you don't need to worry about backups, the numerous bugs in all the repo creation tools, and we have chef and puppet modules to help deploy this across your infrastructure.

We have support for multiple linux distributions in a single repo (quite a pain to deal with yourself) and best of all we also support pushing multiple versions of a single package to a repo -- something that reprepro does not support, but has been in progress for ~4 years [1].

[1] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=570623

I thought it was pretty crazy that a tweak to prevent XFree86 from breaking on 64bit systems + support for the ELF small code execution model would later result in pthread_create overhead so large that creating threads on a P4 would be as slow as creating threads on a 386.

But, hey, maybe it isn't that crazy to you.

hi. linux does have this.

you just strip the debug symbols out (and put them somewhere safe). then write a .gnu_debuglink section to the stripped ELF binary with a CRC that matches the stripped symbols.

once something bad happens: you just take the core dump, the symbols you have tucked away, and you are able to debug just fine.

the gzip bug mentioned did not segfault. it simply corrupted the gzip file in memory. not that selective son.

imma talk the way i talk and dont give a fuck if you like it or not.

You are totally missing the point, bro.

The question really is: how much data corruption is occurring that _does not_ cause world ending segfaults? THAT is what you need to worry about. Check yourself before you wreck yourself.

registers are scanned, too. the bug is not that the ref is in a register. the bug is that there are no refs anywhere. not on the stack and not in any register.

grossly exaggerated? bro, i gave the raw numbers in a table above the graph. if i were trying to lie i wouldn't have given the numbers.

i took the graphs as-is from goog docs and put em in my blog post.

i just zero-based the vertical scale. you can close your book about lying with stats or whatever the shit.

Chill, son.

1.) I can provide the codez. I'll add a link to the article.

2.) Yeah. If you read the article, it reproduces on 64bit code, too.

3.) Not true. Try gcc (Debian 4.3.2-1.1) 4.3.2. The version I mentioned that I used in my post.

4.) etc

5.) Read the article.

I'll add some more shit and reply to you again when its online. I need to eat breakfast and head to the office but I'll make you happy soon.

This.

I built this because I like working on this sort of thing and because it lowers the bar for everyone else who doesn't know how to or want to rebuild their binaries.

Also, depends a lot on your infrastructure. Sometimes it's easier to distribute and maintain patched Rubies, and sometimes it's easier to just require a ruby gem. The gem is designed and built in such a way that it should be resistant to most changes made to the Ruby VM.

A C++ Challenge 17 years ago

Fun challenge! I wonder when the contest closes? I'd like to blog about my solution. Hopefully my email to matasano doesn't get eaten by a spam filter :/

Firstly - thanks for reading the blog post.

Some of the things mentioned help to reduce CPU usage so that the CPU can do more useful things (TSO, IOAT, DCA, NIC irqs, etc). ioat moves a surprising number of bytes for the CPU. You might be surprised at how many.

I probably could have (and should have) included a bit more variety, though.

Thanks for reading.