No, I'm not going to get over it.
These: { }
rock.
And Python clearly rocks, too--because if you accidentally hit tab a few times, or your cat dances on your keyboard, or you fall asleep and your forehead starts typing, why wouldn't you want to have to carefully read the code again to fix it, instead of just re-indenting the code automatically (possible in sane languages, because, surprise! That's what explicit bracketing allows!)
Please don't suggest that it's always an awesome idea to re-understand code to fix indentation. I'm porting some complicated compression code from C, and frankly, once it works, I don't want to have to understand it again if I paste it, or forehead it. Or whatever.
The "white space is significant" thing was tried in the past, and failed. It's a stupid idea. COBOL had an excuse, but we're not using punchcards anymore.
COBOL whitespace: fail.
SNOBOL whitespace: fail.
Python significant whitespace and no bracketing for code blocks: huge fail, because it's 2013, not 1950.
It's an awesome language in terms of expressiveness, but the lack of bracketing is 100% fail. Fine, it's 90% fail. That combined with slow and broken threading means it's a huge missed opportunity.
Will I write Python to contribute to projects that use it? Of course.
Will I voluntarily use Python for other projects? Maybe. Not if I can help it. OK, I'm not sure. Obviously I'm torn. But are there really great alternatives? Perl is a broken mess. Ruby's threading needs help, too. I love C and in some sense its my "native language", but can you really imagine writing a framework like Volatility in C?
These: { }
are awesome.
Proper threading:
is essential. Modern hardware insists. And we should listen.
And yes, I know about Whython. But it's just a toy and it's really too late, right? Because portability for security tools is essential.
Maybe I just need a glass of wine.
Digital forensics, reverse engineering, malware, benevolent hacking, cooking, photography, gardening, and life in New Orleans.
Thursday, December 19, 2013
Tuesday, December 10, 2013
New website
I completely redesigned my website, which is one of the oldest in New Orleans, coming up in 1994, when people were asking WW-what? Unfortunately, the previous design looked about that old, too.
So here's to something fresher.
http://www.cs.uno.edu/~golden
Cheers,
--Golden
So here's to something fresher.
http://www.cs.uno.edu/~golden
Cheers,
--Golden
Thursday, December 5, 2013
Upcoming talks and tutorials
I'm giving a talk on Friday, December 6th at Tulane University on digital forensics research, practice, and privacy in Stanley-Thomas Room 302 at 3pm.
On Monday, December 9th I'll give a tutorial on introductory malware reverse engineering at ACSAC 2013 in New Orleans. My tutorial is M3.
Hope to see some of you there.
Cheers,
--Golden
On Monday, December 9th I'll give a tutorial on introductory malware reverse engineering at ACSAC 2013 in New Orleans. My tutorial is M3.
Hope to see some of you there.
Cheers,
--Golden
Labels:
ACSAC,
new orleans,
reverse engineering,
talk,
tutorial
Friday, November 29, 2013
Cajun Dirty Rice (Golden's take)
Cajun Dirty Rice (Golden's take)
Serves 6-10Prerequisites:
o Heavy cast iron skillet: If you don't have this, cook something
else. Everything will stick, you'll be unhappy, and my car tires are
at stake, right?
o Homemade stock: You can either make it in conjunction with the dirty
rice, particularly if you're serving with, e.g., a whole duck, because
you can steal the wings and neck, or use previously prepared stock.
You'll need at least a quart.
o Patience: Drink a glass of wine or two while you make it. It takes
time and your attention. Not suitable for "occasionally check on it
while I catch up on Green Acres episodes."
CAYENNE NOTES:
I start with 2t if there are guests that just really can't enjoy spicy
food. 3t (as specified) will light you up a bit, but not kill anyone.
4t is better, but then things get seriously spicy and you may
"disable" spice-wimp guests.
STOCK NOTE:
If you don't have any stock, and are also cooking, e.g., a duck, make
stock using carrots, celery, onions, garlic, duck wings and neck, and
use about double the amount of gizzards below (i.e., 1 lb of gizzards)
for the stock. No duck? Use chicken wings, necks, etc. Remove 1/2
pound of the gizzards after 20 mins and set these aside for use in the
dirty rice. Leave the rest in and simmer your stock for two hours or
more, then strain and keep heated.
Seasoning mix:
3 teaspoons ground red pepper (cayenne)
3 teaspoons salt (more to taste at the end)
3 teaspoons freshly ground black pepper
1 teaspoon dried thyme
1 teaspoon dried oregano
3 teaspoons paprika
2 teaspoons dry mustard
2 teaspoons ground cumin
Put all spices into a bowl and mash and mix with a spoon until
thoroughly combined.
Other ingredients:
1 pound ground pork
6 bay leaves
0.5 pounds chicken gizzards, simmered for 20 minutes, then
ground in food processor (SEE NOTE ABOVE ON STOCK!)
2 bunches green onions, chopped fine
6 stalks celery, chopped fine
1 large bell pepper, chopped fine
6 cloves garlic, chopped fine
0.5 sticks unsalted butter
1 quart chicken or duck stock, kept just below a boil
1.5 cups rice (basmati, Jazzmen, or other long grain rice)
0.5 pounds chicken livers, liquified in food processor
In a large cast iron skillet over high heat, cook ground pork and bay
leaves until some fat is released, then add gizzards and cook until
pork is browned, stirring to avoid burning. Stir in seasoning mix, mix
throughly and cook for a few minutes until aromas are released, then
add butter, green onions, celery, bell peppers, and garlic. Cook over
medium heat until vegetables are soft and beginning to caramelize.
Add the rice and mix well.
The rest is finished very much like risotto. Heat should be medium.
Add a small quantity of stock (a cup or so at first, with the amount
reducing as you repeat) and stir (keep stirring!) until almost
completely absorbed. Stir in the chicken livers when you get about
1/2 through the quart of stock. Repeat, until rice is cooked but
still firm. Mushy dirty rice is death.
Remove from heat, allow to rest so the temperature reduces a bit and
everything "gels", stir a few times, and serve.
Labels:
cajun cooking,
dirty rice,
Louisiana
Wednesday, December 26, 2012
Unintended status lights and ill-advised GUIs
My Macbook Pro Retina is in the shop, after developing an "after market" power status light--namely, the right hand USB 3.0 port, which suddenly began to glow brightly. Apparently something metallic got lodged in there and turned the port into a nightlight. Amazingly, the machine still works fine, but the partially toasted port is a little worrisome, thus a trip for repair. The end result is at least two weeks to go with operating systems I don't want to use and ones I do want to use that have grown bad user interfaces.
Windows 2000, XP, --> Windows 7 user interfaces are basically fine. They're nothing special, but years of use yield a stalemate--not perfect, but it works, and what's the point of complaining, especially since I simply don't care about Windows at all, except to make money on taking it apart in forensics cases. I'm through pretending Windows is good for simply getting work done--it isn't. It's good for games, which I don't currently have time for, and it's good for running J River Media Center. If there was a Mac port for J River and a rich uncle died, I'd be completely done and I can guarantee you that Windows 8 would never have gotten installed. For getting real work done, I have Mac OS X and Linux.
The Mac OS X interface takes some getting used to, but humans are adaptable. The fact that the interface is consistent and generally tightly integrated with applications is a good thing and most people who give it an honest try find that they're up to speed quickly and can then concentrate on getting work done, which for better or worse, is mostly what computers are for now. The fact that the hardware is solid, even if it does come at a premium price, and the platform has great software support while providing a solid Unix backbone, is fantastic.
Unfortunately, Linux has had yet another go at becoming the widely used desktop OS it isn't ever going to be. I love Linux for hacking and it's my first choice for programming. But mainstream application support sucks, it's always going to, and that's that. Linux has about as much chance as becoming the desktop OS of choice as Windows 8 phones do of mattering at all in a world of Android and iOS: zero. So breaking what were reasonable and simple Linux desktop GUIs in some attempt to create a bastardized Mac OS X environment was a huge mistake. The simplicity and usability are gone, and replaced with crap like Unity, which clearly shows what Mac OS X would look like without proper application integration. So going "back" to GNOME seems like a reasonable option, except that there's bad mojo here too. For example, why would anything think it's a good idea to disappear the minimize and maximize buttons? If you want to use the left click/middle click functionality to maximize and minimize, etc., fine, but were the familiar buttons for managing windows that everyone uses on every available desktop OS really so offensive that they had to go, only to force users to discover how to re-enable them? It smacks of change for the sake of change, not improvement.
Change is good--I'm not some old curmudgeon pining for his TRS-80 with a homebrew 64K upgrade and a $600 floppy drive--although I occasionally miss it the mystery of those days. But simply changing things to make some artistic statement, that ultimately is simply irritating to users and gets in the way of them getting work done is, well, not special, in my view.
Windows 2000, XP, --> Windows 7 user interfaces are basically fine. They're nothing special, but years of use yield a stalemate--not perfect, but it works, and what's the point of complaining, especially since I simply don't care about Windows at all, except to make money on taking it apart in forensics cases. I'm through pretending Windows is good for simply getting work done--it isn't. It's good for games, which I don't currently have time for, and it's good for running J River Media Center. If there was a Mac port for J River and a rich uncle died, I'd be completely done and I can guarantee you that Windows 8 would never have gotten installed. For getting real work done, I have Mac OS X and Linux.
The Mac OS X interface takes some getting used to, but humans are adaptable. The fact that the interface is consistent and generally tightly integrated with applications is a good thing and most people who give it an honest try find that they're up to speed quickly and can then concentrate on getting work done, which for better or worse, is mostly what computers are for now. The fact that the hardware is solid, even if it does come at a premium price, and the platform has great software support while providing a solid Unix backbone, is fantastic.
Unfortunately, Linux has had yet another go at becoming the widely used desktop OS it isn't ever going to be. I love Linux for hacking and it's my first choice for programming. But mainstream application support sucks, it's always going to, and that's that. Linux has about as much chance as becoming the desktop OS of choice as Windows 8 phones do of mattering at all in a world of Android and iOS: zero. So breaking what were reasonable and simple Linux desktop GUIs in some attempt to create a bastardized Mac OS X environment was a huge mistake. The simplicity and usability are gone, and replaced with crap like Unity, which clearly shows what Mac OS X would look like without proper application integration. So going "back" to GNOME seems like a reasonable option, except that there's bad mojo here too. For example, why would anything think it's a good idea to disappear the minimize and maximize buttons? If you want to use the left click/middle click functionality to maximize and minimize, etc., fine, but were the familiar buttons for managing windows that everyone uses on every available desktop OS really so offensive that they had to go, only to force users to discover how to re-enable them? It smacks of change for the sake of change, not improvement.
Change is good--I'm not some old curmudgeon pining for his TRS-80 with a homebrew 64K upgrade and a $600 floppy drive--although I occasionally miss it the mystery of those days. But simply changing things to make some artistic statement, that ultimately is simply irritating to users and gets in the way of them getting work done is, well, not special, in my view.
Wednesday, September 5, 2012
Macbook Pro w/ Retina Display
My Macbook Pro recently arrived and while I'll miss the slightly smaller form factor of the Macbook Air, it essentially addresses all of my concerns with the Air (and unfortunately adds another, non-Air concern). Not having resigned myself yet to sloth, receding hairlines, and a thickening gut (thanks, skateboarding), I can deal with a pound or so of extra weight.
Read the reviews--the machine is super fast and the display is fantastic--almost. Having paid $1300 to upgrade the Macbook Air's SSD, the 768GB option in the Macbook Pro is fantastic, as is having 16GB of RAM and better virtualization support because of the up-to-date i7 processor.
For viewing photos, etc. the new display is absolutely spectacular. The one issue--and my only complaint at all about this otherwise "best ever" laptop--is the glossy display. It attracts reflections like fruit flies on day old watermelon and mars an otherwise amazing computer for people who like a shades-up lifestyle. Luckily, the keyboard is backlit--plan on working in the dark or with the windows closed when the reflections loom.
Read the reviews--the machine is super fast and the display is fantastic--almost. Having paid $1300 to upgrade the Macbook Air's SSD, the 768GB option in the Macbook Pro is fantastic, as is having 16GB of RAM and better virtualization support because of the up-to-date i7 processor.
For viewing photos, etc. the new display is absolutely spectacular. The one issue--and my only complaint at all about this otherwise "best ever" laptop--is the glossy display. It attracts reflections like fruit flies on day old watermelon and mars an otherwise amazing computer for people who like a shades-up lifestyle. Luckily, the keyboard is backlit--plan on working in the dark or with the windows closed when the reflections loom.
Labels:
laptop,
macbook,
notebook,
retina display
Wednesday, July 20, 2011
New Macbook Airs
The new Macbook Airs are released, along with Mac OS X Lion. If you don't already have one, my recommendation stands--it was and is a brilliant machine. But for upgrades--and I was ready to pull the trigger on a new one--FAIL. The machine needs 8GB of RAM. I burned goats, stared at the night sky, fed the hungry, but the new Air still tops out at 4GB.
Sorry, it's not enough. My road warrior machine needs to run a bunch of OS's under virtualization, sometimes at the same time. The lack of an 8GB option is a fail. Maybe next time. And since I have to wait, I also need a 512GB SSD. Thanks.
Sorry, it's not enough. My road warrior machine needs to run a bunch of OS's under virtualization, sometimes at the same time. The lack of an 8GB option is a fail. Maybe next time. And since I have to wait, I also need a 512GB SSD. Thanks.
Subscribe to:
Posts (Atom)