HNHacker News
TopNewBestAskShowJobs

nanoscopic

394 karma · joined October 11, 2012

Software Engineer. Speciality: Metaprogramming. Github: https://github.com/nanoscopic Hacking stuff: https://livxtrm.com
submissionscomments
nanoscopic··on Piccolo, a tiny CNC bot
I agree that it may in fact be reasonable to pay $150 ( perhaps even $200 ) for such a thing. The real cost is much higher due to a need to solder components. This is an especial blocker for people with no soldering experience.

Really, the whole thing would make sense if it had a full cost breakdown to make a single one of them, getting the parts mostly from one location, rather than a random mix, many requiring a minimum purchase of X of them, instead of one.

It's a really cool project, it is just unclear exactly how much effort and money it would cost to make one of these. ( and what tools would be needed )

nanoscopic··on Piccolo, a tiny CNC bot
If you get the parts cut via the linked online place ( ponoko ) it costs $48 just to get the cut parts. This obviously doesn't include the rest of the parts. Buying all the needed parts for this would cost $130 ( am including the $48 here ) each if you build them yourself. You'd have to build at least 5 to get this price. Realistically making one of these would cost around $200.

It will never be sold commercially, since the designs are CC by-nc-sa.

Unless you are hardcore about building cute expensive tech toys, best move along.

nanoscopic··on Lone Geniuses Are Overrated
100 times this. I excitedly read the article expecting a clear concise explanation ( albeit one with bad premises ) explaining how lone geniuses only accomplish things through others, and that they can be done without. The article fails to deliver on this title entirely.
nanoscopic··on Manyland
Seems awesome from what I am seeing so far from just poking around.

Could you add a way to import assets easily so that they can be developed using other tools or imported?

nanoscopic··on Google Timer
You can google "timer 4 minutes" or "timer 200 seconds" to get equivalent timers. The reverse also works "3 minute timer" as described by herf. Google bug: "Timer 4:50 minutes" gives you a timer for 450 minutes.

Also "timer 450" gives you a timer for 450 minutes. Oddly "timer 62" does not give you a timer at all.

"timer 6h" gives you a timer for "19h 28m 55s". What?

1a = 2 27 06

1h = 14 26 24

1o = 2 25 56

1p = 2 25 37

1 = 2 24 59

1! = 2 24 04

1@ = 2 23 51

1# = 2 23 36

nanoscopic··on CSS: It was twenty years ago today
I was looking for the following points when reading through this interview:

1. A mention of the box sizing model ( which is imo the core of CSS )

2. Following that, a mention of the double margin IE bug. Nope; but there was vague mention of browser differing in spacing.

3. Mention of the fact that nothing can be changed because browser vendors don't get along and refuse to change stuff in any meaningful time-frame regardless of the specs. Wasn't disappointed.

4. Mention of SASS/LESS. It's there.

5. A statement along the lines of "CSS is obviously wonderful because it's still around. It will be around forever." Got it.

6. Mention of the need for a way to do paging properly. Yay.

Pleasantly surprised by:

1. Mention of the Acid tests.

2. Mention that single line comments are desirable. Why still not there???

Unhappy with: Hatred for IE conditional comments, web fonts, and the video tag. ( but confused since he advocated for both web fonts and the video tag?? )

All in all an interesting read.

nanoscopic··on "Open Source is awful in many ways, and people should be aware of this"
I wasn't exactly polite when he attacked me. I responded in turn because it was absurd and silly to me to be threatened. To know anything about me is to know that threatening me is a joke; I'm not afraid.

To this day I'm unclear why he didn't understand the problem with ESI include files being invalidated not forcing the main including file out of the cache as well. ( in Varnish ) I think he was just in a bad mood and didn't have the time nor care to understand what I was pointing out at the time.

He was pretty mean though, and refused to play nicely to the bitter end of that particular argument. Just google "Lots of Configs" if you want to read the whole silly debate.

Here is what I want: A cache where it supports ESI... File A ESI includes file B. Both A and B are in the cache. If I forcibly tell the cache to invalidate file B, I expect that file A will automatically be invalidated as well, since the cache should know that file B was included into file A. Varnish does not do this. That was my statement to PHK, but apparently he doesn't want to hear it and somehow things this is an unreasonable request.

nanoscopic··on "Open Source is awful in many ways, and people should be aware of this"
Thank you. Unfortunately the FBI and Secret Service have a different opinion, and so the FBI is still holding onto $5000 of my gear. For myself, I can't say I would try to "do the right thing" again, because it simply isn't in my best interest to try to get people to listen to what is reasonable.
nanoscopic··on "Open Source is awful in many ways, and people should be aware of this"
Thank you for expressing this. It helps me to be able to move past it. I have always thought you were angry at my contributions to the community. You will note that I applaud the simplicity of your module, and even went so far as to create a SAX streaming version of my parser that works together with XML::Simple so that those who wish to stick with your interface can do so. I didn't maintain it much, but can do so if there is any real interest in it.

I named you simply because you are the first person to state that my XML parser is "invalid", despite my having worked very hard to ensure that it does parse XML meaningfully.

I do acknowledge freely that I am disregarding the specs to some extent for the sake of raw speed. You will see that I have altered the documentation to make this clear so there is no confusion.

For myself, with your apology I consider that extremely adequate to address the past. I don't really remember clearly, but I know that it was a very rough entry into the open source world to have my parser attacked ( considering it is the first meaningful thing I contributed to the community )

I would like to point out that communication and understanding between members of the community is exactly what I am asking for. I thank you for stepping out and attempting to resolve this. There is no way I would ever know that you felt this way without you expressing it, and unless I did I would have lived forever thinking you have bad feelings towards myself and the code I have created.

For all the people who imply that I was attacking any of the named people, including Grant, see that was and is not my intention, and I am very happy today to have some of these things addressed.

I will throw this out there for consideration; it boggles my mind how wikipedia has banned the article on my parser, considering there are entries for many other equivalent parsers. The article was up for years then removed suddenly for no legitimate reason imo... Do you have any opinion on the clear favoring of certain parsers in the information community? ( such as on wikipedia or in excluding specific parsers from being mentioned as related codebases )

nanoscopic··on "Open Source is awful in many ways, and people should be aware of this"
There is zero mention in varnish documentation of how ESI and forced cache invalidation occur. ( because it simply doesn't support it ) That was and is my point, and is not addressed on that page or anywhere else.

I realize that would require more extensive changes to support; my only point is that I wanted to use ESI specifically in relation to forced invalidation.

I reported the bug quite clearly, and the main dev said I was wrong and to this day refuses to acknowledge that forced invalidation does not work sensibly in regard to ESI.

I would like to point out again, that this is water under the bridge. I still support Varnish and respect the developer. I simply wish we could all get along and acknowledge limitations of what we do, rather than denying valid points made about software.

That is the true source of the anger in open source; developers refuse to acknowledge that people use their software in ways they didn't expect, and that you have to listen carefully to appreciate what people want. As a developer, it is unreasonable to brush off and ignore people who are trying to help.

nanoscopic··on "Open Source is awful in many ways, and people should be aware of this"
I'd like to point out that I have a lot of respect for the developers I named; my point is that we should all play nicely, not that I wish for these people to be shamed. People get hurt. I was hurt. I'm not attacking; I am saying it still hurts to be treated that way by members of the community, and that I agree with the notion that you need to have a thick skin. It shouldn't be this way; the entire open source community should strive to improve the world together, not fight about which project is better.

Notice above comment from mst ( Matt S Trout ). I appreciate him saying sorry and it actually means a lot to me. I have even more respect for those who recognize when their actions have been misunderstood and hurt people. He didn't need to apologize, but it helps the community and I wish more developers were willing to see that there are many different opinions and we need to respect them all.

nanoscopic··on "Open Source is awful in many ways, and people should be aware of this"
Thank you for your comment; I appreciate the acknowledgement. I do intend to do as you say and change the name properly, since basically it doesn't matter now that "registered modules" are gone. I have not done so yet simply because the framework is poorly documented ( as far as what is published ) at the moment, and I wanted to add the documentation properly when I take over a whole root namespace. Also; I am a bit unclear as to -how- exactly to claim the whole root namespace, since the way it is done is different among several of the modules I observed.

I assume I simply register a module with a root name to claim it, as sort of a placeholder pointing to all the component pieces. I don't want to include the actual pieces in the root module; just use the root module itself as documentation as I see it done among other CPAN modules.

I would like to point out that I realize that my feeling hurt through the discussion is mostly my perspective; hence stating that I recognize you have many other things to do. My frustration was that I had no knowledge that registrations "were on their way out" and my requests at the time to get it registered properly seemed to be ignored. ( I assumed because there were not enough people who cared about registrations at that point to handle doing it )

Once again thank you and I hope to move forwards and be an active member of the community.

nanoscopic··on "Open Source is awful in many ways, and people should be aware of this"
The specific bug was in the Varnish reverse proxy. It had to do with the non-functionality of the ESI ( Edge Side Includes ) "support". I really like Varnish and was making great use of it, and was happy to learn it supported ESI. I thought that if you change the contents of an ESI file, and then invalidate that file in Varnish, that Varnish would know the files that include it and invalidate them as well. Nope. Varnish seemingly has no recognition of ESI in regard to invalidation and simply includes the contents of the file, in effect treating them like regular SSI ( server side includes ).

I reported this behavior properly, and I was told that I don't know what I am talking about and there was no problem. The bug I filed was then closed without the issue being fixed or addressed in any way.

I can and will make a competing reverse proxy; because ESI is important IMO, and disregarding supporting it properly is silly.

I think Varnish is great; I'm happy it exists; I think it is silly to close a reported bug on the codebase without addressing it properly. The proper address to it is to simply say "No we don't really support ESI", just as I have said "No my parser is not really an 'XML' parser, because it doesn't really follow the spec."

nanoscopic··on "Open Source is awful in many ways, and people should be aware of this"
Go ahead and Google my name. You'll find that it is mostly just attacks on my character related to an incident with UMD and the FBI. Unfortunately people don't reference facts; news ( and people in general ) just believe what they want.

Once again, my point in referencing these people is to say that negative attitudes and attacks are widespread, and happens by many professional ( the people I mentioned ). I don't blame them; it is a hard community; I'd just like us all to have better attitudes.

nanoscopic··on "Open Source is awful in many ways, and people should be aware of this"
I didn't provide a ton of details because I think it is important to be constructive and just make the point that people should be more caring and positive. I don't want or need to try to bash these people. All I am saying is that they were somewhat mean to me. It is my personal perspective. I'm not sure what anyone will get out of reading this stuff in detail.

If you are so interested, I requested repeatedly to Brian and the list to approve the module after the name "Ginger" was agreed upon, but nobody with authority was willing to move it to the registered list. The leaders of CPAN basically stopped approving stuff. Registered modules were dropped entirely shortly after that.

I tried to talk reasonably to Brian, but he seemed oversensitive, likely due to being overwhelmed with his tasks. I am more sad that registered modules were dropped than anything.

It is likely that Grant McLean's comments attacking my module are no longer around; due to the changes to CPAN and the related bug tracking. He publicly stated that my XML parser has no right to call it an XML parser, in reaction to me including benchmarks showing how slow his parser is even when backed with LibXML.

nanoscopic··on "Open Source is awful in many ways, and people should be aware of this"
Yes, for many years I intentionally did not release more open source due to only having people contact me to ask for help or criticize and never to simply say thank you.

Most recently I have decided that releasing open source is what I want to do, because it is what I want. I don't expect anyone to appreciate it any more.

The parser I wrote has actually made it into several linux distributions ( as well as on the distributed discs ). Several people benchmarked it and said it was amazingly fast. I'm pretty sure it is used by a fair amount of people, but since it is mainly distributed through CPAN I have no idea who really uses it or how many.

I think this is the case for what I wrote because it is a component. People in general I think appreciate tools much more than components, especially if the component is one of many somewhat inter-compatible other options. There is little love for "another thing added to the pile" even if it is different in fundamental ways.

nanoscopic··on "Open Source is awful in many ways, and people should be aware of this"
I think this is an important point for people to accept, acknowledge, and keep in mind as a reason to strive harder to be open and accepting to people, especially those you don't agree with.

I got a bunch of attacks from members of the open source community, due to developing my XML parser. ( Grant McLean and others ) I also got attacked by Poul-Henning Kamp, and then threatened that he would "shame" me for pointing out bugs in his software that he refuses to acknowledge. Additionally, the founder of Perl Mongers, Brian D Foy, argued with me about the naming of my application framework, and then refused to approve the naming of my module even after other people on the newsgroup discussed it with me and we came to a good resolution. ( which led to the vanishing of "registered" modules on cpan imo )

The open source community, at large, is not a happy helpful place, and I have gone through a lot of harassment just contributing my own free open source stuff to the world. Also, I can't say I have ever been thanked for contributing. Just kicked in the face.

I am referencing names of individuals so that people can lookup these events and see the truth in what I'm saying; NOT to shame these people. They are all good developers, and I value their contributions ( don't necessarily like these people but what does that matter ). There should be respect in the community regardless of whether you like or dislike people's projects.

nanoscopic··on NgMario
This is blatant abuse of Mario, their copyrighted assets, etc. I approve of it being reported to NOA. Additionally, who exactly is going to play this?

It doesn't use Mario in any meaningful way to help teach anything.

Mario teaches typing; that was cool. That was also approved and endorsed by Nintendo.

Get a life and create your own game instead of ripping off others.

This may seem harsh, but such blatant abuse of law does not belong on github nor on hacker news. Not only that, I'd be willing to bet this is a fork of the Mario games that were long ago taken off the web for similarly illegality.

nanoscopic··on U.S. Law Enforcement Seeks to Halt Apple-Google Encryption of Mobile Data
If this annoys you at all, you should check out the 'blackphone'. It's not cheap, but if you value your privacy and security it is the phone for you. Full disclosure: I have nothing to do with this phone; it's just a cool related project.
nanoscopic··on The Surprising Path to a Faster NYTimes.com
Thank you for this detailed explanation. I assumed there was some extenuating complexity to the process, and was simply wondering what it was that prevented the original publishing system from being adapted to be faster.
nanoscopic··on A brief history of CPAN
Something missing from the history is the existence of the "categorical tree" for CPAN modules, the existence of "registered modules", and the recent destruction of both of these features, primarily due to lack of people maintaining CPAN ( Brian D Foy got overloaded ).

The interface doesn't show any difference currently between modules that were just thrown up willy nilly and those that went through community discussion and review.

It could be useful to mention some of the various binary distribution systems in existence pulling from CPAN ( such as Activestate )

One of the sources for some of the information is very interesting though: http://history.perl.org/PerlTimeline.html

nanoscopic··on Mozilla Brick
I clicked through all of the examples, and I would never use any of these components. They are very plain, they don't provide much functionality, and the functionality they provide is lackluster ( unappealing ).

As others here have stated, I also couldn't tell if some of the examples are even working or not; they are that bad.

If you are looking for a fine set of interworking components that provide a refined look and feel along with nice examples of the options provided; then you'll probably want to look at one of the other 30 or so UI widget sets.

nanoscopic··on The Surprising Path to a Faster NYTimes.com
http://search.cpan.org/~mjd/Text-Template-0.1a/ Basic text templating; circa 1995. Using templates is hardly a new thing. I wrote a full CMS system for a news company in 2002. Sure that is a couple years later; but I based it on Text::Template in combination with XML; both of which existed in the mid 90s.

I am not attacking what they were doing, my point was that this is an issue of delaying the move to a template based system way longer than necessary. I am speculating on whether they did move to some templating, but not all the way, and wondering what exactly they were using before that.

Saying "static HTML files" is well and good, but it doesn't explain how they were created. By hand??

Also, saying "90 days to republish" seems to be suggesting some process they have in mind besides manually scraping the data out. If you have 1 million random files, scraping could easily take years not 3 months. It would be interesting to know what process they are suggesting to follow in those 90 days. My speculation is they did use some sort of outdated CMS software.

nanoscopic··on The Surprising Path to a Faster NYTimes.com
The slides say there are 1 million pages, and "republishing" them would take 90 days. Maths -> 7.8 seconds on average to "republish" a page. Modern templates systems can convert a page constructed out of structured data in less than 1/4 of a second. ( and that is a high estimate ) That is ~30 times faster, meaning all pages could be "republished" in 3 days instead of 90 had a more efficient system been used from the start.

Focusing on shifting all "rendering" into front end JS seems like it will lead to more difficulty in the long run instead of using a more efficient structured page creation mechanism.

I am curious how the static pages were created. Others here are speculating that templating was not done. If not; what does "republishing" mean exactly?

nanoscopic··on Ask HN: How to help get more women in tech as a male?
To get more women seriously involved into technology, you realistically need to get more women to be unsocial and spend the majority of their lives planted in front of a glowing computer screen.

The reality is not that "careers in computers" are too hard to get into, or that we need them to be friendlier. In fact, I have personally found working in computers to be generally unfriendly across the board. I welcome any changes to make working in computers more attractive to women, because it would make it appeal more to myself as well. Since I already work in the field, it would just make the field better.

The fact is that a majority of women don't realistically want to be in the field once they know the full story of what is required to succeed in it.

I am aware of the people who have had computer careers and found them generally cheery, friendly, and easy, but I don't think this is the common case.

nanoscopic··on I banned email at my startup
Where I was at we had a planning board and that was fine for incoming work. Tasks that could be done within a couple of days were fine as well; we did have a sort of 'current' board. The difficulty was only really for long running tasks that took more than a week.

From the way you are describing it typically the current board was emptied each week? New tasks were only brought in at the beginning of the week?

Did you break down larger tasks into chunks that could be handled within one week? If so, how did you track progress within multi-month projects if they were broken down into small pieces?

nanoscopic··on I banned email at my startup
How do you keep track of performance metrics for tasks? I used trello at a previous job, and had issues when there are many tasks, ensuring that tasks are actually getting done in reasonable amounts of time.

I personally liked having lots of checkbox subtasks on trello tasks to show continuing progress, but no one else at the company used that feature.

nanoscopic··on Are You Playing Cyber Security Dominoes?
This article would be better titled "Pervasive Input Validation Issues". TLDR is that you should use waratek because they have a taint tracking mechanism for Java applications. The article is basically an advertisement and there is no actual "domino effect" discussed or described that I can see.
nanoscopic··on Complete Keen Dreams source now released on GitHub
This is awesome, only I'd like to point out that the license is unclear. Are the files in static under GPL license or not? If not, exactly what is their license status?
nanoscopic··on Ask HN: Why does web programming pay more than embedded and game programming?
The easiest way to make money is to find a business need and provide a solution. Games, first of all, are not a business need. They are entertainment. Except at high scale, entertainment typically does not make a lot of money.

Embedded development is a specialized field. It does make a lot of money, but only if one is highly skilled so as to do applicable low level dev. I wouldn't say it pays lowly; simply that it is hard to get into it truly at all, so many of those who are "in" embedded dev just say that to make the stuff they do sound cooler.

Web programming, also, does not necessarily pay more than anything. "Web Programming" is a very generic term.

It is easy to setup a website that has no dynamic nature, that has poor layout, and cannot be properly updated by large groups of people under different permissioning rules. Doing all of those things is no small task.

Web programming, at the level that people tend to get paid well for, can be very complex when considering the full stack of components and interdisciplinary skills involved.

Basically, you are comparing very generic job descriptions that don't take into account the years of experience that are necessary to accomplish things.

There is not a high demand for "kernel and hardware engineers". Why? Because the few that we have are quite sufficient. Hardware and low level software engineering is a somewhat working area. In comparison, the higher layers of software development are horribly incomplete and constantly changing.

← PreviousPage 4 of 5Next →