The Pirate Bay denounces Anonymous attacks on Virgin - <AUTHOR> http://www.theverge.com/2012/5/11/3014897/pirate-bay-anonymous-virgin-ddos

<comment><USER2> I generally pro-anon, but I agree entirely with TPB in this matter. When I read Virgin's statement, I thought, "here's an ISP who gets it." They weren't seeking to punish pirates; they just wanted legal alternatives. That's all any of us want.

The danger and strength of an amorphous group like Anonymous is that no one person or group controls the message. Rather, its actions are a reflection of the collective consciousness of the members that comprise it. There are certainly those who would view Virgin's position as a sell-out, but there are many more who see them as one of the good guys.

Ultimately, any attempt to cast Anonymous as being a particular sort of entity based upon one action alone misses the point. The anons who defaced the UN home page in support of Palestine are not those who set up darknets in Zuccotti Park, who are not those who attacked Scientology. Too often, we see people who decry a particular action and claim that Anonymous has "jumped the shark". Whether or not there was a shark to jump is beside the point: the actions of any given anon are only indicative of their, and only their, beliefs.

If there can be any description of Anonymous as a whole that applies to all "members", it is this:

Anonymous is a moniker taken up by those who feel compelled to act, and yet fear to do so in their own name.

That's it. There's really not much more that can be read into the group.

Note: the above descriptor is primarily intended to describe moralfags, although it can be adapted to describe lulzfags, as well.

<comment><USER3> I view anonymous as more about feeling good about themselves rather than doing good for people.

They are more like terrorists. Terrorists are in those organizations to feel good about themselves and create a sense of belonging. They don't care about achieving purported political goals. They often alienate people. They consider terrorist attack as first resort, not last resort.

What sense would it make for Al Queda to attack fellow Muslims or even have bombs exploded around Muslims, for example? Would a Muslim support Al Queda if he fear his family getting killed in some random attack?

Even more, they're not even good at murder.

Anonymous are that way. They don't care about the consequence. They don't care about the goal they're trying to achieve. They are doing it to feel good. They are a dysfunctional organization.

<comment><USER4> This is ridiculous. Anonymous are more like the black bloc - they are the last line, a _demonstration_ that united, people have the power to topple giants, that we won't just lie down and take what's handed to us.

Whilst the damage that is done is superficial, it is directed at targets that, for better or worse, embody what is bad about our planet - the censors, the passive observers. Taking a site down for a couple of hours isn't _censorship_ , it's making a point. Yes, there would be more desirable outcomes (pwning their systems and disabling their blocking filter, for instance), but other than that, the goal of anonymous is simple - keep the government and companies remembering that there is many, many more of us than them, and if they decide to just push us around and infringe on our freedom, there will be consequences.

The comparison to bombing which actually kills people is quite frankly offensive and you should be ashamed.

<comment><USER5> No, Anonymous is better than the black bloc. Anonymous does things on their own, in such a chaotic way that the people who they are supporting can disavow their actions pretty easily. Whereas the black bloc attaches themselves to peaceful demonstrations organized by entirely different groups and fucks them up.

The black bloc is a demonstration to the spectator that, deep down, under every group of peaceful demonstrators for peace or civil rights, is a scary looking bomb throwing terrorist who wants to hurt you because you like Starbucks.

P.S. Comparing things is not the same as saying they're the same, and the doublespeak and doublethink required to avoid comparing _That Which Should Not Be Compared_ makes the world stupider and you should be ashamed for participating in that kind of public shaming. It's probably the defining characteristic of America, the Uncomparable.

</comment></comment></comment></comment><comment><USER6> The Anonymous mentality more and more reminds me of Kira from Death Note. Backed by a sense of disillusionment with the current destructive forces in the world, they become more and more comfortable with using destruction to punish or fix those forces.

</comment><comment><USER7> Anonymous is becoming more and more of an embarrassment to the community it's supposed to represent.

<comment><USER8> Anonymous isn't "supposed to represent" any community. What part of the definition of the word "anonymous" confuses you into thinking it means an identity for a group. The whole point of "Anonymous" is that it is absent any determinable identity so that whatever statment/action gets made in its name has to stand on its own context-less merit.

</comment></comment><comment><USER9> "Anonymous is not a noun. "Anonymous" is an adjective. A noun describes an entity: some person, place, or thing. Anonymous is not an organization. It is not even a coherent idea besides "people acting anonymously"

Occasionally, we correct people's grammar to be pedantic. This is not one of those cases. When people say "Anonymous attacked Initech today, following an announcement that they were developing transaction tracking software as part of Goldman Sachs' partnership with the Saudi government to track down support networks of dissidents within the kingdom." they speak as if there is some entity or organization. Rather than being a pedantic grammar mistake, this error reflects a conceptual misunderstanding of reality .

When you see someone use "anonymous" as a noun, please correct their grammar.

<comment><USER10> > _they speak as if there is some entity or organization_

There is. It's a group calling itself "Anonymous", not just an anonymous group, though they are that as well.

"Organization" might be a bit too strong of a word to describe them though. Anyone can become Anonymous for however long they like and for whatever purpose they like. When you hear about two different attacks by Anonymous, it's entirely possible no one person was involved in both. It's actually harder to describe than I thought.

</comment></comment><comment><USER11> Summary spam.

[https://www.facebook.com/ThePirateBayWarMachine/posts/261478...](https://www.facebook.com/ThePirateBayWarMachine/posts/261478760616422)</comment>


GPU Performance for Game Artists (2017) - <AUTHOR> http://fragmentbuffer.com/gpu-performance-for-game-artists/ <comment><USER2> If you want to profile WebGL there is a cool extension called SpectorJS: [https://spector.babylonjs.com/](https://spector.babylonjs.com/)

</comment><comment><USER3> Discussed a bit at the time: [https://news.ycombinator.com/item?id=14726355](https://news.ycombinator.com/item?id=14726355)

</comment><comment><USER4> The clearest explanation of how gpus work for games and how to optimise performance. Can anyone please recommend more articles as detailed and clear as this one on the topic, i am struggling finding them?

<comment><USER5> ryg's 2011 classic is still as good as ever.

[https://fgiesen.wordpress.com/2011/07/09/a-trip-through- the-...](https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-graphics- pipeline-2011-index/)

<comment><USER4> Thanks for this - sent to my printer for a weekend self training session.</comment></comment></comment>


Ggplot2 version 2.0.0 released by Hadley Wickham - <AUTHOR> http://blog.rstudio.org/2015/12/21/ggplot2-2-0-0/ <comment><USER2> > instead, we now use ggproto, a new OO system designed specifically for > ggplot2

And this is why I gave up on R for other things than ad hoc data exploration (don't get me wrong; it's killer for that). When I finally learned there were no less than four system of OO buried in base R, and still people were unhappy and inventing more, I realised that as far as well structured programming goes, R is kind of beyond help at this point.

From what I can tell, my biggest disappointment with ggplot2 is not addressed - the fact that ggplot evaluates all references not found in the data frame to be plotted in the global namespace. The result is that you can't actually make reusable, composable plots in a reasonable sane way. It sends the whole illusion of composability that ggplot()'s '+' syntax suggests might be there right down the tubes. My plots were all more reusuable before I ported them to ggplot (ie, in base graphics).

Apologies for the whining, and congrats to Hadley!

<comment><USER3> My biggest problem with ggplot is that it's slow, unbearably slow. It also enforces all data to be realized into a single dataframe, which is true only for small (as is: fits in memory) datasets.

Very often, to produce specialized plots, I have to send data to the canvas in chunks by performing pre-processing myself. ggplot really doesn't work in this scenario. Combined with the general slowness, it forces me to use alternatives quite frequently.

It's a bummer, really, because I'd like my plots to have a consistent visual style, and doing that across different plotting packages is an issue.

I very often resort to gnuplot when it comes to huge datasets and/or incremental plotting. The same is true also in python (matplotlib is also very slow, independently of the backend). But at least, if you use seaborn ([https://github.com/mwaskom/seaborn](https://github.com/mwaskom/seaborn)), you can easily intermix the easiness of plotting through a DataFrame or just supply data arrays.

ggplot is really awesome for what it does, but 1) the syntax doesn't really please me (feels just plainly forced onto the wrong context 2) doesn't scale, which forces me to use alternatives too frequently 3) trying to customize the plot style beyond a few minor tweaks is pure hell.

<comment><USER4> At the end of the day, the whole point of ggplot is to produce a graphical representation of some aspect of the data. How much information can you possibly cram into ONE graphic and have it be readable by a human? Your problem is really a data reduction problem and not a plotting/graphics problem.

<comment><USER3> The data that goes into the plot is unrelated to it's visual complexity.

The "problem" is that ggplot also takes care of the transformation/reduction step for you.

For example, a KDE plot can source potentially a limitless amount of data while still generating a very simple plot. Likewise for most smoothers.

However, if I have to produce the kde/smoothed line myself, I lose almost all advantages of using ggplot (I have to manually calculate the visual density, scaling and attaching labels is another PITA).

On top of that, as other have said, ggplot really struggles already with thousands of entries. A simple 5x5 faceted scatterplot with ~10k points might take seconds to render on recent hardware. When I plot data interactively for exploration, I might do this hundreds of times a day. I lose all the convenience just in the time wasted for rendering.

</comment></comment></comment></comment><comment><USER5> I've spent a _lot_ of time working with ggplot2 for making advanced data visualizations. For reference, I wrote a nice tutorial on how ggplot2 can be used to make nice charts easily and effectively: [http://minimaxir.com/2015/02/ggplot- tutorial/](http://minimaxir.com/2015/02/ggplot-tutorial/)

To put the scope of the changes in the 2.0.0 release in perspective, I suspect that the simple tutorial is now broken, let alone the code for my more intricate charts. I'm not upset about it through, since all the changes, especially breaking ones, are well-reasoned and well-documented. Hadley did a great job of explaining everything.

I'll have to spend some time diving into ggproto.

<comment><USER6> If it does break stuff that you think it shouldn't please let me know. Goal is to do a patch release in a month or two to fix anything I broke accidentally.

<comment><USER5> Mostly the geom_bar and geom_histogram split, which I agree was a good idea.

I also used the order parameter on a few visualizations, so I'm unsure how to order a stacked bar chart without it. I'll give it another look and see what I find and file as appropriate.

<comment><USER6> Thanks! I think I have have underestimated how many people confused bar charts and histograms :/

<comment><USER7> Well the only difference seems to be whether the x axis is ordinal or continuous.

</comment></comment></comment></comment></comment><comment><AUTHOR> Extended release notes here[1] as well as an explanation of the new object system for extending it, _ggproto_ , here[2]

[1] [https://github.com/hadley/ggplot2/releases/tag/v2.0.0](https://github.com/hadley/ggplot2/releases/tag/v2.0.0)

[2] [https://cran.r-project.org/web/packages/ggplot2/vignettes/ex...](https://cran.r-project.org/web/packages/ggplot2/vignettes/extending- ggplot2.html)

</comment><comment><USER8> > although I've tried to minimise breakage as much as possible

The R community really needs to grasp version control head on. There are some great tools, and using git or similar works just fine, but their central packaging system only knows about the latest version of everything.

<comment><USER6> This is actually a huge strength for the R community, who by and large are not programmers and just want stuff to work. The fact that the latest version of all CRAN packages actually work together makes life much easier. And for experts there are tools like packrat and checkpoint that give you more control.

<comment><USER8> I'm sorry, but this mindset is very harmful. If I need an old version of a package and I didn't save it off somewhere first, it simply cannot be found.

<comment><USER9> Huh? There's an archive link on the CRAN page for every package; e.g. ggplot2 back to 2007: [https://cran.r-project.org/src/contrib/Archive/ggplot2/](https://cran.r-project.org/src/contrib/Archive/ggplot2/)

</comment></comment></comment></comment><comment><USER10> As someone who has suffered through a few different smallish projects with R, I don't think it would be even remotely worth using without ggplot2 and Hadley's other amazing contributions, especially dplyr and rvest. Easy to find flaws in R, but ggplot2 makes it easy-ish to produce nice-looking plots.

<comment><USER6> Thanks!</comment></comment>


Do Startup CEOs Have to Be Jerks? - <AUTHOR> http://www.thefiscaltimes.com/Columns/2014/11/21/Man-and-Uber-Man-Do-Startup-CEOs-Have-Be-Jerks <comment><USER2> Availability bias tends to make these discussions confusing.

Jerks are memorable.

They create drama, which draws attention. There's a reason soap operas and reality TV have a generous supply.

In any case, luck matters more. Without adoption, without growing up in California at the dawn of the information age and without meeting Steve Wozniak, Steve Jobs would've been a jerk nobody had heard of.

</comment><comment><USER3> I would say that CEOs are straight forward and have visions. They say something "stupid" = all people think that the CEO is a jerk. I would say that CEOs shouldn't care too much about what other say - they should follow their vision, which will make them "jerky".

<comment><USER4> Putting "stupid" in quotes is key, because if you are a CEO of a truly disruptive startup, most everything you say will be called stupid right up until you are celebrated as a genius.

<comment><USER3> But there's still a big difference between "stupid" because of the CEOs ideas and being an "asshole" though...

</comment></comment></comment><comment><USER5> I don't think anyone can be a jerk all the time and be successful. Probably the key is selective jerkiness. At least until you make it. Then you can probably be a jerk as much as you like. (Not sure it's required though).

</comment><comment><USER6> By Betteridge's law of headlines: no. Also, common sense.</comment>


What If Web Browsing Were Like A Virtual Reality Videogame? - <AUTHOR> http://www.fastcodesign.com/3027860/what-if-web-browsing-were-like-a-virtual-reality-videogame?partner=rss&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+fastcodesign%2Ffeed+%28Co.Design%29#7

<comment><USER2> This reminds me of Tom Clancy's Net Force. Similar to how "Jay Gridley" navigated the web :-)</comment>


Haunts' Kickstarter failure highlights the risks of crowdfunding - <AUTHOR> http://arstechnica.com/gaming/2012/10/haunts-kickstarter-failure-highlights-the-risks-of-crowdfunding/

<comment><USER2> That's not the kind of failure that's going to put a dent in crowd funding. Low funding level, sincere founder trying to make it right, etc. What's going to hurt is when someone just disappears with more money.

<comment><USER3> Trying to make it right by both a) forgoing future proceeds to whatever publisher will release the game and b) offering out-of-pocket refunds. Software projects fail, there isn't anything more we could ask of a person..

</comment></comment><comment><USER4> On the other hand:

\- The vibe of all the comments from backers seems to be "well I knew what I was getting into, I'll stick around." \- There are people interested in contributing to the game gratis. \- There seems to be a publisher interested in picking it up and doing the final round of polish and debugging necessary to finish it.

Have a look at today's update. [http://www.kickstarter.com/projects/2066438441/haunts-the- ma...](http://www.kickstarter.com/projects/2066438441/haunts-the-manse- macabre/posts/331778)

All of these people who invested money in the game are now, well, invested in it. And are talking about it. Some are offering to help. I'm not going to make any predictions, but it looks like this one still has a fighting chance of delivering.

</comment><comment><USER5> Kickstarter is really starting to ramp up in the money projects raise. Below is the story of woe of one of the early Kickstarter darlings that raised $87k. Two years ago it was second only to Diaspora (another eventual failure) in the amount of money raised

[http://hive.slate.com/hive/made-america-how-reinvent- america...](http://hive.slate.com/hive/made-america-how-reinvent-american- manufacturing/article/the-lost-lockpick)

I have backed a dozen projects over the past year for a total of almost $1000 and have received exactly 2 deliveries for a total of $70 of value. My enthusiasm will wain if more of these projects don't pan out.

<comment><USER6> Read the article.

Kickstarter makes some 5% on these projects. Their site hosting costs can't be very much...

I'd really like them to be, to some degree, consultants to project creators, and hire people that have business expertise in various types of projects.

</comment></comment><comment><USER6> There is a lesson here in not using an obscure programming language like GO on such a small project if you aren't yourself a programmer willing to finish the project if need be.</comment>


Programming in a Mad Max Wasteland - <AUTHOR> http://devblog.avdi.org/2015/10/11/programming-in-a-mad-max-wasteland/ <comment><USER2> See also the Gary Bernhardt talk, Capability vs. Suitability:

[https://www.youtube.com/watch?v=NftT6HWFgq0](https://www.youtube.com/watch?v=NftT6HWFgq0)

Some technologies are radical new developments designed to give people some new capability they never had before. Other technologies are refinements of some previous capability technology, restricting the capabilities but more suitable for some particular problem-space or setting. It's not necessarily "nobody has big ideas anymore", it's just a natural cycle.

On the other hand, if you want a less-charitable view, consider this: programming in the 1980s was dominated by ideas from C, a language developed in the 1970s. Programming in the 1990s brought the influence of Smalltalk, a language developed in the 1970s. The 2000s saw the introduction of functional programming ideas from Lisp, a language developed in the 1970s. These days, the hot new programming language features are being taken from Standard ML, a language developed in the 1970s. Someday the 1970s will be mined out, and then we can start coming up with new ideas again.

<comment><USER3> Great. I can't wait for Forth to happen again.

<comment><USER4> Forth never went away. It's the same tiny pack of fanatics impotently shaking their collective fists at the rest of the world and proclaiming everyone else is just not smart enough to 'get' Forth.

</comment></comment></comment><comment><USER5> Maybe it's just a sign of todays technology reaching some sort of early maturity?

You don't see many new revolutionary cars around either - or at least they all conform to the same idea having four equally sized wheels, 5 seats and a round steering wheel. I'm guessing 100 years ago you saw many alternative "paradigms" in the car making domain too, before our society settled on something that worked for the majority of us.

<comment><USER6> We are seeing revolutionary cars now, though...who would ever thought that they would begin driving themselves?

Likewise, some more self driving in PL would be nice, it is way too hard and tedious today then it probably needs to be, suggesting there is still a lot of room for improvement.

<comment><USER7> > who would ever thought that they would begin driving themselves?

Any sci fi author since the 50-s?

<comment><USER6> Surely it was conceived of, but did we think it would happen in our lifetime? There are still people out there who won't think it will happen.

<comment><USER8> I mean, it's been in the works publicly for quite some time. I remember watching documentaries about efforts on self-driving cars in an 'exploring tech' class back in 2002.

</comment></comment></comment></comment></comment><comment><USER9> In order to see genuinely new developments, you need to be in an environment where something genuinely new is happening. Most modern languages are some combination of decades old, or semantically essentially identical to languages decades old. If it seems like we're mostly shuffling the same basic ideas around and recombining them in those environments, well, yes, we absolutely are.

This is not as bad as it seems. There is something to be said with engineering with time-tested and well-established components. Even imperfect components with well-understood imperfections may be preferable to things that aren't well-understood, but some guy somewhere says may be theoretically perfect. But the flip side of the landscape being well-explored is that there is little new stuff to discover.

Two major places where you can see legitimately new stuff come to mind. First, Haskell. By being seriously, no foolin' concerned about purity and immutability, there's been a lot of work done in Haskell that in any other language, even those that sort of came close, was done by simply doing something impure and calling it a day.

Second, Rust. At the moment my perception of the community is that it is very young, the language is still changing significantly, and the concern right now is more about making new things work at all in the new paradigm than about the best way to do them. There's a big influx right now of the very new programmers who will later be doing new experiments, but they're still learning. Such exploration is absolutely necessary. But in the next year or two I bet we start to see a transition to more genuinely new things as the capabilities start to sink in, and the feedback loop between the real programs people are writing and what features the language grows develops.

(Personally, if you're really _interested_ in new things, I'd stay here rather than go to the really academic languages. It is my perception that the academic languages often have serious problems because they've cut themselves off from the practical world and severed themselves from an incredibly valuable feedback loop, the one that Haskell has used to propel itself to what success it has by actually letting real programmers into the sandbox to try to do real work. Academia is, in its own way, stuck in a rut right now at the limit, IMHO, where it all sort of looks very same-y to me.)

<comment><USER10>
      > the language is still changing significantly

Rust itself isn't changing these days (except for once-in-a-while adding new features backwards-compatibly), we're on to the next stage of maturity where only the libraries are rapidly changing and the prevailing idioms are still shaking out. :P

</comment></comment><comment><USER11> Often when a community gets bigger, the cool "garage band" type of things still happen. Its just that they are drowned by the pop culture in the media. You need to look in specific corners.

For programming languages I know the google term "conlangs" and I know that there is a scientific lang development place called "lambda the ultimate". If you want to see and use the cool stuff, look for that.

</comment><comment><USER12> Its not possible to do anything really new and still qualify as 'programming'. The sad reality is that programmers write cryptic mainly textual code using complex tools. If you invent something better it must be for 'users'. No self- respecting programmer would be caught using a tool for users.

Its pretty dumb, but then again, programmers are pretty dumb since they're people.

</comment><comment><USER13> It's happening right now in Haskell. The question is which ideas will filter down and when.

</comment><comment><USER14> Anything truly innovative is likely to be on the impractical side, whether academic or otherwise.

But if you're looking for technology that's just making the transition from academic to practical, check out Idris, as one of the comments suggests.

</comment><comment><USER15> Well, at some point you actually have to gather some good, proven ideas and use them to build a tool to solve real, everyday problems.

Radically new, exciting languages exist, but they're not yet practical.

</comment><comment><USER16> >I haven't see it, therefore it doesn't exist

</comment><comment><USER17> Would love to see a post-apocalypse style series where hackers are heavily involved using old smart phones, wifi routers etc. to cobble together technological solutions for survival</comment>


When Writers Speak (2009) - happy-go-lucky https://www.nytimes.com/2009/09/27/books/review/Krystal-t.html <comment><AUTHOR> I feel I can relate to what the writer is telling. Amongst the names mentioned, I think Thomas Jefferson, was someone who fould talking much difficult that writing, iirc he significantly contributed to the eloquent language of declaration of independence and other documents, but struggled to participate in verbal discussions of the Continental Congress.</comment>


Quantum Computing and startups - <AUTHOR>

How far are we to make quantum computing something from a lab to a start-up? What it's needed to make the transition? <comment><USER2> I think quantum computing...in truth, has already made the transition from the lab to well, basically, anywhere (startups included). The human brain.</comment>


Graphene Brings Photodetectors to the Brink of Terahertz Speeds - <AUTHOR> http://spectrum.ieee.org/nanoclast/semiconductors/optoelectronics/graphene-brings-photodetectors-to-the-brink-of-terahertz-speeds <comment><USER2> Pretty awesome article. Wish I understood more about what impact this discovery will have on computing. Will this mean faster cameras and higher FPS when shooting video?

<comment><USER3> The article closes with a couple example uses. Basically any place where a fast/efficient conversion between light and electricity is useful could potentially be made better.

Faster cameras are certainly possible, but most cameras are slowed down by processor and storage, not the sensor. As an example of this, Vision Research sells a 4k model of the Phantom high-speed camera, which does 940 fps at 4096x2304. And they've got 4 different models that will do 640x480 video at 34,700 - 69,900fps. That's 10-20 billion pixels every second, or 45-90 gigabytes/second raw color video data, which is significantly faster than you can write to RAM in most computers.

But at 1,000,000,000,000+fps as the article talks about? Awesome innovation, communications look to be a winner here.</comment></comment>


Show HN: MarkupKit – Declarative UI for iOS Applications - <AUTHOR> https://gkbrown.wordpress.com/2015/07/14/introducing-markupkit/ <comment><AUTHOR> Some additional information and examples:

Implementing Radio Button-Like Behavior in iOS Applications

[https://gkbrown.wordpress.com/2015/08/10/using- lmtableview-t...](https://gkbrown.wordpress.com/2015/08/10/using-lmtableview- to-implement-radio-button-like-behavior-in-ios-applications/)

Creating Custom Table View Cells in Markup

[https://gkbrown.wordpress.com/2015/08/19/creating-custom- tab...](https://gkbrown.wordpress.com/2015/08/19/creating-custom-table-view- cells-in-markup/)

Using UIStackView with MarkupKit

[https://gkbrown.wordpress.com/2015/09/29/using- uistackview-w...](https://gkbrown.wordpress.com/2015/09/29/using-uistackview- with-markupkit/)

MarkupKit Examples

[https://gkbrown.wordpress.com/2015/08/14/markupkit- examples/](https://gkbrown.wordpress.com/2015/08/14/markupkit-examples/)

A Practical Example Using MarkupKit and WebRPC

[https://gkbrown.wordpress.com/2015/09/08/a-practical- example...](https://gkbrown.wordpress.com/2015/09/08/a-practical-example- using-markupkit-and-webrpc/)

</comment><comment><USER2> So this looks a lot like XAML[1] for WPF (Windows Presentation Foundation)[2] to me. and I'm actually quite surprised that this was not the case for iOS development from the beginning! (declaimer: I never touched native iOS development before as a 100% Microsoft technologies professional)

[1] [https://en.wikipedia.org/wiki/Extensible_Application_Markup_...](https://en.wikipedia.org/wiki/Extensible_Application_Markup_Language) [2] [https://en.wikipedia.org/wiki/Windows_Presentation_Foundatio...](https://en.wikipedia.org/wiki/Windows_Presentation_Foundation)

<comment><AUTHOR> XAML was definitely one of the inspirations for MarkupKit. It was also inspired in part by MXML (Apache Flex), FXML (JavaFX), and to some extent HTML. It's also conceptually similar to the markup language used to build Android applications, though I don't have much experience with that.

</comment></comment><comment><USER3> How are the controls sized and placed? Is there a layout engine in there?

<comment><AUTHOR> It uses autolayout. The details of constraint management are abstracted by layout views such as LMRowView and LMColumnView. You can also use the new UIStackView class Apple added in iOS 9. See this article for more information:

[https://gkbrown.wordpress.com/2015/09/29/using- uistackview-w...](https://gkbrown.wordpress.com/2015/09/29/using-uistackview- with-markupkit/)</comment></comment>


Computer Graphics from Scratch (2017) - <AUTHOR> http://www.gabrielgambetta.com/computer-graphics-from-scratch/ <comment><USER2> Like many other programmers, I originally picked up programming because I wanted to write games. I spent time on my own in high school messing around with rudimentary 2D libraries in C++. That feeling of awe and accomplishment that was captured the first time an image successfully moves across the screen was what got me hooked.

After starting college I soon learned of the trials and tribulations of software engineers in the gaming industry. I changed my degree to Computer Engineering, took the embedded track, and recaptured that sense of awe by staring into the abyss of an Oscilloscope. Albeit, I did still take several graphics courses as electives (simply because I loved the subject).

<comment><USER3> > After starting college I soon learned of the trials and tribulations of > software engineers in the gaming industry.

Graphics is used well beyond the games industry! Anecdotally (talking to friends, getting recruiter emails, etc) Apple, Facebook, NVidia, and Google have been hiring like crazy for non-games graphics-related positions.

<comment><USER4> Anyone else have info. on this?

I started by writing games and game engines as a teenager (now ~14 years ago), reading "Real-time Rendering" and the "OpenGL Superbible". I've done a lot more with computer graphics since, writing pixel shaders for fun, building a web-based domain specific CAD tool (for a client) etc. Also been doing some computational geometry stuff more recently.

I haven't had much luck finding positions for 'graphics programmers' though. I've found things like 'lead engine programmer' for game companies—which is a bit out of my league, IMO.

But I'd love to work on things like the VR youtube player that Google did (doesn't have to be VR; 3D UI design is interesting to me regardless). Don't how to find these sorts of positions at companies like Apple/FB/Google etc., where I would hope they pay quite well (comments on that also welcome!).

<comment><USER5> Perhaps I just got lucky, but I started my first games industry job almost a year ago and I've been doing graphics work for the vast majority of that time. I came in as a regular junior level Software Engineer, mentioned I liked graphics and tools development, and was mostly given graphics work as a result.

I've also been writing engine/graphics code for fun since I was a teenager, my copies of those books are 3rd edition and 5th edition, respectively :)

<comment><USER4> Hmm, yep, tools and graphics are what I'd be most interested in as well. 3rd and 3rd here :)

</comment></comment></comment></comment></comment><comment><USER6> Author here. What a surprise to open HN and see this on the front page :) Happy to answer any questions.

<comment><USER7> Thank you very much for this. I'm glad there still are people writing books like this one. When I was a teenager, I found a book by L. Ammeraal which was awesome reading. It taught how to build a simple 3D graphics renderer with hidden edges removal and other interesting features. Unfortunately, back then I was a Pascal fan, so it took me some significant effort to translate bits of the code from the book from C

Later, I found another book, can't remember the author, which described even more things, like z-buffering and so on. Very interesting and very useful.

<comment><USER8> [http://www.opengl-tutorial.org/](http://www.opengl-tutorial.org/) is a pretty fantastic resource of learning this stuff.

Don't worry too much about opengl vs direct x vs vulkan. There are underlying principles that apply broadly to both.

Alternatively if you want a book that goes more in depth, but still allows you to take your first steps, opengl programming guide 8th+ edition is good.

Expect it to require some patience no matter what route you take. Graphics programming is finnicky.

</comment></comment></comment><comment><USER9> This is awesome! One thing I really appreciate is building up the mathematical concepts. For example, instead of providing a ray-sphere intersection formula, the tutorial talks about representing a ray and a sphere, and how the two representations must match at intersection points.

When I was asked to teach a workshop on computer graphics, I wanted to make the concepts accessible to those who were either rusty, or hadn't even encountered the necessary math. Given a limited amount of teaching time, I introduced only the most relevant math, but did so from first principles. Hopefully my treatment can be useful to others: [https://avik- das.github.io/build-your-own-raytracer](https://avik-das.github.io/build-your- own-raytracer)

</comment><comment><USER10> I found it surprisingly hard to get access to the primitives mentioned in the intro, on a modern pc. How does one draw a pixel on a specific coordinate in a modern OS?

<comment><USER11> the best/easiest way is still use opengl/directx/etc but draw your texture in software, and then draw the texture full screen.

This is the approach I used to teach software rendering in gameswithgo.org we make a putpixel function as in the old days, and use it to build up a texture, which we draw each frame. The texture becomes what used to be the framebuffer.

<comment><USER12> Copying the entire framebuffer over the PCI bus makes me sad, though it's obviously way faster than when you could memory-map the framebuffer. These days you can't map texture objects in memory because texture storage on GPUs is its own black magic and textures are not stored as simple linear framebuffers. It would be fun to restrict yourself to a well-documented architecture, e.g. give everyone a cheap intel-based notebook and write out commands directly for the graphics chip. I guess while fun that would teach more about doing low-level hardware access than graphics themselves.

And while on the topic of changing hardware forcing us to change our algorithms, I wonder if teaching scanline rendering is even worth it these days. Every CPU supports SIMD and a SIMD-optimised software rasteriser is a very different beast than the classic scanline triangle rasterisers of old.

Probably the fastest software rasteriser for modern CPUs is OpenSWR [0], written by Intel mostly to keep themselves relevant in the data visualisation space until GPUs eat HPCs (GPUs still can't help you when your dataset is measured in hundreds of gigabytes of graphics data), but it scales perfectly fine down to desktop CPUs. The code for it is in the Mesa tree [1]. I wish I could explain exactly how it works, but it's a pretty big beast and I haven't had the time to read and understand all of it. Intel gave a presentation on it at the HPC developers conference back in 2015 [2]

[0] [http://openswr.org/index.html](http://openswr.org/index.html)

[1] [https://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/driv...](https://cgit.freedesktop.org/mesa/mesa/tree/src/gallium/drivers/swr/rasterizer/core)

[2] [https://youtu.be/gpYd18E3TWc?t=1531](https://youtu.be/gpYd18E3TWc?t=1531)

</comment></comment></comment><comment><USER13> Yes, it is very rewarding to program your own graphics routines or your own simple implementation of a raytracer and then see the correctly rendered scene on screen for the first time.

I did this on my Amiga a lot time ago (1995), and then re-created the feeling using ShaderToy: [https://www.shadertoy.com/view/lds3z8](https://www.shadertoy.com/view/lds3z8)

It's so cool: A scene that took 10 minutes to render in 1995 - nowadays you can see that scene through a moving camera raytraced in real time in your browser!

</comment><comment><USER14> Anyone know how this guide compares to tinyrenderer?

[https://github.com/ssloy/tinyrenderer/wiki/Lesson-0:-getting...](https://github.com/ssloy/tinyrenderer/wiki/Lesson-0:-getting- started)

</comment><comment><USER15> Graphics was one of the hardest courses when I was in school for game development. We started with raytracing, did rasterization from scratch, then worked with DirectX and OpenGL. I formed lifelong friendships struggling through toon shading, bump mapping, and particles with HLSL shaders.

</comment><comment><USER16> This ought to be super helpful for my toy rasterizer project written in Rust.

If anyone is interested, I'll post the link (it's crappy)

I suggest everyone to try implementing a rasterizer in a new language; it goes over a lot of language fundamentals and a lot of reasonably efficient memory manipulation (if you try to, at least) is required, which forces you to be intimate with the lang. Great Rust practice for me, at least.

</comment><comment><USER17> Any dummies guide to shaders?

<comment><USER18> [https://thebookofshaders.com/](https://thebookofshaders.com/)

</comment></comment><comment><USER19> This is primitive, but not quite from scratch - that makes me think of TempleOS. This is more like, computer graphics without libraries.

<comment><USER6> Fair enough. It's definitely "from scratch" compared with most graphics courses which start at the OpenGL level, but as with whether a language is "low level", it's somewhat subjective.

</comment></comment><comment><USER20> The capitalization of Scratch in the title made me first guess that they were using the educational programming language Scratch.

<comment><USER6> This is the capitalisation the OP used; the one I use myself is lowercase. Perhaps a mod (paging dang?) could fix this?</comment></comment>


Beyond the copycats: Things I learned about China Internet - <AUTHOR> https://medium.com/@chenyuz/5-things-i-learned-about-china-internet-25b6fbc0b05d#.xp61jkp2o <comment><USER3> I would not trust her main point "China is far beyond copying the West." for 3 reasons:

1.Everything on China is in the end Central planned, an article that criticize anything about the Govertment-country and you are out of business, so when writing people auto censor itself in the bad things, over extend in the good things.

Of course Chinese Internet services are better than those from the US in China. Most of them work at Kbits/second if they work at all.

2.The person that writes this is in a privilege position, e.g when I was living and working on China I lived much better there that in Europe, so of course she believes everything is fantastic.

3.She is Chinese national. Just watch CCTV for five minutes on a song festival and you will start hearing songs about how great the Chines army is. In China you are surrounded by this stuff all day. Like advertisements most people believe they are not affected by it, but it is pervasive and it does affect you after a long exposure.

I consider Chinese central planned system poisonous for innovation, specially: "Chinese companies are fierce and grow out of alkaline land".

What the last statement means is that Chinese companies have absolutely no ethics, and in the end everything is about knowing-buying the people in power because those people will remove your taxes or give you the permit or credit or anything you need(and you need anything they want you to need or else...).

In China you have to share your innovations with other companies, this makes your bargaining power near zero while the company with more direct line with power gets the profit.

<comment><USER4> (Obligatory disclaimer - China is a country of 1.4 billion. It's almost _double_ the population of the US and EU taken together! So you can't generalize over such a large country well. Since the article was about Shenzhen and I also have experience with Shenzhen, my response is naturally limited to the "better-off" parts of the country.)

I disagree.

> _1.Everything on China is in the end Central planned_

This is bullshit that our media like to feed us, but it doesn't stand up to scrutiny even if you read what media writes. Remember (cringe) "hoverboards"? Consumer electronics manufacturing is all like that. It keeps pumping random crap, dynamically adjusting and readjusting to what is popular on the western markets. It's the exact opposite to central planning. China has come a long way, and it's most definitely not USSR under Stalin, like some would like you to believe.

> _I consider Chinese central planned system poisonous for innovation, > specially: "Chinese companies are fierce and grow out of alkaline land"._

I cringed at that paragraph too, but that is not the tell-tale sign of central planning. That's tell-tale sign of _capitalism_. Back-stabbing and lack of ethics is what you get when you unleash an insufficiently regulated market on unsuspecting people.

Anyway, China _is_ decentralizing. They've figured out that the economy grows better if you don't try to micromanage it so much.

> _What the last statement means is that Chinese companies have absolutely no > ethics, and in the end everything is about knowing-buying the people in > power because those people will remove your taxes or give you the permit or > credit or anything you need(and you need anything they want you to need or > else...)._

At the risk of committing a _tu quoque_ fallacy - hell, it takes some balls for us in the west to say things like that. Like our companies are _any different_.

> _In China you have to share your innovations with other companies, this > makes your bargaining power near zero while the company with more direct > line with power gets the profit._

There are good and bad sides to that. Around hardware manufacturing, sharing is actually good. At least good for them. Bad for the US companies, who make money on intellectual property. But ignoring the western IP is what let China iterate and innovate on hardware products quite well, to the point that the US had to pressure Chinese government into curtailing the behavior.

As for main point, "China is far beyond copying the West" \- in terms of software, this is totally true. The way they've integrated their digital and mobile services into daily lives is something that's almost unheard of in the West. She's not joking about how people there literally run half of their lives through WeChat. Every big Western Internet service has a Chinese equivalent that is somewhat similar, but heavily adapted to fit the local culture and lifestyle. They didn't just copy them, they innovated the hell out of them, to the point that those services offer better features than our own. For instance, Facebook is now desperately adding features to its app that are common bread for WeChat users.

TL;DR: China is not stereotypical North Korea. There are smart people there living happy lives and building cool stuff.

\----

> _Just watch CCTV for five minutes on a song festival and you will start > hearing songs about how great the Chines army is. In China you are > surrounded by this stuff all day._

This is an off-topic, but let me show you another POV on this difference. Here is a short clip comparing media coverage of the recent visit of the President of Poland to China. Left is Polish media, right is Chinese.

[https://www.youtube.com/watch?v=PFr9wWnwJt8](https://www.youtube.com/watch?v=PFr9wWnwJt8)

It's just one recent example, but there's tons of similar, and seriously - <USER2> our media are somehow "better" because they focus on irrelevant bullshit that's meant to amuse or outrage people, then _fuck our media_.

</comment></comment><comment><USER5> >>> ... I first attempted to stay in contact with US friends via Facebook Twitter, Instagram, via VPN of course. But every US service was slow — gmail, google cal were barely working. So half way through, I decided to fully embrace what China has to offer and disappeared from US Social networking sites.

A choice? I think not. Soft censorship. The degrading of one communication pathway to shift the target onto another is espionage 101 stuff.

<comment><USER4> In US and Europe you're subject to the US espionage. In China, you're subject to the Chinese espionage. What's so surprising there? You've just moved from one superpower to another, so your "surveillance provider" has to change. Or should they offer "roaming" services? :).

<comment><USER6> "Surveillance roaming" is called VPN. Unless your VPN provider uses backdoored gear, when the visited agency may get a peek at your traffic as well.

</comment></comment></comment><comment><USER7> _China is far beyond copying the West. Great innovation is happening everywhere in China._

China's principal reputation for copying is in manufacturing and industry; it seems that the author's experience is in what I might call "small apps" [1], but the more interesting copying has been at the heavy industry end of the scale; for example, copying the German Transrapid train design (or a Siemens power plant!). Does anyone know to what degree China is still in the copying phase of this kind of heavy industry, and how widespread it is? I do know companies that operate on the assumption that anything they build in China is unprotected and anything they sell to China is a technology transfer.

[1] Compared to, for example, massive desktop applications or operating systems or specialised contracted commercial software that will run for over a decade from initial tender to release.

<comment><USER8> >for example, copying the German Transrapid train design (or a Siemens power plant!).

If you're talking about the Shanghai Maglev then it's not a unauthorized copy but a licensed one[0].

[0] [https://en.wikipedia.org/wiki/Shanghai_Maglev_Train#Technolo...](https://en.wikipedia.org/wiki/Shanghai_Maglev_Train#Technology_transfer)

<comment><USER7> I'm talking about a group of people breaking into the storage area and spending the night examining and measuring foreign technology. That's not how licensing works. That's how reverse-engineering works.

</comment></comment></comment><comment><USER9> I use Baidu as my replacement for DropBox when I am in China. It works fine. One of my students set it up for me.</comment>


Why Silicon Valley Billionaires Are Prepping for the Apocalypse in NZ (2018) - <AUTHOR> https://www.theguardian.com/news/2018/feb/15/why-silicon-valley-billionaires-are-prepping-for-the-apocalypse-in-new-zealand <comment><USER2> > he vengefully bankrupted a website because he didn't like how they wrote > about him.

This is so uncharitable and dishonest. Sure it's technically true, but I think outing someones sexuality deserves to be noted as more than just 'didn't like how they wrote about him.'

<comment><USER3> The usual concern about outing someone's sexuality is the impact it might have on their personal safety or ability to obtain or maintain employment. Not in Thiel's case. There was no negative repercussion whatsoever -- the dude is super-villain rich. The bankrupting was just spite.

<comment><USER4> To clarify, you are ok with outing LGBTQ folks as long as there is no discernible repercussions?

<comment><USER5> To clarify, you are ok with billionaires having the ability to use the legal system to destroy any organization they personally dislike?

<comment><USER6> I think you unfairly are blaming the "billionaires" here and failing to acknowledge the organization bankrupted themselves by violating the law.

They didn't have to violate the law and expose themselves to a lawsuit for damages. Even then, they didn't have to spend themselves into bankruptcy fighting the lawsuit. They could have saved all the legal costs and accepted a judgement. Of course they could have not violated the law and avoided the lawsuit altogether. It seems to make sense the person who was damaged by the organization personally dislikes them, but that has nothing to do with the company going bankrupt, their own behavior is what lead to them going bankrupt.

<comment><USER5> Cool.

Did you know that Peter Thiel, in his own words, decided to "create a shell company to hire former investigative reporters and lawyers to _find_ causes of action against Gawker", and to then give it a starting timeline and budget of "three to five years and $10 million"?

<comment><USER6> >"create a shell company to hire former investigative reporters and lawyers to _find_ causes of action against Gawker"

Cool.

As I said, you can point the finger at the "Billionaire" but at the end of the day Gwaker's is liable for their unlawful behavior resulting in damages, that can't be blamed on Thiel. A Jury found Gwaker liable and awarded Hogan $140M, that bankrupted Gawker, not Thiel.

If Gawker didn't willfully publish stolen sex tapes of Hulk Hogan in violation of his rights, then Thiel would have wasted $10M and 3-5 years looking for something that doesn't exist, and they would still be in business.

<comment><USER5> Yah good point.

Most small businesses would suffer no harm at all from an adversary with an initial $10MM allocated toward an attack. After all, most businesses have no employees who have ever done anything even remotely questionable. And besides, it's super cheap and easy to win in court if truth and justice are on your side. (and the same in print; there's no way to for an investigative journalist to create disproportionately bad press)

You're definitely correct, right, and very smart. I agree with all of your points.

<comment><USER7> > _Most small businesses would suffer no harm at all from an adversary with an > initial $10MM allocated toward an attack_

If those small businesses had done shitty things like Gawker, then let them suffer!

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> I pity some of the ultra rich. Personal paranoias and neuroticisms like this can be indulged. Most involve loss of money or life, so you have quacks selling life-extending treatments, bunkers for when society collapses, and so on.

I don't see many people point this out, but societal collapse would be gradual, and there will be no safe haven. Plenty of people with boats will be able to make it to NZ, and money loses value outside of the societal structure that allows it to be traded for goods (you will not sell your food in a famine for any amount of money). The only way out is to prevent the collapse in the first place.

</comment><comment><USER9> I wish the author had spent more time dissecting the actual merits of the _Sovereign Individual_ thesis and why SV billionaires find it credible, and less time hurling bilious invective at Thiel.

Also, his summary of the whole Gawker affair is absurdly skewed -- Gawker was a terrible website that used the protections of our free society to ruin people's lives, and Thiel used our free society's libel laws to bankrupt it. He played by the rules and won in that case.

<comment><USER10> Anti barratry/champerty statutes went away because people were harassing the NAACP, not because we wanted to enable any rich guy squashing people saying things he doesn't like about him. What next? UK libel laws? The class system all over again?

<comment><USER11> So are you claiming that Gawker had the right to distribute Hogan's sex tape?

<comment><USER10> Couldn't Hogan have funded his lawsuit with whatever the final Gawker offer was Thiel rejected?

</comment></comment></comment></comment><comment><USER12> Has anyone read this book referenced:

[https://www.amazon.com/Sovereign-Individual-Survive- Collapse...](https://www.amazon.com/Sovereign-Individual-Survive-Collapse- Welfare/product-reviews/0684810077)

<comment><USER13> You might want to consider a short primer before delving into _any_ works of Rees-Mogg.

[https://www.theguardian.com/books/2018/nov/09/mystic-mogg- ja...](https://www.theguardian.com/books/2018/nov/09/mystic-mogg-jacob-rees- mogg-willam-predicts-brexit-plans)

</comment></comment><comment><USER14> "Because they have run out of things to do with their money"

</comment><comment><USER15> Because above the Maslow pyramid, there's some insanity zone

Seriously: people with too much money quickly get surrounded with yes men, who act as an echo chamber for these persons fears, and deliver them the white elephants they want. An apocalypse is very unlikely. But yeah, have this sweet NZ bunker. It's good for the local economy I guess?

Now they have their nice bunkers, I hope they start fearing death more, and invest in anti senescence research. This could benefit a lot of people besides NZ local economy.

<comment><USER16> Is it actually so unlikely considering the sheer number of ways it could happen? We live in a society where it's obvious that one event, one invention, and one person can have an outsize effect on all the rest. Thankfully, these end up usually being positive changes, but not always.

If you asked folks in 1920 how likely it would be that in less than 20 years there would be another awful World War and millions of civilians would be systematically slaughtered and turned into ashes, they probably would have said that is "very unlikely" too.

These people are educated, understand tail risks and have the means to try and hedge them. They are not insane, not even close.

<comment><USER15> I'm not saying that's insane - just that the probability multiplied by the consequences means they're misguided in being afraid of a global collapse instead of being afraid of their death that is GUARANTEED given our limited technology.

<comment><USER17> > they're misguided in being afraid

They might be spending 0.1% of their wealth (which they could never spend in 10 lifetimes anyway) on protection from an event (war on US soil or loss of their US assets) that has 0.5-5% chance of happening during their lifetimes. Put it like that, it is quite rational.

While even their entire wealth won't make them life forever. 100 billion is a drop in bucket for senescence research, especially if it has to yield results within 20-30 years.

<comment><USER15> Do you invest 0.1% of your wealth in things you considered to have 0.5-5% chance of happening? I don't. And I have a rather clear example in mind, something I do consider at a 5% risk and yet refuse to bother about.

I don't, because it's not just the amount of wealth, but the consequences, and the complexities it creates by snowball effect.

I don't want to talk about my stuff, but let's talk about their escape plans, as I can easily imagine how it would require some similar planning.

These properties in NZ will require upkeep. It will keep their mind thinking about that too. It will also cause other slight increases in costs (the example of getting into a plane: add the costs of a 24/7 on-call flight team + a spare plane in case the first one has some unexpected failure)

Even if they have someone whose job 24/7 is to take care of that, they may want to visit the NZ properties time to time, to make sure things are proceeding according to plan. Because you can't trust people for something as important as that.

And their mind will incorporate these limits into whatever other calculations. For example, a juicy business deal in Europe? A concert or a conference where they can physically meet with some key person? Sorry but they shouldn't go to that conference as it may be too far from NZ in a catastrophic scenario, with the airspace closed, if they don't have another plane+team in Europe too. What's another 0.1%? Sure, add this plane and team in Europe. Then you need a manager, a company, etc. Then you want to have that on every continent. Then you think, what if disaster strikes in APAC? Might as well get started buying other properties in Chile!

I guess it may be fun for preppers, but when you reevaluate the practical consequences, you come to the conclusion some things are better left undone, to have razor sharp focus on the things you want done.

Simplicy has many virtues, especially in planning. Burning some ships is not just an exercise in removing concentration - it also increases focus.

<comment><USER18> > Do you invest 0.1% of your wealth in things you considered to have 0.5-5% > chance of happening? I don't.

Powerball and Mega Millions seem like an existence proof to the contrary. I'm won't argue the upthread point that such an investment is _logical_ , but it's not senseless either.

"Prepper enclaves as scratch tickets for billionaires" sounds about right to me.

</comment></comment></comment></comment></comment></comment><comment><USER19> Is there a better argument for a land tax in NZ?

</comment><comment><USER20> There is probably one of many many apocalypse scenario where being in New Zealand would work out.

</comment><comment><USER21> Better make sure there's a nice place in the bunker for your pilot and his family...

</comment><comment><USER22> It's the usual Atlas Shrugged secret canyon pipe dream by the ultrarich.

Of courses that canyon was an imaginary sexual paradise of Ayn Rand and 100 millionaires, a strangely feminist construct for the bible of the idiot right.

Like if the collapse happens, the idiot rich will be doing all the work that they used to pay people with? What will they pay people with? Bitcoin? Zeroes in a nonexistent computer system? Gold?

</comment><comment><USER23> i dont know why the focus on Thiel, it's not like he s the sole libertarian in the world , and the idea that maximum freedom and democracy are not compatible is not uncommon among libertarians. even some democrats circa 2016 would agree</comment>


Seniority in Software Engineering - <AUTHOR> https://medium.com/swlh/seniority-in-software-engineering-aabf9706c4b0 <comment><USER2> "Working in the industry for a long time doesn't automatically bring seniority either" I can't emphasize this point enough. Most engineers, who are doing the same basic tasks every day over and over again for years, identify themselves as senior engineers. I understand that people like to stay in comfort zone when there is no need to get out, really. This is something I do too. However, this bothers me when these kind of engineers block and mock their colleagues(especially juniors) by convincing them he/she knows better, when they try to get out of their comfort zone and learn/do something new.

<comment><USER3> Indeed. As I've had to remind many people over the years, "doing the same basic work you learned in your first year repeatedly for 10 years is not 10 years of experience... it's 10 of the same one year."

<comment><USER4> I disagree a little. 10 years after you start painting you're still doing the same thing mechanically: putting paint on the brush on the canvas. But you are in a whole new game.

Too many programmers measure themselves by whether they're leveling up in the tools they're using and the kinds of problems they're solving. In some cases I think they're deluding themselves. They're on easy mode, creating a sensation of movement for themselves without ever getting into the hard stuff, which is not glamorous, it's things like naming and restraint and kindness and caching patterns.

I have kind of spent my whole career learning how to solve the same problems better. It's still the same DIVs and HTTP requests I was manipulating 20 years ago. But the game I am playing within an organization and within a platform is fundamentally new.

I can see how from the outside it might not look like I have "leveled up" but I think I have leveled up in my methodology.

<comment><USER3> I'd agree with your criticism of tool/new hotness as a bad metric for measuring leveling up. It's too easy to get the dopamine hit from novelty or being busy rather than putting in the real work that provides value.

We learn to solve the same problems better because we're exposed to the limitations of our initial naive understanding of those problems and the methods we choose, which may be sufficient in the first year, but over time that understanding becomes deeper and the methods become more elegant, reliable, and maintainable.

The wisdom and methodology improvements are necessary components of achieving 10 years of experience, but the 10 years of the same year approach literally is staying at the same level of understanding no matter the number of projects.

</comment></comment></comment></comment><comment><USER5> A senior engineer is someone 3 years into their career no longer willing to work for paltry wages. Stop glorifying something every mid 20s in the profession deserves. It only serves to keep the power in the hands of the corporate elites and the wage pressure down on an already meek, mostly economically illiterate and unconfident group of otherwise intelligent and productive individuals. If you want to write an article worshipping your ideal of a nerdy super-hero, make it about senior architects at FAANG earning 1 million+ per year instead.

<comment><USER6> > senior architects at FAANG earning 1 million+ per year instead.

How many of those are there?

<comment><USER7> Not nearly enough!

<comment><USER8> That's a great way to look at it.

Until people look at tech and see it as a good top tier career and finance as a fallback, we have progress to make.

</comment></comment></comment></comment><comment><USER9> I've been in an environment where technical's chops weren't a way to become senior. The software reflected this. I didn't like it.

In my opinion, technical ability must be table stakes. Without it you shouldn't even be able to begin the journey.

<comment><USER10> One of the details I remember from middle school is that the "ball hog" invariably looks down on the team player. I think perhaps one of the big lessons from junior sports is that this person isn't all that great in the scheme of things.

But a lot of us didn't pay too much attention to sports so I'm not sure how widely that lesson spreads.

My sport of choice was cycling. And one of the peculiar things about club cycling is that either everyone crosses the finish line or nobody does. I couldn't tell you for sure if that molded how I approach group dynamics or if the way they handle group dynamics is what drew me in. I think there are enough other moments in my childhood to say it was both.

The absolute worst person to put in charge, in my experience, is the person who writes the most baroque code. The person who _has_ to fix problems because nobody else knows wtf is going on is not a hero and shouldn't be celebrated. They're a ball hog. And hogging just leads to more hogging.

</comment></comment><comment><USER11> I'm struggling to understand who the audience of this post is.

At the end of the day, "Senior Software Engineer" is a job role, not some ideology. Pretty much every where I've worked, Senior means someone who knows the _why_. Most companies review the engineers already on multiple axes, not just technical merit. There is little value in baking these non-engineering skills into the definition.

Articles like these certainly don't help much with the impostor syndrome.

<comment><USER12> What aspect of the project are you referring to when you say "someone who knows why". I would imagine everyone on the team should know the "why".

How about, a Sr. Software Engineer is someone who can work on, whatever technical problem your team is trying to solve, with little to no supervision. They can also be expected to occasionally provide technical direction/assistance to others on their team.

Within that title you can always set grades to allow for progression in salary and experience. Sr. Software Engineer II or III and so on.

</comment></comment><comment><USER13> After all, business wants to make money and solve their problems. And the more independent and effective you can do it, the higher your role will be. Businesses can be different and the roles have different requirements as well.

And the top skill of the engineer is not the list of known programming languages, not the ability to close tasks, not knowledge of the bazillion algorithms, not certificates of the scrum master. Namely, the ability to take a real problem and solve it yourself is the main skill of a professional. Solve it yourself does not mean alone. By yourself means to be able to find the necessary resources, people, set tasks, control the result and bear responsibility for this.

</comment><comment><USER14> so someone that spent 12 years writing brilliant APIs and implementations, advanced the state of their field and their company's business, but they are fairly mediocre at being team players (not going to name names and get into flamewars but I can certainly come up with a half dozen famous names off the top of my head), they're ...junior engineers?

<comment><USER15> You're intentionally missing the point. It's a heuristic, not a requirement.

<comment><USER16> From the article:

"Overall, if I were to list traits of a senior engineer, technical skills wouldn't be in the top 3 on that list."

</comment></comment></comment><comment><USER17> Anytime I see someone signal that they freight the "senior" in "senior engineer" with a ton of significance (self-import?), they fall in my estimation a bit.

That move says something about their frame of reference, and what it says doesn't do them any favors.

Leaving aside its intimation of a possible inferiority complex being overcompensated for, here are some observations:

1\. "Senior engineer" is a mid-level title at high-prestige tech companies.

2\. Organizations with flat teams (a model that typically only functions well when everyone is relatively senior) have no reason to load the title with a ton of significance.

So when you pontificate about the importance of the senior engineer, you suggest that you (1) are not at a high-prestige company, (2) work in a more hierarchical team structure. Neither possibility is flattering.

FWIW, I would consider every point outlined in this medium post to be a desideratum for any engineer, regardless of seniority level.

</comment><comment><USER18> There was a very good blog post about this by Silvia Botros, though she uses "principal engineer" as the label: [https://blog.dbsmasher.com/2019/01/28/on- being-a-principal-e...](https://blog.dbsmasher.com/2019/01/28/on-being-a- principal-engineer.html)

</comment><comment><USER19> > A senior engineer should have T-shaped knowledge. It is expected from a > senior engineer to have broad knowledge about various topics and deep > knowledge about some topics.

More than that. A senior^Wgood engineer should be a generalist who can specialize as needed.

</comment><comment><USER3> I think the article has some good points regarding the expectations of a senior engineer but also seems to conflate the duties of a team lead with senior engineer, but in my experience those are two different roles (and usually titles).

<comment><USER20> Which ones do you have in mind?

Maybe "A senior engineer should support their peers" and "A senior engineer should empower their peers through their career track"? and I think those should be mandatory for a good team lead, but they don't really hurt in a senior either. I think the article focuses a lot of one definition of senior who is a good team player as well and not the star coder/hero of the team who pulls all-nighters and whose code no one understands. There are some areas where you need these people, but I'd rather go with the team players most of the time

I think "A senior engineer should be a motivator for the rest of the team" is a bit odd, but maybe rephrasing it to "A senior engineer shouldn't be the one complaining all the time.", if I was hypothetically speaking about myself :P

<comment><USER3> Yeah, a senior engineer role is most assuredly is NOT "all-nighters and unreadable code." But neither is it necessarily the mentor style of role that the author advocated, which is more appropriate as the job duties of a team lead.

A senior engineer most assuredly should be the one that thinks about the problem at hand in a deep way, preferably understanding the business needs and such, and provides solutions that not only solve the immediate need but also has the flexibility to anticipate future demands. It would also be nice if they proactively tried to improve less-senior engineers via mentoring and contributed leadership to team building but those are, in my opinion, bonus attributes rather than fundamental necessities.

</comment></comment></comment><comment><USER21> 'Senior' doesn't mean anything except within a single company. My very first job was as a 'senior'. See it as just level X within some company and don't worry about the word itself and don't try to compare.

</comment><comment><USER22> "Senior" at my company evaluates to "indispensable." If you aren't senior, then your performance is at a level that your employment can be terminated for cause. "Senior" means you are on the bus in the bus factor.

</comment><comment><USER23> Quote: "Overall, if I were to list traits of a senior engineer, technical skills wouldn't be in the top 3 on that list."

...aaaand that's where I stopped reading this. It's like saying sex isn't in top 3 marriage binders.

</comment><comment><USER24> Good points, LinkedIn asks this question in behavioral interview "whats the difference between junior and senior engineer"..I had similar points but you have articulated it very well.

</comment><comment><USER25> Tech Lead here, 20yrs or so experience I guess it is now, I don't know what counts and what doesn't.

That's a good list, but I find it's very difficult for any one person to live up to all of that. It's asking a lot. How is my role going? They're asking a lot of an introvert who is fun to work with but not great at motivating others or being empathic. I'm a decent leader, but not a great leader, nor will I ever be. It's just not my gift and while I try to improve those skills, I know that I will only get so far because I'm not a corporate person at heart. I have no great respect for how US companies are managed, no great respect for managers, especially the MBA variety, whom I compare to parasites--blood sucking, unethical scoundrels. I don't wish to be "the worst of us." I get that many of them didn't set out to be that way, but something about corporate culture germinates profound psychopathy in people.

Not going to lie to you, being a "software engineer" (an extremely loaded term these days, and I argue, one that isn't a correct labeling of anything we do-- there is no "engineering" whatsoever) and the role is not worth the money they pay you. "Information Sharecropper" has a more honest ring to it.</comment>


Warez, cracks and serials .. by Yahoo - <AUTHOR> http://forum.sh3bwah.maktoob.com/f45/

<comment><AUTHOR> Sh3bwah is the largest warez forum in middle east, owned by maktoob.com group which yahoo acquired almost two years ago.

<comment><USER2> And Yahoo didn't pull it down? weird.</comment></comment>


"Feisty" Steve Jobs Ponders a $40B Shopping Spree at Apple Shareholder Meeting - <AUTHOR> http://www.fastcompany.com/1563818/apple-shareholders-meeting-steve-jobs?partner=rss&utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+fastcompany%2Fheadlines+%28Fast+Company+Headlines%29&utm_content=Google+Reader <comment><USER2> Not enough meat in the article. It's shorter than my rather "fluffy" blog posts.

I expected a little more from Fast Company (enjoyed their writeup on Markus Finch of plenty of fish a while back).</comment>


New Google 404 page (sample link) - <AUTHOR> http://www.google.com/foobar

<comment><AUTHOR> The title of the page is "Error 404 (Not Found)!!1".

Someone released the Shift key before finishing typing ;)</comment>


Xz format inadequate for long-term archiving (2016) - <AUTHOR> http://lzip.nongnu.org/xz_inadequate.html <comment><USER2> This guy used to go around GNU mailing lists (and others) trying to get us to use lzip.

[https://gcc.gnu.org/ml/gcc/2017-06/msg00044.html](https://gcc.gnu.org/ml/gcc/2017-06/msg00044.html)

[https://lists.debian.org/debian- devel/2017/06/msg00433.html](https://lists.debian.org/debian- devel/2017/06/msg00433.html)

It was a bit bizarre when he hit the Octave mailing list.

Eventually, people just wanted xz back:

[http://octave.1599824.n4.nabble.com/opinion-bring-back- Octav...](http://octave.1599824.n4.nabble.com/opinion-bring-back-Octave-xz- source-release-td4683705.html)

<comment><USER3> Everyone's gotta have their white whale, I guess.

</comment></comment><comment><USER4> Previous discussions:

[https://news.ycombinator.com/item?id=12768425](https://news.ycombinator.com/item?id=12768425)

[https://news.ycombinator.com/item?id=16884832](https://news.ycombinator.com/item?id=16884832)

</comment><comment><USER5> Interestingly, since "recovery" is mentioned several times, I decided to test myself.

I took a copy of a jpeg image, compressed it different times with either gzip or bzip2, then with a hexeditor modified one byte.

The recovery instructions for gzip is to simply do "zcat corrupt_file.gz > corrupt_file". While for bzip2 is to use the bzip2recover command which just dumps the blocks out individually (corrupt ones and all).

Uncompressing the corrupt gzip jpeg file via zcat at all times resulted in an image file the same size as the original and could be opened with any image viewer although the colors were clearly off.

I never could recover the image compressed with bzip2. Trying to extract all the recovered blocks made by bzip2recover via bzcat would just choke on the single corrupted block. And the smallest you can make a block is 100K (vs 32K for gzip?). Obviously pulling 100K out of a jpeg will not work.

Though I'm still confused as to how the corrupted gzip file extracted to a file of the same size as the original. I guess gzip writes out the corrupted data as well instead of choking on it? I guess gzip is the winner here. Having a file with a corrupted byte is much better than having a file with 100K of data missing...

<comment><USER6> Your method is clearly flawed. Altering a single byte once is insufficient as a test unless you analyzed the structure of the compressed file first to see where the really important information is stored. It may well be that you just modified a verbatim string from the source data in the gzip case, but corrupted a bit of metadata about how the compressed data is structured in the bzip2 case. If you tried a different random bytes, the results might be reversed.

The proper test would be to iterate over every bit in the compressed file, flip it and try to recover. Then compute number of successful recoveries against the number of bits tested. Compression algorithms that perform similarly should gmhave similar likelyhoods that a single bit flip corrupts the entirety of the data.

<comment><USER5> I thought about that as well. I tried it three different times all with the same results.

<comment><USER7> Three? Well then, case closed!

<comment><USER8> Did the poster imply that their test was the be-all and end-all of error tolerance in common-use compressions systems? No. Then why did you assume that they did say that, and then write such a useless comment

</comment></comment></comment></comment></comment><comment><USER9> Not that many of the complaints aren't reasonable, but I thought that in general compression/format was orthogonal to parity, which is what I assume is actually wanted for long-term archiving? I always figured that the goal should normally to be able to get back out a bit-perfect copy of whatever went in, using something like Parchive at the file level or ZFS for online storage at the fs level. I guess on the principle of layers and graceful failure modes it's better if even sub-archives can handle some level of corruption without total failure, and from a long term perspective of implementation independence simpler/better specified is preferable, but that still doesn't seem to substitute for just having enough parity built in to both notice corruption and fully recover from it to fairly extreme levels.

<comment> matt-attack I think with archiving it's more than that. Sure you can guarantee that the actual tool you just compressed with can restore the original perfectly. But with long term digital archiving I think you need the assurance that the "spec" called "xz" could be perfectly reimplemented by an expert in the future. Based solely on documentation. And on a platform that doesn't exist today. That is, you must assume the original executable is either not available or not able to be executed.

<comment><USER10> Why would they need to recreate it solely based on 'documentation'? It is open source, the source code is the documentation. It seems just as likely that the source would survive as it is likely that some complete technical documentation would survive. Maybe they wouldn't be able to compile it (probably they would be able to compile it, I don't see why they wouldn't have some kind of computer emulator available), but it's better than any other kind of documentation you could provide.

The src/ tree of xz is 335k (compressed with gzip). If you are worried future digital historians won't be able to figure out the xz format, throw a copy of the gzip'd source onto every drive you store archives on, it would basically be free and would almost guarantee they would have a complete copy of exactly what they would need to decompress the files.

<comment> matt-attack You're exhibiting shortsightedness when it comes to "source". If I give you some RPG [1] or maybe some ALGO 58 [2] source code are you going to just compile and run it no problem? How about some FLOW-MATIC [3]?

Point being that computer languages come and go.

[1] [https://en.wikipedia.org/wiki/IBM_RPG](https://en.wikipedia.org/wiki/IBM_RPG)

[2] [https://en.wikipedia.org/wiki/ALGOL_58](https://en.wikipedia.org/wiki/ALGOL_58)

[3] [https://en.wikipedia.org/wiki/FLOW- MATIC](https://en.wikipedia.org/wiki/FLOW-MATIC)

<comment><USER10> Yes, programming languages come and go, but I don't see how that matters. Some future historian will either have access to a working copy of xz or they will not. If they don't, and they want to implement it, having a copy of the source code is far better than anything else you could give them. Sure, future programming languages will be quite different, but humans will certainly be able to read and understand C code. If humanity has forgotten how to read C code (and lost all knowledge of it), how are they going to read this documentation you seem to prefer? Human languages come and go also..

[https://en.wikipedia.org/wiki/Egyptian_hieroglyphs](https://en.wikipedia.org/wiki/Egyptian_hieroglyphs)

[https://en.wikipedia.org/wiki/Judaeo- Aragonese](https://en.wikipedia.org/wiki/Judaeo-Aragonese)

[https://en.wikipedia.org/wiki/Latin](https://en.wikipedia.org/wiki/Latin)

Any argument you can make about historians being able to recover dead languages you can make the exact same argument for their ability to recover dead computer languages, and there is no better or more accurate specification than the actual code.

So let me add to my recommendation, in addition to a copy of the xz source code, include a plain text copy of any 'how to program in C' book, or just the wikipedia page for the C language. That is more than enough for them to construct a program that can decompress xz files, once they relearn how to read whatever long dead language the book is written in (Ancient Pre-Cataclysm Earth English for example).

<comment><USER8> > If humanity has forgotten how to read C code (and lost all knowledge of it), > how are they going to read this documentation you seem to prefer?

Sure but are they going to remember something like, weird precedence rules (See: &), undefined behaviour, etc. Just because they want to reimplement a specific, small, program does not mean they want to relearn several languages. What you're saying could easily blow up from 'how to code C' to 'reading the GCC / Clang compiler source code to figure out how a specific UB was implemented, which the program in this specific case falls into', which I'm sure nobody wants to spend their weekend doing, implementing something like `xz` could simply be a midpoint in their destination, they don't want to spend weeks digging up COBOL. Have at least _some_ consideration for the human element, jeez.

Documentation, specifically _mathematical_ documentation, is more fault tolerant than either psuedocode or actual code.

At any other time, I would agree with you, but where archivism is concerned, I do not.

<comment><USER10> >> What you're saying could easily blow up from 'how to code C' to 'reading the GCC / Clang compiler source code to figure out how a specific UB was implemented, which the program in this specific case falls into', which I'm sure nobody wants to spend their weekend doing

There will be many, many people that will gladly dig into the minutia and technical details of arcane hardware, especially when it means making progress towards filling in the historical record. This is already the case today, there is a working [https://en.wikipedia.org/wiki/Colossus_computer](https://en.wikipedia.org/wiki/Colossus_computer) reconstructed just because it was historically significant.

<comment><USER8> I think you missed the implication that I didn't state explicitly, but figured was pretty clear:

> which I'm sure nobody wants to spend their weekend doing [if their original > goal was to simply reconstruct xz].

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> > _" 3 Then, why some free software projects use xz?"_

Because the files are usually smaller than gzip, with faster decompression than bzip2, and the library is available on most systems.

<comment><USER12> Archiving for distribution and backups are very different things. You don't care if some app distribution compressed file gets corrupted, you just compress again but your compressed backup files usually don't have much source of reference.

I wouldn't use any unreliable format for backups. I picked bzip2 for stability and compression rate.

<comment><USER11> In my opinion, the compressor is not the right place to add data integrity mechanisms, especially since data integrity mechanisms only really apply to particular media. Data on hard drives don't get corrupted in the same way as data on TLC SSDs, and generally on the latter you're better off with redundancy and diversification, than with inline error correcting codes.

Honestly, I don't see why xz should have _any_ of its own data integrity mechanisms whatsoever, except maybe a whole-archive CRC32 or similar.

<comment><USER13> Right. The purpose of an archiver/compressor is to store a bunch of files together, and use as little space as possible to do it. Data integrity / error correction / redundancy all lie in the opposite direction of that goal.

</comment></comment></comment></comment><comment><USER14> How about something like ZPAQ instead for archiving? Especially if you're doing backups and not a lot of the information is changing.

</comment><comment><USER10> No file format is perfect, I've been using xz for years and I can't think of a single issue I have had. The compression rate is dramatically better than gzip or bzip2 for many types of archives (especially when there is a large redundancy, for example when compressing spidered web pages from the same site you can get well over 99% size reduction compared to 70% reduction for gzip, which means using less than one 30th of the disk space).

Lately I have been using zstd for some things since it gives good compression and is much faster than xz.

This criticism of xz just seems nit picky and impractical, especially if you are compressing tar archives and/or storing the archives on some kind of raid which can correct some read errors (such as raid5).

</comment><comment><USER15> I remember seeing this article before. This time the reaction that surges for me is: if you want long-term archiving but don't assume redundant storage, it's not going to go well. Put your long-term archives on ZFS.

<comment><USER16> Why are you assuming they aren't assuming redundant storage? Redundant storage isn't a cure-all, there's still a chance two blocks on two disks will fail in the exact same spot.

<comment><USER17> I reckon that the chance of the same two blocks on two different disks failing between ZFS scrubs would be incredibly small.

<comment><USER18> It is incredibly small if you don't consider either drive failing. But if one drive fails, it happens with some regularity that a sector on the good drive is bad. In actuality, only one sector is bad, but in effect the dead drive means its mirror is also bad.

This comes up on the linux raid list with some frequency whenever there are drive failures with raid56, and the subsequently the raid trips over a single bad sector.

But it's true that lack of scrubbing contributes to this scenario, as well as the terrible combination of consumer drives with very high bad sector recovery times and the Linux SCSI command timer default of 30 seconds. That combination ends up causing a masking of bad sectors that end up not getting repaired, and as a user you may not realize that the link resets are not normal and suggest a bad sector as the cause.

<comment><USER19> Are you saying that a failure happens which isn't detected and when the 2nd failure occurs we notice because the data is inaccessible?

Which raid s/w does this ?

<comment><USER18> Correct. All that depend on the SCSI block layer, which includes libata and thus common consumer SATA drives. A NAS or better drive will come out of the box with short error time outs, typically 70 deciseconds, and quickly issue a read error with the LBA of the offending bad sector, and the RAID can then know to obtain a copy or reconstruct from parity, write the good data to the bad sector thus fixing it. Either the write works, or if it fails the drive firmware is responsible for remapping that LBA to a reserve physical sector.

In the case where the drive error timeout is longer than the SCSI block layer, it just results in a link reset. The actual problem with the drive is obscured by the reset, including the bad sector, so it never gets repaired.

Btrfs, mdadm, lvm are affected and I'm pretty sure ZFS on Linux as well assuming they haven't totally reimplemented their own block layer outside of the SCSI subsystem.

It's a super irritating problem, the kernel developers know all about it, but thus far it's considered something distributions should change for the use cases that need it. And what that means so far is distros don't change it and users using consumer drives with high error recovery times, get bitten.

[https://raid.wiki.kernel.org/index.php/Timeout_Mismatch](https://raid.wiki.kernel.org/index.php/Timeout_Mismatch)

<comment><USER19> The link you posted talks about the raid software kicking a whole disk out of the raid array when the disk takes too long to respond (basically but not exactly) due to 2 timeout variables mismatch

The post I was responding to implied a raid array could be degraded and you wouldn't know till it completely failed

Interesting nevertheless

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> A bit of speculation here, but perhaps xz won over lzip because it has a real manpage?

lzip has the usual infuriating short summary of options with a "run info lzip for the complete manual". Also the source code repository doesn't even seem linked directly from the lzip homepage - technical considerations aren't the only thing that determines if software is "better", it also has to be well presented.

</comment><comment><USER21> xz-utils should implement parallel decompression already. pixz is doing it, but stock xz is not. Most end users benefit from faster decompression.

</comment><comment><USER22> This should have (2016) in the title.

<comment><USER23> and "from the author of lzip, a competing lzma library that never went viral".

Welcome to the Better Technology that Shoulda Made It bench. Your seat's over there next to OS/2, BeOS, and OpenGenera.

<comment><USER24> Amiga forever!!!!!!

<comment><USER25> Ha! I just wanted to add this. But you did it first! :-)

</comment></comment></comment></comment><comment><USER26> If you first use tar to preserve xattrs/etc.. then you can use anything to compress. xz, bz2, 7z, even arj if you are feeling nostalgic.

        tar cvfJ ./files.tar.xz /some/dir

<comment><USER27> You've missed the point of the article entirely. A single bit-flip (which is almost guaranteed over _long-term_ ) can easily render the _entire_ xz file corrupt.

This has nothing to do with xattrs/etc.

<comment><USER26> Yes, I am totally on auto-pilot today. I'm used to a different article that gets re-posted often about xz and my browser blocks non-https sites so I assumed it was that other article.

That said, I use xz in automation that compresses files on one end and decompresses on the other. I've not had any file corruption thus far. checksums always match. Hopefully the author has submitted bug reports and ways to reproduce.</comment></comment></comment>


iPhoto 11 upgrade problems - <AUTHOR> http://discussions.apple.com/thread.jspa?messageID=12476421 Erratic reception problems? An inconvenience, at most. Irrecoverably losing hundreds of gigabytes of your users' irreplaceable photos? That's way, way worse. <comment><USER2> Nice headline. Digg may be dying, but its spirit clearly lives on.

<comment><AUTHOR> Heh, I'm a newbie submitter, request forgiveness. It just struck me that this is a much worse problem in terms of user impact than any problems with antenna, I suppose I overdid it with the headline. It won't let me edit it any more, otherwise I'd try to fix it.

</comment></comment><comment><USER3> All mine went fine. This actually was the least problematic upgrade of iPhoto so far. Is there some time thing on this or is it happen/doesn't happen?

// what's with the very un-HN headline?

</comment><comment><USER4> I had no problems with iPhoto 11 but historically iPhoto upgrades have been hit or miss for some so it doesn't really surprise me. Hopefully people will learn to backup someday. You just can't trust any software with your data. I'm not sure Apple is any better or worse at this than others but you might as well assume they do zero testing and your data is just a big joke to them. If everything works you're pleasantly surprised. If it catches on fire you have nothing to worry about.

</comment><comment><USER5> Why would iPhoto keep the photos themselves in any other format than the original files and just point to them from the metadata store? The most I would to with the files would be to compress them using some lossless (obviously) algorithm, keeping the filenames and formats... This way, the worst that could happen would be metadata corruption for the new version's metadata with preservation of the original information.

</comment><comment><USER6> A software program having a bug is news?

</comment><comment><USER7> And as expected, Mr. Gruber downplays this terrible, terrible bug.

<http://daringfireball.net/linked/2010/10/25/castro-iphone>

If Microsoft (or Adobe) released an update to the software which wiped out data as precious as your personal photos, I am sure he would not talk about backups, but thrash the company.

<comment><USER8> Seriously, you can't take a Mac advocate's casual blog post, _post it here yourself_ , and then argue that it isn't fair and balanced enough. It is not Jon Gruber's job to shout from the rooftops when things go wrong with Apple products.

And chances are, if it is a real problem, there will be a starred long-form blog post forthcoming from Gruber describing it in more detail.

This is among the more tiresome recurring complaints on HN. "Gruber is biased". Shocking! Next you'll tell me John Nack really isn't critical enough about Adobe! Can we give this a rest?

<comment><USER9> _It is not Jon Gruber's job to shout from the rooftops when things go wrong with Apple products._

No, it's not, but given the influence that his blog has, being widely read both inside and outside Apple, it's a real shame that he doesn't. It would be a wonderful thing if he held Apple to account more often.

<comment><USER8> This makes no sense to me. He practically started the blog to write glowing things about Apple. He has the influence has has because he is an extremely good writer; he's tight, pithy, is relentlessly creative, and has a unique voice; he's also very well-sourced, which sets up a virtuous cycle for him. He didn't get his donation as a line item grant from the Corporation for Public Broadcasting and he doesn't owe us anything.

I actually don't agree with the narrative that Gruber is a shill, but even if we stipulate that he is to avoid an unproductive argument: so what?

<comment><USER10> I've read Gruber for years, and it used to be a mix of "interesting stuff in the Apple world", "Kubrick/Baseball/BBedit/Applescript/typography nits" and "criticisms of Apple" (usually centred around lack of attention to detail, interface annoyances or not being faithful to the pre-OS X way of doing things).

As an Apple owner and fan, I enjoyed reading those intelligent criticisms. Clearly this has changed, but lets not go rewriting history.

The last line of his first blog post:

 _"But if it's the latter — that is, if pro users are giving the finger to Mac OS X — things could get ugly."_

I wonder why he felt more able to criticize them when they were "beleaguered" than now, when they're on top of the world. Possibly it's no more than being a crotchety OS 9 user thrust into the strange and uncomfortable world of early OS X. Some evidence of that here:

<http://daringfireball.net/2002/09/welcome_indeed>

On the other hand maybe he's checked his stats and found that trolling pays better.

And just for fun here's some claim chowder from one of his early posts:

 _"a vaporware Apple-branded mobile "iPhone" is getting a lot traction. Go ahead and read it, but remember that it's all bullshit speculation at this point."_

<comment><USER8> He said that in _2002_.

<comment><USER10> That was a merely an amusing-in-hindsight observation, I even telegraphed it with the introduction of "just for fun".

Maybe the tipsters were right and there was a skunkworks project working on the iPhone even then (Jobs says the iPhone grew out of iPad work that must have been going on for years before we saw the iPhone, never mind the iPad) or alternatively maybe Apple picked up the name for their product from the rumours. Either way I find it interesting, and it underscores the old adage that making predictions is a mug's game.

</comment></comment></comment></comment></comment></comment></comment><comment><USER11> I hardly think it's worse than antennagate. The iPhone's antenna issues caused so much of a stir because they impact the basic usage of the device. Is iPhoto such a core piece of MacOS functionality that this bug will make people stop buying Macs?

Then again, the timing along with the iPhone screen lock bug could have been better...

<comment><USER12> How is taking pictures and saving them on a computer not a core piece of how a lot of mac users use their computers? Not to mention losing precious data like personal photos that cannot be replaced is far worse than a dropped call.

</comment></comment><comment><USER13> _in other news, apple reported record sales of its time capsule automated backup devices this week..._

<comment><AUTHOR> Maybe if time capsule actually went back in time...</comment></comment>


Angel Financing: How long until I get my money? - <AUTHOR> http://www.startupnorth.ca/2007/10/06/angel-financing-X-how-long-until-i-get-the-money/ In any early stage company, availabiliy of cash to fund operations & growth is an area of prime concern. So in this article I will talk about the timelines around securing angel financing. I will outline a hypothetical week by week timeline as a company progresses through the funding process. Obviously every situation will be unique so take this all in context. <comment><USER2> [http://www.startupnorth.ca/2007/10/06/angel- financing-%E2%80...](http://www.startupnorth.ca/2007/10/06/angel- financing-%E2%80%93-how-long-until-i-get-the-money/)

</comment><comment><USER3> For some reason I find this article title disturbing. "Where's my money?" like a drug deal gone bad and people start shooting each other.

Plus the link doesn't work.

</comment><comment><USER2> looks like there was a non-standard dash in the URL and it was filtered out of the submission instead of replacing it with the escape characters</comment>