HNHacker News
TopNewBestAskShowJobs

robertelder

3,325 karma · joined May 18, 2011

I enjoy writing computer programs.

@RobertElderSoft

submissionscomments
robertelder··on P vs. NP
The Wikipedia page has a section that does a pretty good job I think:

https://en.wikipedia.org/wiki/P_versus_NP_problem#Consequenc...

"Similarly, Stephen Cook says:

...it would transform mathematics by allowing a computer to find a formal proof of any theorem which has a proof of a reasonable length, since formal proofs can easily be recognized in polynomial time. Example problems may well include all of the CMI prize problems."

robertelder··on Prime Number Spiral
But there is a pattern. It's just a simple sum over all non-trivial zeros of the Riemann Zeta function[1]. It will pop right out at you if you take a look at the proof for the Riemann hypothesis (an exercise left to the reader). Also, speaking of Riemann, division by zero is also spoken for[2]

[1] https://en.wikipedia.org/wiki/Explicit_formulae_(L-function)

[2] https://en.wikipedia.org/wiki/Riemann_sphere

robertelder··on Ask YC: Any Updates on the Basic Income Project?
I came to the same conclusion when thinking about this too. It might even make sense to counsel people too about what they can do with the extra time/money. There are a lot of amazing things to do in the world, but most people will always try to emulate their immediate environment.

For some people, I would expect they would end up getting hooked on something unwholesome (drugs for example) with their newfound free time. You could probably make a huge difference in this just by suggesting the right things at the right times.

robertelder··on Show HN: JavaScript Cache Size Measurement
I've also noticed something in my logs that is stupidly requesting these 'apple-touch.png' icons over and over thousands of times. It seems to discover links from HN. Even if you create a file with that name, it will just keep requesting it over and over.
robertelder··on Show HN: JavaScript Cache Size Measurement
$nslookup www.fromwhenceitca.me Server: 192.168.0.1 Address: 192.168.0.1#53

server can't find www.fromwhenceitca.me: SERVFAIL

$ dig www.fromwhenceitca.me

; <<>> DiG 9.10.3-P4-Ubuntu <<>> www.fromwhenceitca.me ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 23762 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;www.fromwhenceitca.me. IN A

;; Query time: 209 msec ;; SERVER: 192.168.0.1#53(192.168.0.1) ;; WHEN: Sat Dec 10 20:37:22 EST 2016 ;; MSG SIZE rcvd: 50

From Waterloo Canada

robertelder··on Don Libes' Expect: A Surprisingly Underappreciated Unix Automation Tool
I was thinking more of code examples. Expect is capable of doing much more than just the basic 'expect', then 'send' pattern.

For example, this article: 'Most programmers don't know what Expect can do for them'

http://wiki.tcl.tk/3913

robertelder··on Don Libes' Expect: A Surprisingly Underappreciated Unix Automation Tool
Do you have any links to examples of what it is really for? I've had a hard time finding code examples because the reasons listed at the bottom of the article.
robertelder··on We turned $140k on Kickstarter into $40k debt and broke even
Idea: Give them away or destroy them in a spectacularly interesting way that millions of people will want to watch:

https://holidayhole.com/

https://www.youtube.com/channel/UCcMDMoNu66_1Hwi5-MeiQgw/fea...

https://www.youtube.com/user/Blendtec

https://www.youtube.com/watch?v=fXtSlEW1XmE

robertelder··on Google’s AMP is a gilded cage
I did a technical review of what I felt were the major pros/cons of implementing AMP pages:

http://blog.robertelder.org/adding-support-for-amp-pages/

Edit: To save you a click, here are some of the key points:

- You can't use Javascript on AMP pages, but you can put Javascript in iframes or substitute the javascript feature for an existing amp-component.

- AMP pages require that Javascript is enabled.

- In order for pages to pass AMP validation you must include the "https://cdn.ampproject.org/v0.js" script on AMP pages. Furthermore, I believe you are required to hotlink to the ampproject version as I have been unable to pass validation with a locally served copy of these scripts.

- You can't use inline 'style="..."' tags

- AMP uses inline 'style="..."' tags on rendered markup

- External stylesheets are not allowed

- You will likely want to maintain a separate AMP view and a non-amp version of your pages.

- The DOM structure of AMP pages will be slightly different than for desktop pages.

I wouldn't say that I like AMP, but since the world is going mobile I figured I should try to become and early adopter for AMP. In a way, I kind of hope that the AMP projects gets abandoned, but if that happens then I'll have wasted a bunch of time adopting it.

robertelder··on IP Over QR Code
It's funny I actually had the idea of doing this exact project yesterday, although I would probably have never gotten around to it.

Rather than just being a fun little project, I could see there being a few practical uses for this: If you could modify the protocol so that the 'QR code' could dynamicly resize down to be in the worst case 1 pixel for the whole screen, you could potentially do line of sight communication using just laptops between tens of kilometers away[1]. There aren't a lot of situations where you'd need that, but I could see scientists on a remote research mission finding in handy to be able to just pull out their laptops and send messages between mountain tops by just double-clicking some kind of application.

A crappy webcam that could do 10 frames per second that was looking for an entire monitor in the on/off state could send O(10) bits per second which would be useful enough to send small text messages. If you used a telescope, you could actually send real amounts of data.

[1] https://www.technologyreview.com/s/539826/how-far-can-the-hu...

Edit: Upon close inspection of the article I linked, it says later in the article that you could only see the flame 2.76 km away, but I don't think that changes my point very much since a laptop screen would be brighter.

robertelder··on Why Chrome 53 Is Rejecting Chase Bank's Symantec Certificate
I Googled it and found this:

https://www.reddit.com/r/sysadmin/comments/42xd4i/chrome_dan...

robertelder··on Why Chrome 53 Is Rejecting Chase Bank's Symantec Certificate
I'm using Chromium on Ubuntu 16, and I've been trying to visit

https://www.nist.gov/

but I don't even get an option to 'browse insecurely' under the 'Advanced' link.

In my experience that past couple days, I get the warning on about 10-25% of major web sites.

robertelder··on Be careful about what you dislike
> I now consider it a fundamental benchmark...

Sorry to be pedantic, but I just wanted to point out the paradox you get by holding such an opinion so strongly.

robertelder··on Robert Elder Software Linux Operating System
Yeah, there are a few situations where it's a difficult call between getting them used to the 'real' environment vs holding their hand and telling them "bash: syntax error near unexpected token `|'". If I end up modifying it too much, then they start learning an alternate thing that isn't portable knowledge, but in this case I think it should be OK. I would make sense to possibly have a graduated progression where you expose them more and more to the real horrors of using the command line. I guess I'll see how it evolves.

Another couple reasons I patched bash: Being able to detect when users use tab completion and using the up key to check history. Those are 2 massive productivity enhancements, and I wanted to created modules where I can verify that they used these.

robertelder··on Robert Elder Software Linux Operating System
I tried very hard to create the feature I was looking for without changing the source, but it just wasn't possible. I went through 3 or 4 prototypes, and eventually decided to just change bash itself (which was a good call in hindsight). I've had to make a few more change since too.

The source patch is located at

~/.fop/patched-executables/bash-4.3.30-post-patch-call-python-hook.patch

is has been applied after the LFS bash patch.

This patch is extremely sloppy and breaks certain things, but it does what I need for now. The way it works for bash commands is before handing a line of input off to be processed, it calls an external python hook which decides whether that line of input should be ignored or not, gives the hook a change to perform it's own custom behaviour (such as print an error message).

robertelder··on How to Get Fired Using Switch Statements and Statement Expressions
Thanks, I modified it from an example one but introduced some mistakes. I've corrected it and tested it this time.
robertelder··on How to Get Fired Using Switch Statements and Statement Expressions
Fixed.
robertelder··on How to Get Fired Using Switch Statements and Statement Expressions
Update: Moved about 7 small images and css into S3 and page load time is now < 3 seconds with 380 users on site. I'm about 90% sure that my efforts caused the improvement.

It's still up, but it's super slow with > 20-60 second page load times. I just moved some images into s3 which made it a bit faster. There are currently 267 people on the site according to google analytics.

robertelder··on The Clockwise/Spiral Rule of C declarations
I used to think of the spiral rule as being a good guide, but then a commenter on HN showed me otherwise:

https://news.ycombinator.com/item?id=12053206

robertelder··on Ask HN: How are all of these data dumps of user info happening?
I think in most cases it isn't publicly disclosed what the true root cause was. Most cases probably fall into 2 categories:

1) Companies are to embarrassed to admit they made a mistake, and furthermore there is no legal or security benefit to publicly declaring "We have an open SQL injection on xyz url."

2) Companies don't even know how or when they got hacked. Senior devs may have reached a point of thinking "There are so many moving parts here and I have so many bugs to fix that it's not even worth time trying to try to make them all secure against a targeted hacker." When they do get hacked, it may be the first time they realize that they haven't been logging everything that might allow them to actually trace the origin. If the attack happened far in the past, necessary information required to investigate may have been lost long ago.

robertelder··on Easy Amazon EC2 Instance Comparison
It's worth noting that the performance of a given EC2 instance type can vary depending on what hardware you end up with, and that this is not consistent with the 'instance type'. One 'instance type' can be associated with multiple underlying CPUs that have different performance:

http://blog.robertelder.org/a-weird-old-tip-about-ec2-instan...

robertelder··on Ask HN: How do you get people to use your product when you suck at networking?
From the YC lecture series:

Lecture 4 - Building Product, Talking to Users, and Growing (Adora Cheung)

https://www.youtube.com/watch?v=yP176MBG9Tk

robertelder··on Defending Against Hackers Took a Back Seat at Yahoo, Insiders Say
If Yahoo had indeed positively identified the breach to have originated from a 'state-sponsored actor', it is possible that their thinking was something along the lines of "Resetting the passwords wouldn't help us much anyway against someone with so many resources."

Of course, I'm just speculating based on what I see in news reports. Perhaps the 'state-sponsored' actor was just PR spin to save face? I really just don't know what to think.

robertelder··on My Most Important Project Was a Bytecode Interpreter
One of the moments where I really started to feel like I was starting to 'see the matrix' was when I was working on a regex engine to try to make my compiler faster (it didn't, but that's another story). The asymptotically fast way to approach regex processing actually involves writing a parser to process the regex, so in order to write a fast compiler, you need to write another fast compiler to process the regexes that will process the actual programs that you write. But, if your regexes get complex, you should really write a parser to parse the regexes that will parse the actual program. This is where you realize that it's parsers all the way down.

When you think more about regexes this way, you realize that a regex is just a tiny description of a virtual machine (or emulator) that can process the simplest of instructions (check for 'a', accept '0-9', etc.). Each step in the regex is just a piece of bytecode that can execute, and if you turn a regex on its side you can visualize it as just a simple assembly program.

robertelder··on Principles for Programming Languages for Learners
I taught a few programming courses (C programming) this past year at a local college and I went for basically the same route: Get them to type out small simple programs in gedit, and compile them on the command line with a simple make file.

Modern programming is often so high-level and tool assisted that it is difficult for a newcomer to understand the difference between what they did and what the computer did. Many of them previously programmed using the arduino programming environment (which I haven't ever used), but I have been told that it does a lot of stuff automatically for them, they don't even write the 'main' method. Many of the students started trying to do all kinds of crazy stuff when trying to make a simple 'hello world' C program, including various Windows headers (on Linux), trying to do GPIO pin stuff etc. I think it can be beneficial to keep the number of new things as small as possible, and build up from there.

robertelder··on Ask HN: I am doing $2M annually as a solopreneur and need your help
This lecture series specifically talks about the different problems faced at various stages of scaling, and it includes a lot of reputable people who have actually done it:

https://www.youtube.com/watch?v=s3RrVmv5WwA

The YC series is of course good too:

https://www.youtube.com/watch?v=CBYhVcO4WgI

I'm not actually qualified to answer your question, but it sounds like you haven't discovered a bottleneck in your business yet, and until you do, you probably shouldn't hire any employees.

robertelder··on Show HN: HTML5/WebGL/WebSocket MMO tanks – Server in C++
I pickup up 2 red balls and got teleported somewhere. What do red balls do?
robertelder··on Ask HN: What features on HN do you use the least?
Filtering by 'show' or 'ask' at the top. I used the site for years before I noticed that they existed.
robertelder··on Canada’s tech sector is hemorrhaging talent [audio]
A huge factor that I don't see any comments about yet, is the exchange rate. Look at this chart of the USD/CAD in the past 3 years:

http://www.xe.com/currencycharts/?from=USD&to=CAD&view=10Y

A 35-40% swing in the purchasing power of the currency is a pretty big deal.

robertelder··on Why Linux sucks and will never compete with Windows or OS X
I just bought a new laptop (GE62 6QD MSI Apache Pro), and I spent the last few days trying to get Ubuntu 16 to run on it. I'm in pretty good shape now, but there are still issues with the microphone and camera (I wrote about the process here http://blog.robertelder.org/installing-ubuntu-16-linux-ge62-...). I've only installed Ubuntu/Linux on a few different laptops, but the process does seem to be getting worse the few times I've done it. The worst part tends to be getting the video cards and wifi to work.

It really makes me wonder what the future will be like. Will we reach a breaking point where someone (or some group) takes on the responsibility of making this stuff work? I can't see people abandoning Linux for Windows, because Windows seems to be decreasing in quality as well. Are we doomed to just have computers that don't work properly?

← PreviousPage 4 of 7Next →