[Ask HN]How do I learn ruby on rails, if I already know a few other frameworks. - <AUTHOR>

I know Django fairly well, and want to learn Rails. Mostly, it is to know what am I missing in Django, and to port what I learn learning rails to do better Django. How should I start?
You can answer the question so it is general enough that other people may learn, but in case you want too answer something specific to me, here is what I know. I know a few languages/frameworks fairly well.
Php: Basics
Struts: Well
A few other Oracle specific frameworks: (http://www.oracle.com/technology/products/adf/index.html): Well.
Django: Very well.
[Edit]: I prefer a ebook. It does not need to be free, though. <comment><USER2> Guides:

<http://guides.rubyonrails.org/>

<http://asciicasts.com/> (text versions of the railscasts mentioned below)

Screencasts:

<http://rubyonrails.org/screencasts>

<http://railscasts.com/>

Books:

[http://www.pragprog.com/titles/rails3/agile-web- development-...](http://www.pragprog.com/titles/rails3/agile-web-development- with-rails-third-edition)

<http://www.pragprog.com/titles/fr_arr/advanced-rails-recipes>

And others in the Ruby and Ruby on Rails sections at prag progammers: <http://www.pragprog.com/categories>

The "pickaxe book" (<http://www.pragprog.com/titles/ruby/programming-ruby>) is often considered the standard Ruby reference, and there is a version for 1.9.

API:

<http://railsapi.com/>

<http://api.rubyonrails.org/>

<http://www.gotapi.com/rubyrails>

Conference presentations:

<http://www.confreaks.com/events>

IRC:

irc://irc.freenode.net/#ruby-lang

irc://irc.freenode.net/#rubyonrails

Google Group:

<http://groups.google.com/group/rubyonrails-talk>

Ruby and Rails projects are abundant on github, providing lots of example code.

<comment><USER3> And for a good Ruby book, David Black's Well-Grounded Rubyist is pretty good: <http://www.manning.com/black2/>

</comment></comment><comment><USER4> My _Ruby on Rails Tutorial_ book isn't finished yet, but the first five chapters are done, with a sixth to be released this coming week. Check it out at

<http://www.railstutorial.org/book>

and let me know what you think.

N.B. Most of the other resources recommended on this thread assume that you already know the basics of Rails; _Ruby on Rails Tutorial_ aims to give you exactly the foundation you need to move on to these more advanced materials.

</comment><comment><USER5> The agile development with rails book is pretty good to get you started. You might want to have a good Ruby reference handy too. There's a lot to learn! I went from rails to django and had a few hiccups but overall it wasn't bad. I'm interested in how well it goes in the reverse direction.

<comment><USER6> While a bit outdated, it's one of the best "getting started fast" books out there.

<comment><USER7> I second that. I'd also recommend downloading the source code to Beast (the discussion forum) and just reading over it.

</comment></comment></comment><comment><USER8> Ive been in the same boat lately. Php developer wanting to learn a more modern framework/language.

I started by reading the first couple of chapters of RailsTutorial.org. That got me off to a greatstart. I then read the first several chapters of Whys poignant guide to get more of the basics. After that I dove in a started my first app and have just been learning as I go along.

<comment><USER9> I'm going the opposite way! Python/Django dev moving to PHP from small and/or CMS type projects. I'm really liking Kohana (a fork of codeigniter) as a Rails/Django etc type RAD framework for PHP.

</comment></comment><comment><USER10> Read the Rails Guides (<http://guides.rubyonrails.org/>) and check out the Rails from Scratch series on Peepcode (<http://peepcode.com/products/rails- from-scratch-part-i>) -- they both got me up to speed pretty quickly.

<comment><AUTHOR> I tried reading the rails guide, but I would like something which assumes a little more experience on my part, and moves quickly in the deeper parts.

<comment><USER11> Try just in time rather than just in case learning about it, then. If you think railsguides are too easy, I won't suggest railstutorial.org, even though it's unfinished, it's excellent.

But yeah, maybe the best way for you to learn would be start a little project, and look up things as you go. Don't forget to use gems. There's no reason to write a test harness, there's cucumber. No reason to write user login systems, there's authlogic. The list goes on.

</comment></comment></comment><comment><USER3> And for looking at code of a full app, Jetpack Web posted a list of some great examples (including the gems, testing framework, etc that they use): [http://jetpackweb.com/blog/2009/10/14/high-quality-ruby- on-r...](http://jetpackweb.com/blog/2009/10/14/high-quality-ruby-on-rails- example-applications/)

</comment><comment><USER12> $> rails myproject && cd myproject

$> script/generate scaffold item name:string description:text

$> rake db:migrate

$> script/console

>> item = Item.new({:name => "thing", :description => "blah"})

>> item.save!

>> Item.first

That's a start. The console helps quite a lot if you just want to play around with Ruby or any of the Rails modules. The list that carbon8 posted is a great start as well, and explains all the different aspects of the framework, etc.

I'm a fan of Rails and Ruby. Also, I recommend maybe switching out my "scaffold" example, installing the rspec gems, and doing "rspec_scaffold" instead. It's a good idea to get used to a testing framework if you're going to be involved in a significantly scoped project.

Enjoy!

</comment><comment><USER13> Prag prog's book on rails is good. So is Rails Way. Prag prog's book is more tutorialish, and rails way is a good reference. I'd suggest starting with the prag prog's book and then go to rails way.

</comment><comment><USER14> I'll tell you what you'll miss in Rails ... the forms API in Django is as God intended to. In Rails forms are coupled with models ... and this was my biggest pain when tried it ... maybe someone can point out some equivalent module for Rails?

<comment><USER15> I've heard good things about Formtastic, though never used it myself: <http://github.com/justinfrench/formtastic>

Forms in Rails aren't absolutely coupled to models - you can use the '_tag' form helpers to build a form that doesn't have an underlying model, or to add fields that aren't attributes on the model.

</comment></comment><comment><AUTHOR> Also, I would like to learn Rails 3, or keep as mush of what I learn applicable to rails 3.</comment>


PostCorona: Write a letter now. Receive it when coronavirus ends in your area - <AUTHOR> https://postcorona.me <comment><USER2> Nice idea, but what defines the "end of coronavirus"? Do you mean "end of lockdown"? What defines a "lockdown"? It sure looks like there will be some measures in place for a very long time.

Also, some countries don't have a unified way of looking at things, but deal with it on a more local (e.g. state) level.</comment>


Dear MG Siegler, Are you seriously upset about your photo? - <AUTHOR> https://plus.google.com/112063946124358686266/posts/SMhmTHjuRuu <comment><USER3> The TechCrunch crew has a long history of "calling out" major companies on their product decisions, in the absence of any of the data or context in which such complex decisions are made.

P.S. I love how Tom has turned into the elder statesman of social networks.

<comment><USER4> Not to mention MG Siegler's long history of calling out Google. Always skeptical.

But totally loving the elder statesman analogy. Best part about Tom"s reply is his own humility--Myspace having "decent" technology.

<comment><USER5> Not to mention MG Siegler's long history of self-promotion.

<comment><USER6> not to mention EVERY TECHCRUNCH WRITER's long history of self-promotion.

/fyp

<comment><USER5> I have never seen any story like "ROBIN WAUTERS WONDERS WHY ROBIN WAUTERS ISN'T IN THE HEADLINES," like you see multiple times per week with MG...on HN. Is he the most gossipy person there, now? This is usually the kind of drama you see with Perez Hilton type personalities.

<comment><USER7> Well, we had those with Arrington, but fortunately he seems to have "vanished" from the HN mind...

<comment><USER5> That's a good point: MG might just be bored because he doesn't have enough interesting work to do, so he's going to stink up the place until people give him work/money/cocktail-weenies.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> He's _not_ "seriously upset" about the photo. He thinks what's happening is ridiculous, and therefore took the time to ridicule it. He's clearly right. But it's not a moral crusade.

<comment><USER9> Tom Anderson gets it the wrong way round, and completely misses Siegler's point.

The question is not is why does Siegler care. He can reasonably expect to care: it's his photo attached to his personal profile and his photo is part of how he chooses to portray himself online. Siegler now knows that he cannot be himself on Google+, and now thousands of others know that they cannot be themselves on Google+ either.

The question is: why does Google care so much that about the minutae of how individuals choose to portray themselves while they face much greater problems related to the success or otherwise of their new social network?

Putting aside the spam problems that render Google+ at best noisy and at worse useless, if Google is so intolerant that it silently censors a hand gesture considered impolite in where their HQ is based, how else will they behave? Will they censor every gesture that might be considered offensive somewhere in the world (there are many)? Or will they remain purely focused on the North American hand gestures, and, by extension, North American culture and the limited audience that it brings?

<comment><USER10> Actually, Tom gets it right. It's called discretion. Use his public example, for instance. If you were, for example, a cross-dresser who loved wearing women's underwear - and only women's underwear - would that be tolerated by the general public if you were roaming around a mall?

"But this is who I really am, and it's how I want to portray myself in public!"

It's Google's playground, and you either play by the rules or suffer the consequences. You wouldn't berate mall cops if they had to remove offensive people from the premises.

<comment><USER11> I find it interesting that most attempts to support Google in this instances uses far more extreme examples to justify it.

I don't think anyone is insisting that there are no types of images that are so bad that it wouldn't be ok for Google to remove them. At least I haven't seen anyone claim so.

As long as that is the case, using examples that the vast majority would agree are worse than the one that was actually taken down just weakens your point dramatically.

<comment><USER12> By using extreme examples, people show that obviously there is a line. Most people agree some photos should be banned, after this point is made.

Now we are just arguing about where the line is.

</comment></comment></comment></comment></comment><comment><USER13> I like how humble Tom is about MySpace. All these years later, and he's still my only friend...

In all seriousness, he should be proud of what they accomplished. Yes, it kind of turned into a cesspool, but there was no model of how a social network _should_ be until Facebook came along. MySpace was an evolution of Geocities, more than it was an attempt to have the kind of "respectable" social presence that facebook shot for. MySpace was still the startup that proved social would be huge.

<comment><USER14> Rather, there was no widespread knowledge and/or consensus on how a social network should be at the time. Models were a plenty. For example, Lunarstorm started out some 3 years (2000) before MySpace and in a year (2001) reached 600k users (it would plateau at 1.2m in 2007) but it had none of the Geocities stylings of MySpace. Instead it had a feed of your friends' activities, private messaging, notes (called diary), and message boards. It's just that the Internet back then was not the sharing ground it has grown into today, and people in other countries than Sweden were probably not aware of this particular site.

</comment></comment><comment><USER15> Pretty sure this would fall under Apple's "objectionable content" policies for their app store.

Wonder if MG would complain about that policy, too? :-)

<comment><USER16> According to the linked complaint by MG, he is not whining about the policy so much as about the deletion without warning:

> My problem isn't so much with the fact that I couldn't have a profile > picture of myself giving everyone the finger — which I can and do on Twitter > and elsewhere — it's that no one bothered to tell me or warn me before they > just went into my account and deleted the picture.

he does also take issue with the policy itself, but as an aside not as his main point:

> Bigger picture: this seems like a ridiculous thing for Google to be > policing. [...]

> This also seems like a slippery slope. In certain cultures, various hand > gestures mean different things. Is Google also going to delete my profile > picture if I have my fingers up to my chin, for example?

<comment><USER5> It betrays his technical competence to say they went "into my account," doesn't it? I don't think it's helpful or appropriate for him to use property terms for a topic like this.

</comment></comment></comment><comment><USER17> Completely misses the fundamental difference between "not allowing", "not displaying" and bluntly " _removing_ " the photo.

Online companies seem to be completely insensitive to what is pretty intuitive in the physical realm: you may tell me what not to do in your shop, but _don't touch my stuff_.

</comment><comment><USER18> _removing offensive photos_

It's not offensive to me. I'm all grown up now.

<comment><USER19> How about when your kid/elderly relative does a search on google and sees it?

Google can choose to allow or disallow what they want.

<comment><USER20> And we can choose to criticize them for that choice. Ain't free speech wonderful?

 _How about when your kid/elderly relative does a search on google and sees it?_

If I believe my kid is too young to see that, I wouldn't let him search on Google by himself. As for an elderly relative, I'm pretty sure any of mine can cope with a picture of someone flipping them off.

</comment></comment></comment><comment> buff-a An image showing a middle finger: banned.

News content from Fox perpetuating lies that cause soldiers and civilians to _die_ : front page in search results.

Google has demonstrated with the photo that its willing to act as a censor. Now that we've agreed that censorship is ok, can we now talk about what we would like to censor?

</comment><comment><USER21> Sorry but I still don't understand why deleting that picture is such big deal? Google has the right to build their community with the rules that they want and the people eager to accept those rules. Mr Sieger has also the right to complain and he did so that should close the case right?

I made an analogy yesterday between this site and reddit and the differences between the cultures on both sites. A lot of people downvote that post (not sure why because I wasn't say anything offensive) and that's the kind of things that you have to accept in social sites... There are rules.. You either accept them or just move on...

<comment><USER22> The "accept or move on" rule applies less when such sites are used by the majority of the population.

When it's used by the majority it becomes something you, in many cases, have to be part, that you like it, or not.

That even include "to be accepted at school", mind you. (just like you didn't _have_ to smoke back in the days, but also you were gay if you did not, no matter how _wrong_ that reasoning is).

Based on that new perspective, you may understand that restricting free speech on such services is actually "big" deal (yeah, the quotes are important here. i'd go for medium deal in the current state of affairs.)

<comment><USER23> I found your reasoning so wrong it left me momentarily at a loss for words. No, sites don't _ever_ become subject to a different set of rules just because the majority of people use them. That kind of thinking leads down a very dangerous road.

And if you still care about "to be accepted at school", grow up. Speaking as a "four-eyes" and a nerd, some of us never bothered caring about that in the first place. Unfortunately, the people that _did_ care grew up to form "the majority of the population", leading to quite a few of the social problems that currently plague us.

Free speech only applies to governments, and it applies there specifically because there you truly do have a "whether you like it or not" situation when it comes to governmental policies. It does not, and should not, extend to speech made on someone else's site. That remains entirely subject to the policies of the site owner, who may set them however they wish, keeping in mind that any choice they make may gain them some users and lose others.

Now, that said, I think better solutions existed for the particular issue at hand (so to speak) than immediate deletion without notification (such as hiding potentially offensive profile pictures for people who don't have that person circled), but that remains entirely up to Google's policy. I personally think that policy ought to change somewhat, but I'd never argue that anyone other than Google has the right to determine that policy.

<comment><USER24> Different laws apply to companies in a monopoly position, and that is right and proper. (Not that G+ is in that position yet).

<comment><USER23> > Different laws apply to companies in a monopoly position,

That doesn't necessarily mean the same thing as "used by the majority of people", since people can and do use many different sites rather than choosing one exclusively. Those laws also doesn't have anything to do with the absurd schoolyard notions suggested by the comment I responded to; monopoly laws exist primarily to keep monopolies from preventing others from entering the market and disrupting that monopoly.

> and that is right and proper.

In your opinion; I strongly disagree with the notion that such laws have any basis in morality.

</comment></comment></comment></comment></comment><comment><USER25> This page reliably crashes safari on my iPad 1. Does anyone else have this problem or am I going insane?

<comment><USER26> Not going insane. It repeatedly crashed for me to. Rebooted and still had the same problem. One of the crashes lost all my tabs too.

</comment></comment><comment><USER27> I think you guys are all thinking about this the wrong way. Siegler's post is about finding the lines that define acceptable content not caring about his exact photo.

Knowing what a company like google defines as inappropriate is important for being able to make informed choices about what products you should use and who you should be giving all your personal data to for free.

</comment><comment><USER28> "If you had a T-shirt that said "I hate White People" and you walked into a mall wearing it, the security would probably ask you to leave, or ask you to cover up your shirt."

And that's the problem with Google+ here. They didn't ask anything. They did the t-shirt in a mall equivalent of stealing his t-shirt while he wasn't looking.

It seems pretty obvious how this should work:

(1) Google enables a flag for offensive photos (some automated system might work in tandem with this).

(2) Someone who's offended by a photo (or automated system) flags it.

(3) The user sees that someone has flagged it, might change it himself.

(4) Google sees the flag and reviews the image for possible action. Some sort of adjudication record is created and available for both the user the image belongs to and anyone who reported it.

(5) The user has some recourse to appeal if Google takes action to remove the user's picture.

Google, having a terrible customer service background, just went with the big brother approach.

<comment><USER23> > "If you had a T-shirt that said "I hate White People" and you walked into a > mall wearing it, the security would probably ask you to leave, or ask you to > cover up your shirt."

> And that's the problem with Google+ here. They didn't ask anything. They did > the t-shirt in a mall equivalent of stealing his t-shirt while he wasn't > looking.

And that's the problem with analogies relating the Internet to the real world: they often fail because the Internet doesn't work like the real world. (I will say that this does come remarkably closer to the concept of "stealing bits" than how people usually use terms like "stealing", since the original owner might not have those bits anymore, but who would leave their only copy of a picture on a site they don't own, particularly one whose policies don't include preserving your data no matter what?)

Another marginally more accurate analogy, though still potentially flawed if you try to read too much into it: if you rented space in a mall, and displayed offensive material there, they might ask you to leave, or they might just close up your shop for you and kick you and your stuff out, and either way they have every right to do so.

</comment></comment><comment><USER29> I would love to see the mall that turns away people wearing a shirt that gives the finger. Is this a very exaggerated example or does this thing exist out there, in the modern world?

</comment><comment><USER30> Like others, I'm surprised that G+ is spending time solving this problem. Why don't they flip the switch on their safesearch technology on G+ and call it a day?

</comment><comment><USER31> Anyone else find it funny that Tom uses the same old photo of him in front of a whiteboard?

</comment><comment><USER22> You see "Google has limited resources" and "cannot warn you before removal".

Made my day.

ps: most removals are actually automated, and warning are (as in would be) obviously automated.

And of course, nothing bad with a finger up (or even in a naked body in fact, but hey). I much prefer the "adult filter" of YouTube, which uhm, is also automated (user vote based).

</comment><comment><USER32> What i 'd like to know is what Tom is doing in that - now historic - <USER2> photo.

</comment><comment><USER33> I don't think you'd actually get in trouble for an "I hate White People" t-shirt. It would probably be seen as a political statement. We have whole college majors devoted to elucidating the evils of white people. It's hip to hate them.

</comment><comment><USER34> Apple doesn't allow offensive apps in its app store either, but somehow, this has never bothered MG Siegler.

Double standards.

<comment><USER35> Let's petition Google to rename it as Google Real People Store+ then.

</comment></comment><comment><USER36> When this sort of tech pundit makes himself the center of a non-story I do my best to ignore it, I recommend that everyone do the same. Tech blogging has deteriorated to parroting PR releases and slobbering over iStuff, I draw the line at appeasing the attention whores.

<comment><USER32> Can you suggest a news aggregator that is not frequented by the usual bullies?

<comment><USER37> Ars Technica, for the most part. Sometimes they get a little editorial, but they're far better than most others.

</comment></comment></comment><comment><USER38> Tom makes a great point here. Policies are policies and the difference is that this policy actually has action behind it. Oh well. Social networks don't really hide their policies and this one isn't all that radical at that. If you don't like it, find another service or comply with the rules, (or if you're really that stressed about it make your own social network).

If some random 16 year old from Middle-O-Nowhere Indiana complained on his blog about the same thing we wouldn't even read past the first paragraph. But MG Siegler does it and it becomes a real issue? The only difference between Siegler and the hypothetical teenager is that Siegler is well known and can write so his tantrum gets play.

Really, the issue of the offensive profile picture shouldnt be the issue at all. The issue should be whether Siegler is allowed to use his notoriety to dupe us into thinking this is an issue worthy of discussion.

</comment><comment><USER39> So much for how "social" and "private" they intend google+ to be.

Do not expect a conversation with close friends there.

it's an open mall. officially.

And the first people migrated from facebook boasting the privacy concerns.

</comment><comment><USER40> MySpace was never a cesspool... it's now a musician's website for posting about bands.

The only thing more stupid than the internet comments on Hacker News is Google itself: the kings of know-it-all dumbasses!

<comment><USER41> The "dumbass" you're talking about co-founded MySpace, and I don't think he's ever had any professional link to Google.

</comment></comment><comment><USER42> Really? An "'I hate white people' t-shirt" parallel?

Don't even get me started on that atrocious "we don't need to see this" line of argumentation. If the Google+ is going to censor (let's call things by their proper names) pictures that "people don't need to see", where's the goddamned line?

Imbecile.

That such a poorly constructed argument makes its way to the Hacker News homepage is worrisome. I had the hope that people who use logic for a living would have higher standards.

<comment><USER43> The line is where they, as a company, decide to put it. I would not go to a social networking site that had gore or porn polluting my feeds. Similarly, you might not go to a website that disallows any content. That's our prerogative. It's facile to paint it as a free speech argument.

<comment><USER20> Why would you subscribe to users that post gore or porn to your feeds?

Tumblr has plenty of porn, but you can certainly use it without ever getting it on your dashboard. It's just a matter of, you know, not following the people who post it.</comment></comment></comment>


Finding the number of factors of any number - <AUTHOR>

If a number can be expressed as a product of two whole numbers, then the whole numbers are called factors of that number.
For example, 20 = 1 x 20 = 2 x 10 = 4 x 5 So, the factors of 20 are 1, 2, 4, 5, 10 and 20.
The simple technique to find the number of factors of a given number is to express the number as a product of powers of prime numbers.
To illustrate let's find the numbers of factors of 48. Note that, 48 can be written as 16 x 3 = 24 x 3 Now, increment the power of each of the prime numbers by 1 and multiply the result. In this case it will be (4 + 1) x (1 + 1) = 5 x 2 = 10 (the power of 2 is 4 and the power of 3 is 1) Therefore, there will 10 factors including 1 and 48.
All numbers have a factor of 1 since 1 multiplied by any number equals that number. All numbers can be divided by themselves to produce the number 1. Therefore, we normally ignore 1 and the number itself as useful factors.
So, excluding, these two numbers, you will have (10 - 2) = 8 factors.
To be certain the factors are: 2, 3, 4, 6, 8, 12, 16 and 24
For more please visit:
http://mathema-tricks.blogspot.com/ <comment><AUTHOR> <http://mathema-tricks.blogspot.com/></comment>


The Online Ad Recession Continues. Is This What A Reset Looks Like? - <AUTHOR> http://www.techcrunch.com/2009/07/31/the-online-ad-recession-continues-is-this-what-a-reset-looks-like/ <comment><USER2> I think it is a mistake to assume you extrapolate the entire online ad industry based on revenues of the four big ad networks.

It could just be that advertisers are spending more directly with publishers rather than on AdWords

</comment><comment><USER3> I think the start date, Q4'07 is misleading. I'd like to see the graph since 2005 for example. I believe there was a steep increase of online ad spending in 2006-2008, and this is an adjustment to a "normal" growth rate. Being at the same level as Q4'07 is actually a good surprise to me, I thought it would be well below.

<comment><USER2> Or, better, overlay with ad spend in other media. Newspaper ads are down 40-50% this year.

At the moment online ads are grabbing a bigger slice of a shrinking pie.</comment></comment>


Show HN: High-Level Python Interface over Mate Soos's CryptoMiniSat - <AUTHOR> https://github.com/cipherboy/cmsh <comment><AUTHOR> \o Happy to answer questions anyone has. I mostly wrote this to scratch my own itch.</comment>


Qpm: A package manager for Qt - <AUTHOR> http://www.qpm.io/ <comment><USER3> Has anyone got a checklist for package managers? There are so many it'd be nice to be able to predict what problems they're going to face in the future (and hopefully prompt better design in the process)

<comment><USER4> Rules:

1\. Use the system package manager.

2\. See rule #1.

In all seriousness, there needs to be a good way to [spray your stuff]([http://dilbert.com/strip/2013-06-09](http://dilbert.com/strip/2013-06-09)) all over a system with the rest of the system knowing about it. FPM does a decent job of this.

There is some research out there on common things that this kind of code gets wrong: [https://www.cs.arizona.edu/stork/packagemanagersecurity/](https://www.cs.arizona.edu/stork/packagemanagersecurity/)

<comment><USER5> So you are developing a package in language and you package it with insert language specific package manager you are now done. If you package it for insert system package manager to achieve a similar level of coverage you must not only figure out how to create packages for 17 different systems you have to either figure out the standards and procedures required to get your package included on each platform or figure out how to host your own repo and instruct users on how to set it up this may include variations in setup and instructions that differ between multiple versions of the os that may be in use concurrently.

This could be 1000 x as much work for not much gain.

<comment><USER6> Ideally, your language package manager should know how to build (candidate) packages for common system package managers (eg '''setup.py bdist_rpm''' or '''setup.py bdist_debian'''). That way, the technical end user can install the package in a way their package manager knows about. If your package becomes widely used, it also simplifies (but does not remove) the job of the distribution's packager to build an official package.

This doesn't work so well for micro-dependencies, though. The TeTeX distrib. in Fedora is bad enough, I'd hate to see the same done with node packages.

<comment><USER7> This isn't really usable if you develop with the latest packages for dependencies. While I could generate an rpm for my python module, Fedora and CentOS/RHEL are going to have incompatible dependencies. I could package up my dependencies too, but then I'll break system software (a lot of fedora's tooling is written in Python).

A much better solution would involve making languages like Python accept the Python version as a dependency while making building the PYTHONPATH more flexible with common tooling. Making PYTHONPATH building better would enable installation with namespace+version, such that we could have:

        /usr/lib/pymodules/requests/1.0.0/...
        /usr/lib/pymodules/requests/1.2.1/...
        /usr/lib/pymodules/python/2.7.10/...
        /usr/lib/pymodules/python/3.5.0/...

Python in particular is still a bit challenging in that the compiler assumes it can spit out byte-compiled code all over the place (.pyc), but if someone was going through the tooling effort, they'd presumably find a way (or get something merged if it doesn't exist), to add a shadow directory of .pyc files that could be keyed by version and cached somewhere user-writeable (~/.pymodules for example).

<comment><USER8> The purpose of PEP 3147 is to fix some of those problems: [https://www.python.org/dev/peps/pep-3147/](https://www.python.org/dev/peps/pep-3147/)

Addendum: I'd might as well mention that PEP 3147 is implemented from Python 3.2 onwards, so for Python 3, some of the problem is solved.

You still have the issue of being able to install different version of the same library.

<comment><USER7> That only really works in a world where all of the users on the machine that can run Python also can write to shared library directories. That seems kinda awkward from a security perspective unless you're already using containerization (in which case you don't care about any of this).

This is certainly better than it was (.pyc files just didn't co-exist sanely across python versions), but it doesn't provide a method for running multiple versions of libraries between different apps.

<comment><USER8> > That only really works in a world where all of the users on the machine that > can run Python also can write to shared library directories.

Far from it. It's up to the system package manager to generate the .pyc files for the globally installed version of the libraries. __pycache__ directories allow this to be done cleanly for any installed interpreter that supports them. It has all the information it needs, and users need not get involved.

Unless the user is running a copy of Python that wasn't installed by the package manager, there should be no need for them to cause the .pyc files to be generated. Besides, .pyc files are an optimisation so that parsing and bytecode compilation doesn't have to repeatedly happen, and aren't even strictly required: the result is slower startup, but it couldn't prevent the code from being run.

> it doesn't provide a method for running multiple versions of libraries > between different apps

Indeed, and I pointed that out in my comment in the addendum. Virtual environments are still pretty much the state of the art in that regard, unfortunately. It's possible that some PYTHONPATH magic might help with that to some degree, but that would be messy.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> Next step: each library gets its own package manager ... and we're back to square one.

<comment><USER10> But if there was a package manager package manager...

<comment><USER8> Remember that package manager Windows was getting a while back? That's effectively what it is!

</comment></comment></comment><comment><USER11> I'm irritated by the loading screen and the enormous list of JavaScript pulled in. That's a simple static page using a few css animations. Is adding bloat considered "modern webdesign"?

<comment><USER12> How else would we pad our strings?

<comment><USER13> The example you are giving is actually a result of trying to _prevent_ bloat.

<comment><USER12> By adding a dependency to do a one line task?

<comment><USER13> Well, you can add bloat by inlining it too, if it's repeated many times. I thought bloat was for unused code loaded as a side effect to code that one actually depends on, for example, as a part of a big library. That makes a huge difference if you are targeting the client side.

I mean, you could also have it as a helper function in your project but that decreases the re-usability to copy-pasting across projects.

In the end, effective or not, I can see it as an attempt on reducing bloat. I see that many don't agree, but I'm afraid they don't take into account the constraints imposed by sending code to the clients rather than a binary.

</comment></comment></comment></comment></comment><comment><USER14> I'm personally getting so sick of all the package managers I have to use, I'm more and more inclined to not use a technology if it comes with a package management system.

Seriously, what is going on with the OS vendors? Its like .. the Web came along and now nobody wants to build better operating systems .. shouldn't package management be a function of the OS? Its really just filesystem/tree management, and this really, really _should_ be something we can use the OS for.

However, its just not happening. Language vendors have to solve this problem because the OS vendors are asleep at the wheel. I think its apathy - <USER2> browser has replaced the OS, and very poorly. Nobody wants to fix this problem, I guess ..

<comment><USER15> In case of Linux: the kernel alone does not make an OS, so if you consider the various distributions of Linux OS'es, like Debian for example: Each (well the large ones) distribution comes with their own package management tools.

So currently the "state of the art" is: Create a package for each OS (which means multiple OS'es of flavour "Linux").

I really wish their was a generic tool that would input a source tree and output packages for the most common package management systems.

Anyone?

<comment><USER16> You could have a look at CPack: [https://cmake.org/Wiki/CMake:Packaging_With_CPack](https://cmake.org/Wiki/CMake:Packaging_With_CPack) It was created to be used with the C++ build system CMake, but can be used without it too. I use it to automatically build debian packages from Jenkins, but it also supports tarballs, RPMs, NSIS (Windows), PackageMaker (OS X), and cygwin packages. Hope this helps a bit!

</comment></comment></comment><comment><USER17> Ah, that probably explains it... The resources spent on making this might just explain why qt has been so difficult to install! ;)

<comment><USER18> Yes I know you're joking, but seems it's done by Cutehacks [1], so probably no involvement from the Qt project itself.

[1] [http://www.cutehacks.com](http://www.cutehacks.com)

</comment></comment><comment><USER19> So, a Qt package manager written in Go :-) Why not C++ ?

<comment><USER20> Qt isn't really C++-only anymore, at least with QML. Notwithstanding the use of JS for QML itself, there exist some bindings to QML in non-JS, non-C++ languages. So I guess there is demand for Qt (or at least some parts of it) in non-C++-worlds.

<comment><USER21> > _Qt isn 't really C++-only anymore, at least with QML. Notwithstanding the > use of JS for QML itself, there exist some bindings to QML in non-JS, > non-C++ languages. So I guess there is demand for Qt (or at least some parts > of it) in non-C++-worlds._

All of these worlds would be loading a ton of C++ QT base libs in any case.

</comment></comment></comment><comment><USER18> How does this compare to Incqlude ([https://inqlude.org](https://inqlude.org)), which names itself "The Qt library archive"?

</comment><comment><USER22> Is there a list of packages anywhere? Seems strange to download a package manager and just hope there are any packages.

<comment><USER23> You can find the list via `qpm list`.

Here's the current output at the time of writing: [http://paste.debian.net/plain/432079](http://paste.debian.net/plain/432079)

</comment></comment><comment><USER24> As someone mentioned including node.js to QML projects: Does anyone know if there exists a QML port of fabric.js (or a similar canvas library?). I would need a library to create all kind of geometric shapes (rectangles, circles,..) and the ability to move them around, snap them to other objects, resize them...

I am currently trying to implement that myself with the QML canvas, but it is not that easy to get a smooth working library.

</comment><comment><USER25> Is there a list of packages where I can see what could be installed?

Edit: There is not. But here is a list of current packages: [https://github.com/Cutehacks/qpm/issues/28#issuecomment-2082...](https://github.com/Cutehacks/qpm/issues/28#issuecomment-208233790)

</comment><comment><USER26> Next time before upvoting I must check if it's available on most major platforms...

<comment><USER27> There should be binaries for Mac, Windows and Linux and the source should compile on FreeBSD and others. What's missing?

<comment><USER26> I don't want to install Go to compile your tool to compile other tools to compile my tool. Pretty much that.

<comment><USER27> Understandable :) Can I ask what platform you are on?

<comment><USER26> FreeBSD 32bit and ArchLinux 64

</comment></comment></comment></comment></comment><comment><USER28> Well, at the very least I hope they aren't trying to package C++ with this...

<comment><USER27> C++ works with qpm, but it doesn't package anything in binary form. It just pulls down the source code from Github and generates some boilerplate to wire it up to the application project.

</comment></comment><comment><USER29> is there a list of current packages on qpm somewhere so far?

Also - any reason why couldn't just use npm with Qt?

<comment><USER30> Any reason why you would want to use npm with Qt? What does npm have to do with Qt? Do we have to embed npm into EVERYTHING? Goddamn.

</comment></comment><comment><USER31> but is there a leftpad package available?

<comment><USER32> [http://doc.qt.io/qt-4.8/qstring.html#rightJustified](http://doc.qt.io/qt-4.8/qstring.html#rightJustified)

:)

<comment><USER33> It's a method on a QString object? No, no, no! Look at all the other methods on QString, what a mess! What happened to do one thing and do it well? This needs to be in a separate downloadable package. That package could be so simple and minimal.

My guess is that these Qt people probably use an IDE and want to be able to immediately see what methods are available in the context of a QString. Then they want code completion as they supply parameters to it. That's so OO. (Ok the method is immutable and composable but its still blatant 90s object orientation)</comment></comment></comment>


Show HN: Improve your English pronunciation – 1000 words - <AUTHOR> https://www.englishinterstellar.com/za/evfcvnxl/eis101-pronunciation-by-topic.html <comment><USER2> Some words I spoke seem not to be recognized, even though my pronunciation should not be that far away.

Then I clicked on "TEA" to see if there is some guidance... It was. According to the computer voice the right pronunciation of "TEA" is "T-E-A" rather than "tea". So, I guess, some word patterns are not correct in the system?

<comment><USER3> Thanks for the invaluable feedback.

Click on any text and Google web speech synthesis is used to pronounce that word in American English. Maybe the pronunciation is not perfect. Btw are you native ? if so or not do you speak American english accent or other?

<comment><USER2> No, not a native speaker. I would consider my accent to be more British than American, but that should not make such a difference for easy words like "Wrist", "Fist", ... which gave me -1 points while I got a near 100 score on an accidental cough ;)

<comment><USER3> Omg, Do you remember which word was understood as cough?

<comment><USER2> I'm afraid, I cannot remember, but I guess it was in one of the first sections, so maybe "wrist"…?

</comment></comment></comment></comment></comment><comment><AUTHOR> Co-founder here. Just created 200 sets of words with HTML 5. Still in early phase, works only in Chrome - as only Chrome supports web speech API at the moment. We appreciate your feedback.

</comment><comment><USER4> I wouldn't notice I had to tap on words to hear how they sound. Is there a way I can search by words or see which words I have trouble with?

<comment><USER5> A button with a bar chart icon exists under the test. You can see your word score when you press it.</comment></comment>


Ich Hasse Hausaufgaben/I Hate Homework - <AUTHOR> http://www.cringely.com/2010/12/ich-hasse-hausaufgaben-i-hate-homework/

<comment><USER2> This is somewhat unrelated to the actual story, but I _hate_ when online media updates a story with edits, leaving the prior data struck-out (to show it's been changed).

Our media world moves at a much faster pace than it used to, and we publish on dynamic media moreso than dead-tree. This often leads to story research not always being as in-depth as it used to, and that doesn't have to be a bad thing.

If a writer updates or tweaks stats or typos in a story due to the typical reader-submitted proofreading, I'd rather they just call it out at the end of the story in 1 place. The in-line edits are distracting and add nothing to the actual piece. For very minor spelling/grammatical changes I don't think it needs to be called out at all. Change your 'teh' to 'the' and be done with it.</comment>


Google's official URL shortcut just for Google websites - <AUTHOR> http://g.co

<comment><USER2> Hasn't this been around for quite some time? g.co links are used on all of the official Google twitter accounts.

<comment><USER3> This has been around since at least 2010.

<comment><USER4> July 2011 actually.

[http://googleblog.blogspot.co.uk/2011/07/gco-official-url- sh...](http://googleblog.blogspot.co.uk/2011/07/gco-official-url-shortcut-for- google.html)</comment></comment></comment>


You'll be more productive if your computer announces the time - <AUTHOR> http://blog.upskilled.edu.au/5-productivity-hacks-that-you-probably-havent-heard-of-yet/

<comment><USER2> I hope somebody could help me out here. Throwaway account.

I've recently graduated and since May I've been working remotely for a company. I've always loved programming, but now it's become work, and I'm only doing it for the money.

\--

And I have the opposite problem. I keep looking at the clock counting down hours to lunch, counting down hours to the end of the day. I'm just restless.

I'm being a very good and productive programmer, but it's not through joy from work anymore, but through willpower. I just go through my day forcing myself to do it.

Anybody else going through the same thing? Maybe this is specific to remote programmers?

<comment><USER3> I won't give you a short term hack because I have tried many and nothing seems to stick. Instead the long term approach that has greatly improved my productivity as a freelancer and also in other areas of life is reading the book "7 Habits of Highly Effective People". If you read one book in your life I would suggest it should be this one.

When your values ( loosely translated as why you do the things you do ) and your goals align you will become very productive. Has helped me a lot. I would suggest give it a shot :)</comment></comment>


How to optimize cold emails - <AUTHOR> http://blog.amplemarket.com/how-to-optimize-cold-emails/ <comment><USER2> Step 1. Don't. Step 2. No seriously, just don't.

If you cold email me I'll make sure you're reported to the various anti-spam organizations. Unsolicited "cold" emails (aka spam) are always a dumb idea.</comment>


The problem with metro is it's hard to differentiate - <AUTHOR> http://www.riagenic.com/archives/889

<comment><USER2> Though I somewhat agree with the longevity of metro, I'm still loving it now, and I hope that developers do original things with it.

By comparison, I find iOS looks very old as well. The example about the 'new iPad' in the post likely wasn't talk about how innovative the iPad UX/UI is. It isn't. The iCons are as they have always been. The structure of the screens is the same as the original Palm devices, and I'm sure they weren't the first.

The poster talks about how he feels Microsoft is screwing up because they are targeting the 'tech crowd' rather than the average man, but seems to ignore that Apple targeted the creative crowd, which later fed their growth into a mainstream market.

I don't think this is something Microsoft considered, as they're just not great marketers, but this could be a huge boon to Microsoft in the long-term. If the tech crowd loves Microsoft products, and uses them and talks about them, and becomes snobs about anybody using Apple (doubtful), this could play into Microsofts hands. It's worth a shot at least.

After using WP7 for more for a year, I still find it to be beautiful, I think the challenge isn't as the poster explains it, but rather it is difficult for an app developer to create an icon which really stands out, which is what I thought the post would be about originally.</comment>


ReadPrint - Online book library unveils ambitious new design  - <AUTHOR> http://www.readprint.com

<comment><USER2> Horrible pop-up demanding your attention - I certainly will not be visiting again.

</comment><comment><AUTHOR> I think it looks much better now!</comment>


Bringing our website up to date - <AUTHOR> http://www.couchsurfing.org/news/cs-organization/bringing-our-website-up-to-date/?utm_source=mails&utm_medium=email&utm_campaign=TOU

<comment><USER2> I had two friends who regularly hosted on couchsurfing in the early 2000's when it wasn't that popular yet. I thought at that time it was insane for two young girls to host random strangers on their couch. They loved the experience and I guess couchsurfing paved the way for sites like airbnb. Good for them, I hope they do well.</comment>


StartSSL starts LetsEncrypt competitor product - <AUTHOR> https://www.startssl.com/StartEncrypt <comment><USER2> I remember using a StartSSL certificate. It wasn't linked to an account or anything sane, but instead installed a certificate in the browser which it used in place of login details. I happened to do this on my phone, which did not offer any way to access or export this certificate. When that phone died, my account was lost.

I'd warn against using anything from StartSSL, but I don't think anyone is going to in the first place.

<comment><USER3> As someone who is an actual StartSSL customer and not just someone who got confused by the login process and gave up, I think StartSSL is great. I haven't found cheaper identity validation elsewhere, and you can pump out unlimited certificates once you're validated. Using client certificates to log into the site is annoying, but it's fine once you figure out how it works. The problem you describe with losing your cert is not a problem: you can regenerate the login certificate using the "Lost authentication certificate?" link. I have done so and confirm that it works and that you don't need the old certificate to generate a new one. It _is_ tied to a persistent account (contrary to what you claim in your post), so you lose nothing, and had you used an actual computer you could have backed up the certificate.

<comment><USER2> I can't claim to remember all the details (this was several years ago before I started at uni), but I'm certain I attempted to find an option like this and didn't. It may have been added in the interim or I might have simply been too inexperienced.

</comment></comment></comment><comment><USER4> Before everyone trashes them, know that for a long time (years before LetsEncrypt) they were the only source for free SSL certs. Their site is a bit wonkey, but they really brought ssl to the masses when verisign etc were charging $100+ per cert.

More competition to make free ssl easier and better is welcome in my book.

</comment><comment><USER5> E-mail I've received from them:

Dear StartCom customers,

This electronic mail message was created by StartCom's Administration Personnel:

StartCom, a leading global Certificate Authority (CA) and provider of trusted identity and authentication services, announces a new service – StartEncrypt today, an automatic SSL certificate issuance and installation software for your web server.

StartEncrypt is based the StartAPI system to let you get SSL certificate and install the SSL certificate in your web server for free and automatically, no any coding, just one click to install it in your server.

Compare with Let's Encrypt, StartEncrypt support Windows and Linux server for most popular web server software, and have many incomparable advantages as:

(1) Not just get the SSL certificate automatically, but install it automatically;

(2) Not just Encrypted, but also identity validated to display EV Green Bar and OV organization name in the certificate;

(3) Not just 90 days period certificate, but up to 39 months, more than 1180 days;

(4) Not just low assurance DV SSL certificate, but also high assurance OV SSL certificate and green bar EV SSL certificate;

(5) Not just for one domain, but up to 120 domains with wildcard support;

(6) All OV SSL certificate and EV SSL certificate are free, just make sure your StartSSL account is verified as Class 3 or Class 4 identity.

StartEncrypt together with StartSSL to let your website start to https without any pain, to let your website keep green bar that give more confident to your online customer and bring to online revenue to you. Let's start to encrypt now.

Please do not reply to this email. This is an unmonitored email address, and replies to this email cannot be responded to or read. If you have any question or comments, just click Here (([https://startssl.com/reply](https://startssl.com/reply)) to send your question to us, thanks.

Best Regards StartCom™ Certification Authority

</comment><comment><USER6> StartSSL charging to revoke their free certs after heartbleed, won't forget that.

</comment><comment><USER7> I was trying to recover my login certificate, which I think was in a copy of Firefox somewhere. They were happy to send me a verification code to my email, then asked for my private key password for the replacement cert. I, of course, asked 1Password to generate one for me, but because it had symbols in it, I received the dreaded password validation error:

> *Password length 10~32 , consist of letters, numbers

Et tu, StartSSL?

</comment><comment><USER8> That's interesting in that it is an EV certificate.

Has anybody used this?

<comment><USER9> Posted on the previous HN post, uses chkconfig in the install script so basically RHEL flavours only despite saying x64 - couldn't be bothered after that

<comment><USER10> Are you kidding? It's an API. They even provide a perl script which I've used on OpenBSD and Raspbian.

<comment><USER9> StartAPI is the API, StartSSL offers a client - similar to LetsEncrypt which was the point of this submission. My point was that it billed itself as distro neutral - but failed.

</comment></comment></comment></comment><comment><USER11> Their ... 'English' is just atrocious to read.

      Install and https enabled, no any coding, support Windows server and Linux server;
      DV SSL certificate that up to 5 domains with one year period;

<comment><USER12> Ha. I also noticed this. Perhaps they speak Engrish.

<comment><USER13> StartCom is based in Israel as far as I know.

<comment><USER14> They speak English.</comment></comment></comment></comment>


Two Android apps used in combat by US troops contained severe vulnerabilities - <AUTHOR> https://www.zdnet.com/article/two-android-apps-used-in-combat-by-us-troops-contained-severe-vulnerabilities/ <comment><USER2> Apparently (per the article) there's actually a GEOINT App Store: [https://apps.nga.mil/Home/Store](https://apps.nga.mil/Home/Store)

Some interesting examples:

\- An app that reports pirate activity: [https://apps.nga.mil/Home/Store/Detail/Android/ASAM-- Android...](https://apps.nga.mil/Home/Store/Detail/Android/ASAM-- Android-/1-0-121)

\- An app about edible/medicinal plants: [https://apps.nga.mil/Home/Store/Detail/Android/Edible-and- Me...](https://apps.nga.mil/Home/Store/Detail/Android/Edible-and-Medicinal- Plants/1-3)

\- An app to tell you when you should put on your tinfoil hat: [https://apps.nga.mil/Home/Store/Detail/Android/SpyMeSatGov-/...](https://apps.nga.mil/Home/Store/Detail/Android/SpyMeSatGov-/1-1-1)

</comment><comment><AUTHOR> The link to the Navy Inspector General report from the article: [https://www.scribd.com/document/396040628/DI-17-3391](https://www.scribd.com/document/396040628/DI-17-3391)

<comment><USER3> It's heavily redacted, though. The article also has the backstory.

Spoiler alert: The whistleblower was vindicated.</comment></comment>


Pythonic PHP Code Formatter - <AUTHOR> http://www.94cb.com/Pythonic-PHP-Code-Formatter/

<comment><USER2> This is pretty cool. I wonder if there's a way to do this without having all the semicolon and curly brace punctuation on the right side... Perhaps something akin to coffee script which can be compiled back into PHP.

It'd make debugging/refactoring someone else's 10,000 line mess of PHP logic they wrote into one file in 2002 much easier. :)

</comment><comment><AUTHOR> Github: [https://github.com/lincanbin/Pythonic-PHP-Code- Formatter](https://github.com/lincanbin/Pythonic-PHP-Code-Formatter)</comment>


PHP 7.0.0 Alpha 1 Released – "Up to twice as fast as PHP 5.6" - <AUTHOR> http://php.net/archive/2015.php#id2015-06-11-3

<comment><USER2> If a release is released is in a forest is it really released?</comment>


Linear Algebra Review and Reference (2012) [pdf] - <AUTHOR> http://cs229.stanford.edu/section/cs229-linalg.pdf <comment><USER2> I have a gripe with references in general. Most references are just reference formulae and symbol manipulation. In general, they are the form of - We call this as Title X. In this X, you have ABC; you then do MNO* operations to get YZ. There's hardly context of when to use them or what they really mean. "A Mathematician's Lament" by Paul Lockhart hits hard here.

[https://www.maa.org/external_archive/devlin/LockhartsLament....](https://www.maa.org/external_archive/devlin/LockhartsLament.pdf)

<comment><USER3> References are not made to learn from, they are made to refer back to. If you look at the URL you will see that this reference in particular is on the page for CS229, which lists knowledge of basic linear algebra as a prerequisite. I really don't think this was made with the intention of anyone using it to learn linear algebra.

<comment><USER2> Yes, references are to "refer back to" \- the key part here is that what are they meant to "refer back to"? A set of formulae, symbol manipulation or how to apply functions? References should be notes that help you recollect what you'd learn. In this case, the references recollect a set of manipulation of symbols which happen to be Linear Algebra.

Do note that I am talking about "Reference Manuals" in general and not this particular CS 229 manual.

</comment></comment></comment><comment><USER4> The Lagrangian on the last page associated with computing the maximal eigenpair should probably have the term lamba (x^T x - 1), not lamba x^T x. The latter gets the gradient with respect to x right, but not the gradient with respect to lambda, and it would provide the wrong dual problem.</comment>


Ask HN: What NON monospace font do you like for terminal/IDE? - <AUTHOR> Sometimes I like to use a non monospace font for daily use (term, IDE). right now I'm using Mali. If you do that too, what font do you use? <comment><USER2> I think it's the writing sample at the bottom that attracts the concern. I thought the content was beautiful in its' capacity to evoke emotion. The typeface definitely added _something_ to it.

What was the cursive block before it in? Out of curiosity.

First time I've ever noted typeface really making a difference in how I read something, so just curious.

</comment><comment><AUTHOR> For reference: Mali [https://fonts.google.com/specimen/Mali](https://fonts.google.com/specimen/Mali)

</comment><comment><USER3> are you ok?

<comment><AUTHOR> just curious.</comment></comment>


Show HN: Video subtitle maker - <AUTHOR> https://www.kapwing.com/subtitles <comment><AUTHOR> Hi everyone! I'm Eric, one of the developers behind this. Adding subtitles to videos has been a really hard problem so we wanted to make a simple web tool for it. The other tools online only let you create an srt file or just overlay subtitles. But for content on social media, it's really important to burn the captions directly into the video. So that's what this tool is for! Thanks for checking it out!

<comment><USER2> Why is it important to burn the captions in? Can you expand on the social media reasons?

<comment><USER3> Not OP, but my guess is that videos autoplay on feeds (FB and twitter for example) but without sound. Therefore, burning in the subtitles is kind of a hacky way to engage users.

<comment><USER4> When Facebook autoplays a video, doesn't it also automatically enable the SRT subtitles?

</comment></comment></comment></comment><comment><USER5> Kudos on building a nifty tool -- I found your subtitle and other editors quite easy to use. Your key differentiator seems to be in bringing together several video editing tools under one web app. What would make it stand apart is if you let users add subtitles, sound effects, resize, etc. in a single workflow.

A few bugs I encountered:

1\. The Blog and My Account links in the footer either 404 or do nothing.

2\. On the subtitle editor page, I scratched my head a bit trying to figure where to type the subtitle. It'll help if you make the input text field look editable with a blinking cursor, pen icon, etc.

3\. When I uploaded a 460x460 video to the subtitle editor, the subtitle options on the left overflowed the webpage and were not scrollable.

4\. The command line output log that is displayed when the video is being processed post edit is TMI and could confuse a lay user.

Hope this helps.

</comment><comment><USER6> For those who might be looking for similar online titling tools, there's also dotSUB ([https://dotsub.com/view/](https://dotsub.com/view/)). You can use the same timings to translate into other languages. Just FYI [edited to lower snark]

<comment><AUTHOR> dotSUB is really cool, but it doesn't burn the subtitles directly into the video. This is really important for content creators on social media, because they don't get to control the player through which the video is watched. So this is an important differentiator for Kapwing!

</comment></comment><comment><USER7> Hi! I really like this!

I've used Aegisub to do dramas and music video translations before.

Which brings me to the inevitable feature request: more colours and stroking the text.

Every subbing job I've been involved in I've used yellow text with a black stroke because it's visible on any light or dark background without issue.

A low res example here: [http://www.smh.com.au/content/dam/images/x/w/5/h/image.relat...](http://www.smh.com.au/content/dam/images/x/w/5/h/image.related.articleLeadwide.620x349.xvdm.png/1276090640143.jpg)

</comment><comment><USER8> Is there a feature to put a semi transparent black rectangle behind the text so that you can read it when the video image is the same colour as the text?

<comment><AUTHOR> Unfortunately not right now, but we are working on it. You can however change the font color! Thanks for checking it out.

<comment><USER9> Border colour options would be nice... or just having a preset with yellow text with black borders.

</comment></comment></comment><comment><USER4> I'm always on the look-out for software that supports right-to-left languages (and Arabic specifically). Sadly, this doesn't. The final rendered video doesn't render Arabic properly. Looks cool, though, thanks for sharing!

</comment><comment><USER10> Here's a free automated transcript. No typing required.

[https://scribie.com/transcript/37316433662740289509d4234c14f...](https://scribie.com/transcript/37316433662740289509d4234c14fd1ebef58de5)

<comment><USER11> That needs some pretty heavy proofreading + editing, so there definitely is typing required.

</comment></comment><comment><USER12> Congratulations on launching!

I've never needed to subtitle a video so I don't really know who your competitors might be but none of the links posted so far in this thread (except for yours) seem to be very easy or intuitive to use.

I love your logo character too!

</comment><comment><USER13> Wow that's pretty cool! What library did you use for this? Because it would be cool to call out any Open Source projects you used, to give back recognition to the Open Source contributors

<comment><AUTHOR> Yes, we primarily rely on MoviePy ([https://github.com/Zulko/moviepy/](https://github.com/Zulko/moviepy/)) to do the heavy lifting on the actual native video editing part of it. It's an awesome library!

</comment></comment><comment><USER14> Why would I use this over YouTube's transcriber application, which automatically transcribes most of the video and aligns the text to the audio?

<comment><USER15> Looking at the site, it appears to target other platforms like Facebook, Twitter and Instagram where videos are often viewed without sound, and which don't have built-in support for subtitles.

<comment><USER14> You can export the video from YouTube, just like you can export it from this application.

</comment></comment></comment><comment><USER16> What?

I'm not going to upload footage to a site to make subs.

There is no shortage of subtitling tools that run locally on your PC and just open the video.

<comment><AUTHOR> It is hard to do in simple software like iMovie. The timeline UI makes it difficult to enter text and set the timings in an easy way. We like the idea of being able to subtitle a video without having to download any software too.

So yes, there are alternatives, but we believe that our product is much easier to use.

</comment></comment><comment><USER17> Kudos on launching. BTW is this free? Last I checked it seemed quite CPU intensive to encode/decode long videos.

<comment><AUTHOR> It's free to use but we add a watermark. It costs $2 to remove the watermark for a single video, $10 for a monthly subscription for unlimited videos without watermarks. But actually you can also remove the watermark for free too. We wrote an interesting post about that here: [https://www.kapwing.com/blog/skipping-our-paywall-with-an- ap...](https://www.kapwing.com/blog/skipping-our-paywall-with-an-apology/)

As for the CPU usage - it is quite intensive so we set up a Linode instance dedicated to processing the videos. It costs us $80 a month, but Linode throttles it automatically. That's nice because if a lot of videos are being created, it just means that they get created slower for everyone. But they don't fail.

</comment></comment><comment><USER18> Would there be a way to download the generated subtitles as a srt as well?

<comment><AUTHOR> Not quite yet, but we're looking into it. Any reason why you prefer having the .srt file? Is it helpful for uploading to other sites?

<comment><USER18> No, mainly archival and ability to playback from local media / my hardware player. If I spend hours subtitling something, I want ability to export my hard work.</comment></comment></comment>


Flat Surface Shader - <AUTHOR> http://wagerfield.github.io/flat-surface-shader/ <comment><USER2> This is lovely, but it mostly just reminds me of how I can't wait until WebGL is so commonplace that we can finally ditch all that HTML/CSS nonsense.

<comment><USER3>
        > HTML/CSS nonsense

Structured and well declared markup is no joke. If you actually refer to the common "hacks" to get demos and eye-candy stuff working, then I do agree. On the contrary, if you refer to ditching all HTML and CSS in favor of WebGL, then we're fucked.

<comment><USER2> No, I refer to bullshit like the amount of trouble you have to go through (and subsequently the amount of upvotes you get on HN [1]) if you manage to _center a rectangle on the screen_. Stuff like that. It's 2013, the web is _the_ application platform of today, and centering a rectangle is nontrivial. What?

It's just one of the many examples of how broken HTML and CSS are. I dare say that anyone who claims that HTML and CSS aren't completely broken simply has absolutely no imagination and should consider accountancy.

On WebGL, we can reinvent presentation and styling entirely without sacrificing performance. Maybe keep parts of HTML, and ditch CSS entirely in favour of something better, and use a JS lib to render it all on GLES hardware, the same in every browser. Designers can think about different devices and screen sizes, and not about ways of telling a browser that a div is secretly a table cell so that it can be centered. We now have many competing programming languages, competing frameworks, and so on, with a few mainstream ones and improvements/replacements all the time. Rendering entire websites in WebGL enables having the same world-wide innovation in presenting web sites and web apps to users.

But even if you don't think going all-in on WebGL is a good idea, you have to agree that HTML/CSS is a gigantic 💩[2].

[1] [https://news.ycombinator.com/item?id=6191350](https://news.ycombinator.com/item?id=6191350) [2] [http://www.fileformat.info/info/unicode/char/1f4a9/browserte...](http://www.fileformat.info/info/unicode/char/1f4a9/browsertest.htm)

<comment><USER4> HTML and CSS are the way they are because they, together, are markup for _documents_ \--and documents on the web are of indefinite shape. You can resize your browser window, or change your text-zoom, or insert/remove content in the DOM, and things have to _reflow_. Most importantly, this means that boxes containing reflowed text will get _longer_ or _shorter_ , and then push other boxes on the page up or down.

Because of this, it really makes no sense, in the context of an HTML document, to center something vertically--it'd just end up at some arbitrary position on top of some paragraph in the middle of the page's content, found after N/2 screens of scrolling. This is what separates an HTML document from, say, a PDF: PDF pages _don 't_ reflow, each one has a fixed height, so there _is_ such thing as the "center" of a page on a PDF.

If the web were like PDFs, sure, it'd be easy to render it all using WebGL. But try imagining, now, writing an interactive text-layout-and-reflow engine in Javascript, to render web documents onto a WebGL canvas. How would you specify the constraints for that engine to follow? Some sort of declarative markup language based on a box model with paddings, borders, and margins, perhaps?

\---

Now, on the other hand, web _applications_ tend not to care so much about the shape of any "document"\--what they're interested in is the shape of the _viewport_. That has completely different semantics, and _can_ be done easily in WebGL ("viewport" being a jargon term in GL.)

 _But..._ web applications tend to embed, and rely upon, the reflow semantics of web _documents_ surprisingly often. As soon as you want to include any controls with user-contributed content, you need that rich-text layout engine, and you can't just pre-render it all to a canvas to bring it in, since users will want to copy and paste text from it...

<comment><USER5> So how come it's simple to horizontally center something.

<comment><USER6> If you read his post, basically width is the constant and height is the variable. That's why horizontal centering is easy, because the width is deterministic.

</comment></comment></comment></comment></comment></comment><comment><USER7> This is probably a bit OT, but it makes me sad that flat shading as an art style has been abandoned in games. Ever since pixel shaders and normal maps gave us shiny plastic-y objects, developers haven't looked back.

<comment><USER8> Here's the lighting style of our current project: [http://hitboxteam.tumblr.com/image/42563981451](http://hitboxteam.tumblr.com/image/42563981451)

<comment><USER9> Very awesome. Do you guys explain something about the development process or the shaders themselves? I'd love to learn a bit more about it as I'm new to the graphics party (but loving it). If you can't tell me, what should I search for to be able to reproduce a shader like that?

<comment><USER8> Thanks! I've been planning on writing something about it but just never found the time. The shader is actually quite simple, although the implementation is pretty tricky (need a lot of hacks to get it working in Unity).

All it's doing is lighting each tile individually. It's a throwback to the per-tile lighting of ascii roguelikes ([http://osx.iusethis.com/screenshot/osx/brogue.png](http://osx.iusethis.com/screenshot/osx/brogue.png)). So each square chunk on the wall gets a single amount of light and color evenly distributed on it. That's it. Also, there are shadows on top of them.

The props (torch and statue) have a banded light shader on them. It's just standard diffuse lighting but clamped to a certain set of values.

</comment></comment></comment></comment><comment><USER10> I added a crumpled paper effect to a web browser once, the result was very cool:

[http://blogs.msdn.com/b/sean_mcdirmid/archive/2009/07/27/a-w...](http://blogs.msdn.com/b/sean_mcdirmid/archive/2009/07/27/a-web- browser-suitable-for-harry-potter-in-wpf.aspx)

I'm not sure if it was useful though.

</comment><comment><USER11> It blows my mind that I can switch between the three different renderers without dropping a noticing a single framedrop. I had to open the devtools and verify that there is actually a change happening to believe it.

<comment><USER12> On my iMac, switching between renderers definitely caused a "hiccup", and SVG was _very_ slow on Chrome, but it looked great in all 3.

</comment></comment><comment><USER13> > I love WebGL, but unfortunately it doesn't work everywhere.

What is meant by that? WebGL does seem to work here as in the appearance and frame rate are the same compared to SVG but with less CPU usage on my machine/browser (Chrome).

<comment><USER14> I think the author means that it's not implemented in all the browsers that have a significant share of the browser market.

</comment></comment><comment><USER15> Everything renders incredibly smoothly on my setup. And I'm learning all sorts of nifty tricks via the source. Thanks for making this!

</comment><comment><USER16> it looks quite nice but unfortunately I guess it's by far too power hungry. My GTX 560's fan went up.

<comment><USER17> Your GPU powered up? I would assume this renders in CPU, so that's a bit strange.

<comment><USER18> By default it's using a canvas to render, though you can also choose SVG or WebGL. Canvas is hardware accelerated in most browsers.

<comment><USER17> Didn't realise, though that makes perfectly good sense of course.

</comment></comment></comment></comment><comment><USER19> I'm very impressed by this! Awesome work, congratz on the outcome!

I think WebGL has a lot of potential, feel free to check out my hackish background bump mapping @

[http://anthonycameron.com/lab/background- bumps](http://anthonycameron.com/lab/background-bumps)

</comment><comment><USER20> Can you do this easily with three.js? Can this library work with three.js?</comment>


Ask HN: Hacker Houses in London? - <AUTHOR>

Are there any hacker houses in London? I'm interested in moving into a creative hacker house in central/west London with fellow hackers. I'm surprised that I can't seem to find any so I'm turning to HN! <comment><USER2> I was looking for one as well, I posted on twitter and got retweeted by people like techhub but still didn't get much of a response !

</comment><comment><USER3> try <http://hackerspaces.org/wiki/>

<comment><AUTHOR> Thanks for the link. I'm still surprised in a city the size of London that there aren't more places!</comment></comment>


Peloton CEO John Foley Declined to Talk about The - <AUTHOR> company's controversial "The Gift that Gives Back" advertisement, which inspired widespread mockery and accusations of sexism last week. In his first public comments since the commercial's release, Foley avoided a question about the ad from an NBC reporter at the UBS Global TMT Conference, and said "That was last week." Instead, he predicted Peloton would be "one of the great consumer companies of the next couple of decades." Within a week of the ad's release, featured actress Monica Ruiz had already appeared in a commercial for Aviation Gin subtly referencing Peloton. A statement last week from Peloton said the company is "disappointed in how some have misinterpreted this commercial." – AD AGE<p>Best Read -- Answer to What's things you wish you knew before getting into computer science (CS)? by Abhipsa Mishra https://www.quora.com/Whats-things-you-wish-you-knew-before-getting-into-computer-science-CS/answer/Abhipsa-Mishra-38?ch=99&share=d6dcf0ba&srid=uQDqk <comment><USER2> From the article:

>The TV spot, which depicts a woman showing a video diary to her male partner of a year spent on the Peloton he gave her, struck some viewers as sexist.

How? I don't understand.

If my partner purchased a bow-flex for me and I got ripped in a year and documented my transformation and showed my partner the dairy. Would that also be sexist?

Isn't the point of exercise equipment to improve your health and physical appearance?

I swear outrage culture is growing at an ever-increasing exponential rate to the point that no matter what you say someone is going to 'get offended'.</comment>


Make it Easy to Unsubscribe from your Email List - <AUTHOR> http://procrastinatingdev.com/misc/make-it-easy-to-unsubscribe-from-your-email-list/

<comment><USER2> You missed another big one: If you're based in the US, it's the law.

The CAN-SPAM Act has many faults, but it's actually surprisingly explicit about unsubscribe process. If people have to click through multiple pages or supply any information beyond email address, you are probably in violation and could be fined by the FTC.

</comment><comment><USER3> I'm surprised Gmail doesn't have this type of functionality. It could try to keep track of what email lists it thinks you are subscribed to, and then let you manage them all from a single page (with links to external sites if Google can't remotely manage it).

Seems like a pretty straight forward feature addition.

It's not going to solve the problem of an email list that is almost impossible to unsubscribe from, but it would still be cool to just see all the email lists that you're subscribed to in a single place.

<comment><AUTHOR> +1 That'd be a great feature.</comment></comment>


I don't understand open source - <AUTHOR>

I had an interesting discussion with a colleague yesterday who raised some questions I couldn't answer:
1. Who funds open source projects and the main contributors to those projects? For instance, the Rails project has key contributors who seem to be working full-time on the project.
2. Can an open source project get acquired by an organisation and become a proprietary product? <comment><USER2> Axiom costs several thousand dollars a year. I fund it. The main contributors are academic mathematicians since Axiom is a computer algebra system. I have tried to get funding from IBM, RedHat, the NSF, and several other funding sources. Funds would be used to run a conference, pay for speaker fees, hackathons, travel costs, and server costs. None of the funds would be for actual code. So far I have not found any funding source.

Axiom used to be proprietary. It was a commercial competitor to Mathematica and Maple, one of "the big 3". It could be proprietary again as it is licensed under BSD. Axiom contains world-class algorithms written by the people who invented them. It is truly a valuable collection of intellectual excellence. This is what motivates me to continue to support and develop it.

Tim Daly Axiom Lead Developer <http://axiom-developer.org>

</comment><comment><USER3> On number two, if the project uses a BSD-style license, it's possible for some corporation to create a proprietary derivative. For projects with GPL-style licenses, the only way to do this is to get all the copyright holders (basically all the contributors) to sign a license agreement giving the corporation the right to create a proprietary derivative. (This occasionally happens with one-man projects, but basically cannot happen with large projects like the Linux kernel.)

In either case, the existing releases will still fall under the FOSS license.

<comment><USER4> Most large projects require the forfeit of all copyrights before you can join the project.

<comment><USER3> The only examples I can think of are projects run by the FSF and some corporations (the projects run by Oracle, for example). You can contribute to the Linux kernel, Apache, the BSDs, Ruby, and really most FOSS projects without signing away anything.

<comment><USER4> I stand corrected

</comment></comment></comment></comment><comment><USER5> 1\. Depends on the project. Lots of small things, and even some big things, are labors of love - done in spare time for little or no reward, just a chance to put something out there and make the world a little better place. Or a chance to get your name out there.

Bigger projects like Linux and Rails are funded by companies who depend on them. In exchange, they get a degree of control over the platform their business is built upon, name recognition, and goodwill from the community.

Since you mentioned Rails, I guess 37 Signals is a great example of this. They built Rails to help build Basecamp, and they've gone on to build a thriving business from other Rails-based apps. They're also pretty much synonymous with Rails, which no doubt helps them land outside development work.

2\. The basic answer is "no". "Acquiring" an open source project wouldn't negate the licensing terms of previous releases. Even if a company managed to make future versions of a project closed-source somehow, the community would be free to fork the most recent code and continue building their own version under an open source license.

</comment><comment><USER4> Both open source and free software can be sold.

1\. Most projects are not funded at all. In most cases large companies exchange human labor for influence over the project. There are also cases where the company built something for itself and realized the publicity generated by open sourcing it would worth more than the project. And sometimes they are required to because of licensing.

2\. The copyright holder can create and change one or multiple licenses anytime it wants. This is why FSF usually requires authors to transfer the rights to them.

Most people think that open sourcing is like throwing candy out of a window. But reality is you can open source you whole website's source code and MAYBE 2 or 3 persons will ever fork it. Robbers will look for money, not work.

</comment><comment><USER6> 1\. Varies by project. Sometimes it's all-volunteer, sometimes funded by companies like IBM, Microsoft, whoever.

2\. No. Well, it's not impossible, but usually open-source products are licensed in such a fashion as to prevent expropriation.

</comment><comment><USER7> There are several fallacies in your argument. You assume that software cannot exist without some corporations.

Open source is almost like "free" information and content on the Internet. Any kid or adult can start a project. They can just wake up and start coding. Many tools are free and available so they decide to start coding on their own time.

Nothing should stop the coder from starting a project.

And there are some corporations like Google that allow their developers to work on open source projects. There are some companies that even want to invest developer time on open projects.

<comment><USER8> _"There are several fallacies in your argument."_

There are only questions. There isn't an argument at all, let alone a fallacious one.

</comment></comment><comment><USER9> nice topic just subscribe here</comment>


Using a Neural Network to Train a Ruby Twitter Bot [video] - <AUTHOR> http://www.fullstackfest.com/agenda/skynet-for-beginners-using-a-neural-network-to-train-a-ruby-twitter-bot <comment> dan-silver That's a really misleading conference talk title. Nothing is really mentioned about ruby and the first 20 minutes is a general intro to NN.

Not saying it's a bad talk, just probably mislabeled.

<comment><AUTHOR> Basically the twitter bot part is non existing in the talk, but at least it manages to convey a cute basic intro into neural networks.

</comment></comment><comment><USER2> Warning, this talk is admittedly ill-prepared and the speaker didn't create a neural network trained Twitter bot. Not worth the 20m to get an elementary introduction to NN.

</comment><comment><USER3> That was hard to watch. "Hey, I'm going to build something with AI", "Oh, I have no idea how"

</comment><comment><USER4> That was painful.

Forced, unfunny jokes. Um every other um word um is um. Talking so slow that even if she knew what she was talking about it would be boring. Skynet for beginners? Laughable. And now there are memes. Just shoot me.

</comment><comment><AUTHOR> This is a good intro as well:

LoneStarRuby Conf 2013 - Neural Networks with RubyFANN by Ethan Garofolo

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

</comment><comment><USER5> I think this is proof that people upvote submissions based on titles alone, not content...

</comment><comment><USER6> I agree that this was my worst talk up to date and I would rather not have it submitted.

Hint: Giving an ill-prepared talk is even worse than listening to one :).

</comment><comment><USER7> These slides are too childish to be taken seriously...</comment>


Compressed Computation for Text Indexing (2016) [pdf] - <AUTHOR> http://www2.compute.dtu.dk/~npre/documents/thesis.pdf <comment><USER2> @luu you submitted two links about dynamic succinct data structures today, what picked your interest?

<comment><USER3> This is very interesting to me. What's the other one?

Edit: no worries: found it [0]. So much to read today if you wanna stay ajour with indexing and compression.

[https://arxiv.org/abs/1607.04346](https://arxiv.org/abs/1607.04346)</comment></comment>