HNHacker News
TopNewBestAskShowJobs

minaguib

417 karma · joined December 9, 2011

Mina Naguib, firstname at lastname dot ca, https://www.linkedin.com/in/minaguib/
submissionscomments
minaguib··on Bangladesh Bank exposed to hackers by cheap switches, no firewall
At least from the networking perspective, it's a solved problem. You assume the network is insecure, and encrypt the traffic.

This can be done on the protocol level, or wrapping the protocol with a secure shell like SSL/TLS, or wrapping everything with an encrypted VPN tunnel like IPSec.

minaguib··on I've Had Enough and Today Everyone Has the Phoronix Premium Experience
I work in ad tech, and indeed some areas and experiences are less-than-optimal, especially in RTB.

Unless the site owner is selling highly-custom take-overs, skins or other non-standard formats, ad interference with site content and layout is almost entirely eliminated via the use of iframes.

minaguib··on Gogs – Go Git Service
End-user usability feel (perceived speed) is all that matters, no ?
minaguib··on Ask HN: Who is hiring? (November 2015)
AdGear Technologies Inc - Montreal, Quebec, Canada | Full-Time

We're hiring several positions - for full details see http://adgear.com/company/careers/ and get in touch / email jobs@ - be sure to mention you're responding to the HN post :)

Software engineering:

  * Ruby on Rails Developer
  * Senior iOS Mobile Developer
  * Data/Analytics Developer
Other:

  * Technical (html/JS-heavy) Ad Operations Specialist
  * Digital Ad Operations Specialist
  * Platform specialist
  * Content Marketing And Social Media Specialist
minaguib··on How to Explain Zero-Knowledge Protocols to Your Children (1998) [pdf]
IMO a better introduction to ZKPs is http://blog.cryptographyengineering.com/2014/11/zero-knowled...
minaguib··on 30 second arithmetic challenge
Please allow easy editing of previous wrong guess
minaguib··on Guess my word
I was also inspired by this and wanted something with a bit more polish I can get my kids excited about:

http://midword.com/

minaguib··on Guess my word
It would be nice if, while you're you're guessing, the words in your own history have an indicator of whether each was too high or too low.
minaguib··on Fenwick Trees
BTW, to reason a bit about this statement in a simpler fashion: "any natural number “K” can be obtained from sum of other natural numbers (less than K), where these natural numbers are powers of 2"

Think what you're doing mentally when converting a binary number to decimal. For example: 101001

Each one of those 1s represents 2^position, all added together, so:

  41 =   32 (100000 = 2^5)
       +  8 (  1000 = 2^3)
       +  1 (     1 = 2^0)
Since any natural number can be represented in decimal and binary, the rule applies that each binary 1 is the value of 2^that position, all summed up.
minaguib··on Linux futex_wait() bug – update to latest patches now
Do you know if this also stands for non-XEONs ?
minaguib··on Linux futex_wait() bug – update to latest patches now
Can anyone recommend a way to check a linux server for whether it's running on a Haswell CPU ?

I'm guessing perhaps checking /proc/cpuinfo for the XEON version v3, or looking for flags 'hle|rtm|tsx' would work - but something more definitive would help with mass-auditing.

minaguib··on Call me maybe: Aerospike
Perhaps also worth pointing out that in RTB, quite often you won't know if you've actually won the auction or not for a few seconds later (when the exchange calls you back with a win notification, or you get it directly via a pingback from the user's device)

During that delay you might have actually already processed new bid requests (auctions) for the same user.

Depending on the order's characteristics and how much you're willing to deviate from target - especially when observed within a small time window - the above poses additional challenges w.r.t. overspending.

minaguib··on Point of Sale Register Outage at Starbucks Stores in U.S. and Canada
Getting a cup of coffee from your local café should not require its point of sale to require communication with a central server (unless you're doing money/account balance transactions).

I don't see why the PoS's can't accumulate transaction logs locally and transfer them later.

minaguib··on Ask HN: Who is hiring? (March 2015)
AdGear is hiring an Analytics Developer, full-time in Montréal, Quebec, Canada

The ideal candidate for this position is well-rounded, with feet in both the database world as well as software development. SQL should be first language, but we'll happily come to an agreement if it's your second or third. You should also be very comfortable with java, linux and another glue language like bash/ruby/python. Very nice to have experience (but not required) would be big-data (HDFS, M+R, Hive) and analytical databases like HP Vertica.

If you're interested or have questions, contact me or jobs@adgear.com

http://adgear.com/company/careers/#AnalyticsDevMontreal

minaguib··on 1Password on Linux
It's too bad that LastPass feels like a highschool project by a dude and a couple of friends.

Zero consistency between the browser plugin, the vault, the app, and the mobile app. Even within the vault there's little consistency between different panes.

I'd like to believe that they know what they're doing crypto-wise, but damn that UX feels mickey-mousey. Even something as simple as using up/down over the autocomplete list misbehaves.... ;(

... and don't get me started on Basic Auth support on Chrome OSX

minaguib··on A combinator-based parsing library for C
Be sure to check out other code written by Douglas and the team at RedJack - for example this sick LMAX Disruptor C implementation: https://github.com/redjack/varon-t
minaguib··on How Verizon fixed a recent backbone provider issue
I've blogged about an almost exact replica of this in 2012: http://mina.naguib.ca/blog/2012/10/22/the-little-ssh-that-so...

Funny enough, I'm a direct client of EdgeCast and I believe I witnessed a case of file corruption on their layer last week.

minaguib··on “What happens when you type Google.com into your browser and press enter?”
I really enjoy asking that question when interviewing people, followed by "in as much or as little detail as you'd like".

This typically happens 3/4 of the way in, and allows me to peek and poke quite a bit - it also allows the interview, if it hasn't already, to switch from a rigid process to a fluent organic discussion.

minaguib··on Game Theorists Crack Poker
I'm missing something:

    "But Bowling and his colleagues have demonstrated that their algorithm always wins in the long run."
So how does it fare when its opponent is the same algorithm ?
minaguib··on Asynchronous filesystem replication with FUSE and rsync
This is very interesting indeed for the described use case. AFAIK the other alternative is lsyncd
minaguib··on RainLoop Webmail: Simple, modern and fast web-based email client
The classical "broken pipe" typically occurs when a process is writing to a closed pipe, not reading (which usually gets a vanilla EOF)

See my longer reply to tenken for some other scenarios I could think off.

minaguib··on RainLoop Webmail: Simple, modern and fast web-based email client
FWIW I used the word "pipe" very loosely to mean everything to the left of the interpreter. That means the unix pipe itself, but also the curl program, OS feeding it, network it's on, remote server feeding it, etc.

There are several scenarios where that logical pipe can fail. It doesn't have to happen cleanly on a 64-kb unix pipe buffer boundary. Some examples may include someone bouncing an office router and all TCP connection states getting reset, a neighbor microwaving lunch and WiFi radios croaking, a carrier having networking issues and connections timing out, the remote server restarting the web server after a software upgrade, etc..

I'm not sure curl (even with -s) will gracefully handle all of these cases defensively (doubly-so if the HTTP server was sending back chunked-encoding without explicitly specifying a Content-Length)

(anecdotally, since you mentioned flipping bits, it's possible but unlikely until you have to deal with it - http://mina.naguib.ca/blog/2012/10/22/the-little-ssh-that-so... )

At the end of the day, having not even considered what an active attacker could do but just what could naturally blow-up a small percentage of the time I'm inclined to say "that's bad, mmkay?" and try to persuade developers not to push that as a safe installation method. Even if they've triple-checked that the code they've written + interpreter can not possibly do harm in that case, the signal we should be sending (primarily to end-users) is that this may be an unsafe operation.

minaguib··on RainLoop Webmail: Simple, modern and fast web-based email client
There's a small difference.

With a normal download, you're likely to wait until it's done before invoking it.

With a pipe-to-interpreter, the interpreter (php/sh/etc..) is possibly interpreting code as it receives in batches of (line/chunk/etc.).

A danger therein lies in the possibility of an unexpected pipe interruption (network, or software) feeding something that's technically runnable by the interpreter but logically broken.

Imagine coming down the pipe is "rm -rf /tmp/installer-data" but curl uses too much memory and the linux OOM killer nukes it and sh receives only "rm -rf /"

minaguib··on Jq: A lightweight and flexible command-line JSON processor
If you get and build latest from master, you get the --sort-keys commandline option

And just like that, you have an amazing base for diffing json documents of arbitrary complexity:

    vimdiff <( cat doc1 | jq --sort-keys . ) <( cat doc2 | jq --sort-keys . )
minaguib··on Employee Equity
That really makes no sense.

"Here are options to buy 10,000 shares"

"Umm. Thanks. Is that a lot ? Is it peanuts ?"

Without knowing the second number you might as well not be having that discussion.

minaguib··on Digital Ocean needs to start showing outages on their status page
In any infrastructure beyond the tiny/small stage, there are always pieces that are failing or have failed. In some cases these failures are observed by customers. In other cases they are not.

It would be unreasonable to have a company-wide status page that constantly lists "some customers are experiencing some problems". That's not the point of the status page - the status page, as the author suggested, is there to highlight issues that are affecting a significant section of the customer base.

The right thing for Digital Ocean to do in cases like this is to allow you, in your private dashboard, to see the problem and follow up on a master ticket for escalation and resolution.

minaguib··on Postgresql 9.3 Released
For those unfamiliar with the issue, you can see it in action on my blog post written from the perspective of an app developer: http://mina.naguib.ca/blog/2010/11/22/postgresql-foreign-key...
minaguib··on Postgresql 9.3 Released
I'm super-excited that this release includes the FOR KEY SHARE lock granularity (used by foreign keys) - this is a big win for web app developers - I've blogged about it here 3 years ago: http://mina.naguib.ca/blog/2010/11/22/postgresql-foreign-key...
minaguib··on Better line numbers for Vim
Plugin functionality aside, the use case in the video demo is IMO better addressed by not worrying about line numbers at all.

Position the cursor at the start of the function, then d} (delete 1 paragraph forward). Alternatively if you don't have a clean paragraph boundary, use V to start a visual highlight, then move the cursor (up,down,},10down,whatever) to the end, then d to delete.

Then } (move 1 paragraph forward)

Then p to paste

minaguib··on Ask HN: Who is hiring? (June 2013)
Montréal, Quebec, Canada. Full Time.

AdGear ( http://adgear.com/ ) is an internet advertising platform with support for both classical publisher ad serving, advertiser ad serving, and RTB (Real-Time Bidding) exchange technologies.

We are looking for a linux hacker/sysadmin with a deep knowledge of basic hardware, linux internals, networking.

Some experience with distributed systems, big data, and a scripting language or two is a definite plus.

Interested/would love to chat ? Email me at mina@ the company's domain name. Full job description here: http://adgear.com/jobs/#linux-system-administrator

← PreviousPage 4 of 5Next →