I've made a movie site, but it sucks, and I don't know why - <AUTHOR> http://www.mowish.com/ <comment><USER2> Imagine a graph, with "effort" on the x axis and "value" on the y axis. I think you're down the bottom-right. I just don't care very much about remembering which movies to watch. That's not to say I wouldn't find any value in your site, just not enough to bother keeping around in my brain. Definitely not enough to sign up for.

So you need to either be less effort or more value.

It's pretty tough to significantly raise the value of what you're doing without fundamentally changing your idea. More integrations would help, and social features maybe (assuming you got the numbers for that to kick in), but ultimately it's not really going to improve my life that much.

Finding ways to be less effort could be a bit more fruitful, though. As others have suggested, I'd remove the signup requirement or delay it as much as possible. Improving the UI would be a good idea, not so much in terms of how it looks, but in terms of making it as fast and low-friction as possible to use.

One angle you could try is to add a super simple hook to get people started. Like, the front page just says "What's your favorite movie?" and an input box that does a search with auto-complete and live-updating results. When you pick the movie, it pops up a few recommendations. Each suggestion has "have you seen? yes/no", if yes: "did you like it? yes/no" that feeds back into the recommendation system. If they haven't seen it, a mini-blurb + "show trailer" \+ "want to see? yes/no".

If you kept that all snappy with ajax and a reasonably fast backend, a person could feasibly visit your site for the first time and have 5-10 recommendations within a minute. Exactly the same service, same value proposition, just a lot less effort. I think if I had visited that website instead of your one I would probably have a movie list by now.

</comment><comment><USER3> I worked at a movie startup, very similar to this idea, way back in 2007-8. It was my first startup experience, and I knew back then that it was not really an interesting product. We did a lot of cool text mining stuff on movie reviews we scraped (I am a statistician by trade) and at the time provided a way of searching based on emotions and moods. It was kind of neat, but even still - we were making a glorified movie list, which is not a problem anyone actually has.

At the time, our biggest 'competitor' (in our eyes) was jinni.com, which still seems to be doing something similar to what they set out to do way back then.

It's 2014 now, and I still see about 1-3 of these types of sites pop up every year. I just met a guy who has a similar movie list app out in Berkeley last week - no joke.

So, does your product suck? Maybe not. Is it a product solving a real problem that people will pay for? I don't think so. I personally don't see any value in using this site over Netflix, and I'm sure a lot of others would agree with me.

But it is okay if no one likes it - you can get a lot out of making something without it being successful or ultimately useful. I learned a lot working at that movie startup, and I am glad I did it, even though the damn thing fell apart before we could generate revenue. Revel in it, pal! You have created something!

</comment><comment><USER4> "To access the full featured mowish site please provide your email and password respectively:"

I don't see that you can access anything without registering. Always a bad idea.

Unfortunately, I don't even see what the point of the website is -- other than making a list for some reason -- so I have no incentive to register.

"Unlock feature to get movies for your taste! Only $12.97 for 6 months."

No idea what "feature" is and certainly not going to pay for it.

</comment><comment><USER5> \- I don't like the name at all. It's not obvious how to pronounce it and that's a huge problem if you want people to talk about it. MovieWish I'd be fine with.

\- Basic problem - what do I do with this list? Is it integrated with my Netflix account? My Bittorrent client? A ticketing service like Fandango? The DVR on my TV? all 4 of these?

\- _Forget numerical ratings and silly averges like this movie is 7.4 /10 points good – for you, a movie is either good or bad, period._ I hate this. My opinions on a movie are much more nuanced than 'good or bad'. I'm not even that hot on only having 5 stars to do a Netflix rating. 'Averages' is spelled wrong BTW.

\- The individual movie pages are OK, in fact the graphic design is pretty good. still, I can't escape the feeling that it's a prettier but less capable version of IMDB. did you scrape their DB? a good aspect is that so far my searches have all returned a result, even for my obscure test films.

\- Social buttons - I would fold them away under a sharing icon and put them in a UI frame rather than straight in the film listing. I never understand why site designers want to stock someone else's branding in the middle of their offering.

</comment><comment><USER6> I agree with others that your site's main mistake is to impose a "register wall" to discourage engagement. The fix is for you to "show, don't tell" visitors what your site does.

But, even if you just want to use registrations to gauge interest, a lot of your content is unclear or just strange. Some examples:

* "Get Notifications" \- Of what? You never say.

* "The cleanest way to browse movies" \- Is browsing movies dirty? Or, are you saying your users browse dirty movies?

* "Never miss a movie again!" \- How do you miss a movie and how does the site prevent that?

* "Your girl or kid wants..." \- Flippant, gender- and age-biased language that dismissively "shelves" your family's tastes

* Why are numerical ratings or "silly averges" (typo) less useful than your site's binary good/bad ratings? No matter where you put the good/bad cut-off, you will either include borderline movies as "good" or bury almost-good movies in the "bad" category.

</comment><comment><USER7> You don't specify why you think it sucks, so maybe I'm coming at this from the wrong angle, but * don't use the term "girl"! * hire a professional designer -- it really shows * switch off debug! [http://www.mowish.com/search/movie/looking%20for%20a%20movie...](http://www.mowish.com/search/movie/looking%20for%20a%20movie?/)

</comment><comment><USER8> If you don't know why it sucks, how were you able to determine that it sucks?

Figure out what you don't like about the site, then ask for ideas on how to fix it, or hire someone to fix it.

Your current method will get you lots of opinions, but they will be all over the map.

</comment><comment><USER9> At least do social auth or auth to netflix instead of requiring an email account to sign up... ain't nobody got time for that.

</comment><comment><USER10> What is the purpose of this website?</comment>


Transmit 5 - <AUTHOR> https://panic.com/transmit/ <comment><USER3> Fantastic app, instabuy. I'm really happy to see these kinds of native Mac apps being successful for so long. They're a breath of fresh air amidst all the Electron crap lately.

<comment><USER4> Agreed. I get that it's easier to build a singular cross platform app using a JS framework, but the decrease in quality from a well done native app really shows. I'm looking at you Spotify, todoist, Slack and others

<comment><USER5> Atom, Discord, Etcher are all Electron apps (I am pretty sure?) and I think they work great.

<comment><USER6> Atom doesn't handle large files very well and it hangs a lot. Sublime ftw

</comment></comment></comment></comment><comment><USER7> I'm buying this just for it not being a monthly subscription.

<comment><USER8> I don't understand the allergy that so many developers have (in my experience) to subscription software. Software is never finished, golden master style distribution ends up orphaning huge swaths of customers across major updates, and most of the cost of software maintenance is continuous. Continuous income via subscription services goes a long way toward solving these issues.

<comment><USER9> Because it strips away your right to "own" software. Transmit 4 still works, and I can choose to pay for an upgrade if I wanted to. Transmit 5 is faster, nicer looking, and has more features, but I don't suddenly lose access to Transmit 4 by not upgrading. Charge me and upgrade fee and make versions, don't do a subscription.

<comment><USER10> Generally speaking subscription software that isn't SaaS doesn't lock you out when it's over. It just locks you out of updates.

<comment><USER11> Not true of two big (and expensive) ones I use: Adobe and Autocad. I used to upgrade every couple of versions. This has ended up costing me way more. But I still pay it because I need the software. So I guess they win...

<comment><USER12> Another way to look at it is that they were going to raise the cost anyways, at least now you get updates when they're production ready instead of every two years.

<comment><USER13> Bug fixes always came out immediately for "major version" standalone license software.

There's 0 technical correlation between update delivery model and billing model.

<comment><USER12> But we're not just talking about bug fixes, we're talking about "major version" releases also.

<comment><USER13> Buying a product once and expecting subsequent updates is greedy, and I didn't see anyone suggesting that.

I don't think that really applies to the thread here, honestly. :/

<comment><USER12> This is the post I originally responded to:

>I used to upgrade every couple of versions. This has ended up costing me way more. But I still pay it because I need the software. So I guess they win...

So my post makes perfect sense. They were going to raise the price on you anyways, so you were going to pay more either way. With the new pricing model you're paying more and getting versions you might have otherwise missed.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> Congratulations Panic :)

One of my favorite Mac app companies (along with The Omni Group and, more recently, Affinity). I always know I'll be paying for quality, polished software with Panic, and I've been looking forward to this Transmit update.

</comment><comment><USER15> Their entire interface and UX persona reminds me of better times when skeuomorphic design reigned supreme. Now all we get is boring flat with single color highlights. Transmit 5 looks fantastic!

<comment><USER16> The funny thing is, there was never anything strictly skeuomorphic about the old versions of Transmit either - Panic has just always had an engaging approach to UI design, independent of trends.

</comment></comment><comment><USER17> Stick around at the top of the page so you don't miss out on the gratuitous rotating 3D truck of awesomeness.

<comment><USER18> Took a peak into the source, apparently they thought writing 30,000 lines of code was worth it for a 3D spinning truck.

<comment><USER19> Took a look into the source of the OS that I'm reading the Panic web page on. Absolutely disgusting that there's over 1.5M lines of code _in the kernel alone_. This is the kind of software bloat that is the death of our industry.

</comment></comment></comment><comment><USER20> Transmit has always been slick, but it seems like Cyberduck[1] might have stolen a fair chunk of their clientele? I find it pretty useful on macOS (and/or things like yafc and ncftp on Linux).

1: [https://cyberduck.io/](https://cyberduck.io/)

<comment><USER21> Cyberduck is not bad if you don't use SFTP too often. But Transmit is way superior in terms of protocols and speed. Definitely worth the money.

<comment><USER22> What's wrong with Cyberduck's SFTP support? I've been using it for a few years already and never had a problem.

<comment><USER21> There is nothing wrong with it. But for me it still crashes too often and as I said: Transmit is a lot faster if you have to transfer a large amount of files.

</comment></comment></comment></comment><comment><USER23> Used it when I switched from Fetch[0] back in the day when PHP code was deployed with FTP. Great client, definitely the most "native" feeling FTP app I've used. Now I mostly use it for S3, which is very well supported.

[0]: Throwback [http://vintagemacmuseum.com/wp- content/uploads/2010/05/Fetch...](http://vintagemacmuseum.com/wp- content/uploads/2010/05/Fetch.png)

<comment><USER24> I was surprised to see Fetch is still around:

"Originally developed at Dartmouth, this product is now sold by FetchSoftworks."

[https://fetchsoftworks.com](https://fetchsoftworks.com)

[http://tech.dartmouth.edu/its/services-support/help- yourself...](http://tech.dartmouth.edu/its/services-support/help- yourself/knowledge-base/fetch-ftp-software-macintosh#)

</comment></comment><comment><USER25> Funny how much git changed how we do things. Transmit was one of the apps that I've always had opened on my laptop, and now haven't touched it at all for more than a year.

<comment><USER26> I primarily use it for S3, not FTP (though these days I find myself going to the AWS CLI more and more)

</comment></comment><comment><USER27> I haven't used Transmit in a while as I don't have a need for it, but when I did it was a great client.

The Panic app I miss most is Unison. Well, miss in the sense of miss it getting updated. It's still available.

Years ago, Unison and a fat Giganews subscription were fantastic ways to discover music.

<comment><USER28> The Panic app I really miss is Audion. The Winamp-alike app that very nearly got bought by Apple to be rebadged as a little music player called 'iTunes'...

[https://panic.com/extras/audionstory/](https://panic.com/extras/audionstory/)

<comment><USER29> When was this retired? (from a quick skim, the article doesn't seem to mention clear dates)

<comment><USER28> Wikipedia claims it was retired in November 2004:

[https://en.wikipedia.org/wiki/Audion_(software)](https://en.wikipedia.org/wiki/Audion_\(software\))

I've got an old PPC G3 Pismo laptop, and when I fire it up I always run Audion to play some music while typing. Loved the skins, I kinda wish the "Delicious Generation" of Mac interfaces would make a comeback. I think this was the default Audion UI:

[http://d2.alternativeto.net/dist/s/841d171f-38f4-4c73-b5be-f...](http://d2.alternativeto.net/dist/s/841d171f-38f4-4c73-b5be- feac22367cda_2_full.jpg?format=jpg&width=1600&height=1600&mode=min&upscale=false)

</comment></comment></comment></comment><comment><USER30> What timing! I was just telling my coworker this morning that Transmit was the best money I ever spent on tools I use for web development. I've been using Transmit for a long, long time and I still feel like I haven't fully utilized it.

Instabuy for me.

<comment><USER31> Curious, what do you use it for?

</comment></comment><comment><USER32> I've been a fan all the way since the beginning... I'll buy this even though I don't even use FTP and whatnot much anymore. Just for the extreme value this app gave me many years ago when I was getting started.

</comment><comment><USER33> Yev from Backblaze here -> good news! Backblaze B2 as a destination ;)

<comment><USER34> Very glad to see this :D

</comment></comment><comment><USER35> They also launched a new sync service which automatically encrypts your files clientside: [https://panic.com/sync/](https://panic.com/sync/)

It's great to see encryption is becoming standard practice with new services.

<comment><USER36> It's not new, it's been around for a long time in Coda and Transmit for iOS.

</comment></comment><comment><USER37> > And yes, Transmit still handles the classics — FTP, SFTP, WebDAV, and S3 — > better than any. We make complex services drag-and-drop simple.

I love Transmit, but S3 has been broken for a long long time on Transmit 4 [1]. Is it now fixed in 5?

[1] [https://twitter.com/derscuro/status/525570239120285697?lang=...](https://twitter.com/derscuro/status/525570239120285697?lang=de) (There are earlier references to this issue than this).

<comment><USER26> Can't speak to this feature, but appears features usable in latest s3 API are working that weren't in v4.

<comment><USER37> I couldn't perform _any_ operations on S3 buckets due to this issue. If you are going to be in the business of building a client on top of a third-party API with no defined long-term protocol or RFC, you should be in the business of providing ongoing support for it too.

Transmit spent so long developing v5 and didn't provide this (important) update to any v4 users even when it was present for around 2-3 years.

Let's hope they provide better support, for all the other new services they have added, going forward.

<comment><USER38> S3 works fine for me in Transmit 4. S3 is basically all I use Transmit for. Is there a particular use case that is broken for?

<comment><USER39> It depends on the bucket location. Some work fine but others do not.

</comment></comment></comment></comment></comment><comment><USER40> Finally.

I've been using Transmit for 10 years and had already moved to Forklift since the Transmit 4 engine was so slow.

Transmit 5 looks awesome and I only miss access to Google Cloud Storage which surprisingly only Cyberduck supports.

<comment><USER41> While not native but I believe there is a way to access Google Cloud storage with Transmit. Read: [https://cloud.google.com/storage/docs/interoperability](https://cloud.google.com/storage/docs/interoperability)

</comment></comment><comment><USER42> I didn't see any mention of segmented download support via sftp? This is something lftp and smartftp support but very few other clients do.

</comment><comment><USER26> Looks like it's no longer on App Store (not surprising or disappointing, though it was convenient when I moved to a new machine)

<comment><USER43> This app store thing just burned me pretty bad when I cleared my machine and did not back up Airmail 2. When I went back to install it, It was no longer on the app store and I was informed that there was no way to get it again unless I paid for Airmail 3.

This is where just having a license key and a dmg somewhere is preferable.

<comment><USER26> Transmit v4 still is in my list of Purchased apps, and appears installable.

</comment></comment></comment><comment><USER43> Always worth the money I've spent for a Panic app. Coda 2 got me through my previous gig as a web dev.

</comment><comment><USER44> Pretty awesome that they've been building the "same" app for 20 years – since MacOS 9!

</comment><comment><USER45> I love Transmit, and version 4 served me well, but I've used it less and less over the years to the point where I don't think I'm the target market, as a web developer, anymore. I wish I had a reason to use this, but I can't find one.

<comment><USER31> I agree; however, it's invaluable if you use S3 or the like to manually backup files you never want to lose. Arq, for example, works great to backup your entire computer/server, but I like have a manually curated backup.

</comment></comment><comment><USER46> The mac application company, they are the reason I started programming!

</comment><comment><USER47> I wish there was a universal file-transfer app like this on Windows & Linux. The best cross-platform solution I know of is FileZilla, and even that (1) only does FTP/SFTP, leaving out S3 and all the other services and (2) features some utterly baffling design decisions (ahem: [https://trac.filezilla- project.org/ticket/2914](https://trac.filezilla-project.org/ticket/2914)) that make it more or less unusable for serious work.

Sigh.

<comment><USER31> What about Cyberduck?

<comment><USER36> Seconding Cyberduck. Great on Windows and Mac.

</comment></comment></comment><comment><USER48> When I moved to a Mac (2004/5) Transmit was one of the first bits of software I purchased. It was a bit of a revelation to discover that software could be so lovely- it really added to the joy of using a new machine.

Having said that, nothing was ever as fast as LeechFTP I used on Windows [[http://www.leechftp.de](http://www.leechftp.de)]. That thing was magic - <USER2> ftp client has ever felt so fast.

</comment><comment><USER49> This says it supports "Amazon S3". Does anyone know if they allow you to configure the endpoint, and thus use an S3 compatible store[0]?

[0]: [https://en.wikipedia.org/wiki/Amazon_S3#S3_API_and_competing...](https://en.wikipedia.org/wiki/Amazon_S3#S3_API_and_competing_services)

<comment><USER50> On transmit 4 you can configure the server you're connecting to, so I would think it would work

<comment><USER49> Awesome, I didn't know it worked in Transmit 4 either. I'd been burned by trying out Commander One and Forklift where it doesn't work.

Based on your comment I downloaded the trial and confirms it works (only with TLS) for the Minio instance I have running.

</comment></comment></comment><comment><USER26> Glad to see them offer more cloud options (in addition to s3: Google, Dropbox, etc). While perhaps Transmit is "prettier", in recent years there have been many more complete offerings from their competitors.

Looks like they've made some S3 enhancements (which is my primary use). I hope they updated with support for KMS-encrypted files.

<comment><USER26> Yep, it opens KMS-encrypted files without an issue :-)

</comment></comment><comment><USER51> I've use transmit for over 10 years.. (Yikes). Was just wondering if this was going to get an upgrade.

Same price new/upgrade. Its been 7 years since they've upgraded the previous version so thats fair. I like the "Sync folders" feature quite a bit.

They started making games, and was wondering if thats where the company was headed..

<comment><USER31> Does the "sync folders" feature support checksumming? Basic file integrity checks would be nice.

</comment></comment><comment><USER52> I'm always impressed with Panic's software. I'm sure this won't be any different!

</comment><comment><USER53> I bought Transmit 3 in 2006, and upgraded to Transmit 4 in 2010. It's always been a shining example of extremely well supported, well designed Mac software.

I'm cool paying $35 for Transmit 5.

</comment><comment><USER54> I bought Transmit 4 in 2011-ish and was happy with it. The major missing feature (IMO) was segmented downloading. I switched to lftp and never looked back.

</comment><comment><USER55> Can I backup my macOS Time Machine to Google Cloud Storage using Transmit? I'd like to store my Time Machine backups offsite just incase.

<comment><USER56> Arq seems to be the app most people wildly endorse on Mac for backups like that.

<comment><USER31> Arq forces your files into their own proprietary (although open) containers, which are always encrypted. Being paranoid is nice and all, but it makes it impossible to log in into your cloud storage provider and browse your files or share a public link to one of your files.

Arq is atrocious for backups, but that doesn't seem to be its main use case.

</comment></comment></comment><comment><USER57> We use mostly Forklift here for uploads/downloads, the two pane view is a favorite of mine since Norton Commander.

</comment><comment><USER58> The remote-remote feature is great! Does any other client have such a thing? I basically need Google drive -> ftp.

</comment><comment><USER59> Any way to add SMB? I don't see it in the list of options and I need to copy files to a Windows server.

<comment><USER31> Isn't SMB natively supported by OS X?

<comment><USER59> It is, but its a PIA and I'd like to use the mirror function

<comment><USER31> It is a PIA, but you can still mount the SMB share, open it in Transmit, and sync.

</comment></comment></comment></comment><comment><USER60> FINALLY. So frustrating having to wait all of this time. I couldn't get a definitive answer from them on whether a Trasmit 4 license purchased at present, would be eligible for a Transmit 5 upgrade.

<comment><USER61> It's spelled out clearly on the order page – there's no special upgrade pricing, unless you bought v4 on or before June 1st, 2017, in which case it's free.

<comment><USER39> Do you mean on or after?

<comment><USER61> Whoops, yes, meant "on or after".

</comment></comment></comment></comment><comment><USER62> <just kidding...>

What a surprise it's not a monthly subscription!

</kidding></comment>


Optical Mouse Teardown: a look at the sensor - <AUTHOR> https://electronupdate.blogspot.com/2016/10/optical-mouse-teardown-look-at-sensor.html <comment><USER2> I count the optical mouse among the more significant developments in computer history. People today will never know the pain of using a mouse with accumulated gunk on the rollers.

At my high school, they started supergluing the compartments shut to prevent tampering, so I had to carry a Phillips screwdriver and remove the whole bottom to get a usable mouse.

<comment><USER3> I know that until optical mice matured and high-precision optical mice appeared, there were many gamers who still preferred mechanical mice (with a ball) since they felt they were more precise and less error-prone (i.e. cursor suddenly moving when it should not or the other way round), though mechanical mouses were a lot more high-maintenance.

I personally have a decent optical mouse on my desk, but also another (rather recently bought) optical mouse that sometimes "stutters" \- this may be related to the material of my desk pad (in other words: If I were to buy a good mouse pad the problem would disappear). But this should deliver further evidence for the previous paragraph.

<comment><USER4> The first camera based optical mouse was the Microsoft Intellimouse. They released various types all with the same sensor. These were superb mice for the time, and still good by modern standards. Unlike a lot of competitors (even today) the sensor had pure linear response, no smoothing, no angle snapping, no forced acceleration. It was ideal for gaming. It couldn't cope with very fast movement but it was possible to poll the USB port at a higher frequency which increased the maximum speed before error. 500Hz polling was popular (supported in Linux with the usbhid module's mousepoll option, available with hacked drivers in Windows). The sensor resolution was a somewhat low 400DPI but with the display resolutions people played at back then it wasn't a major issue.

Any problems with erratic movement were caused by excessively shiny surfaces. Preferring ball mice was pure superstition. All the competitive players switched once they realized how much better the optical mice were. I still use an Intellimouse today (with replaced microswitches after the originals wore out).

<comment><USER5> 400 DPI isn't low. There are only so many dots per inch a human hand can distinguish between.

<comment><USER4> If you play with low sensitivity it's plenty, but the Intellimouse family wasn't well suited to low sensitivity because it loses linearity if you move it too fast. With high sensitivity you can notice the imprecision. There's a middle ground where there's no problem, but sensitivity is a personal preference and you might not like that sensitivity.

</comment></comment></comment></comment></comment><comment><USER6> Yeah. Those chips usually talk via SPI. There's interestingly a lot of options, including ways to boost quality. One sucky thing, is they use "dots per inch" which is just completely stupid and boneheaded - seriously... Inches?!

But the ones I'm using are the ADNS-5030 for an interesting project with 3d printing. Its max poll rate is 1MHz, which is damned quick for a Atmel328p chip- it leaves only 16 instructions per SPI poll. The chip's default is 500 DPI (grr again inches), but can be changed simply by popping a "1" in a register.I'm sure different chips have much better qualities.

Also, you can pull out the dX and dY registers for relative travel since last sample. But you can also pull 256 times to get a 7bit grayscale picture of the mouse sensor! ADNS-5030 is a 16x16 7bit grayscale. And even the 'duino can pull that with relative ease and display in Processing. You can also display the fiduciary markers in which the optical analysis system determines as travel (how it gets the dX and dY).

But yeah, this article is kind worthless. Sorry. Anyways, videos can be a really bad way to pack little content in a lot of time and bandwidth. :/

<comment><USER7> You're not trying to get absolute position from those sensors, are you? I spent far too long on that project. At least at the precision we needed, my conclusion was that you would want to acquire and process the images yourself - both to get a higher resolution/field-of-view, and to estimate the error associated with each position update (Kalman filtering or similar). You can also then "re-register" your position if your path travels over the same spot twice.

Hopefully your application is less demanding!

</comment></comment><comment><USER8> These "mouse" sensors not only allow motion detection of small mice, motion detection of larger object and faster movement are possible too, which I think is a interesting application:

[https://www.mrt.kit.edu/res2_2650.php](https://www.mrt.kit.edu/res2_2650.php)

<comment><USER9> there is also a cheap drone kit based on mouse sensor

<comment><USER10> Do you mean:

[http://diydrones.com/profiles/blogs/adns3080-optical-flow- se...](http://diydrones.com/profiles/blogs/adns3080-optical-flow-sensor-now- available-in-the-diydrones-store)

[http://diydrones.com/profiles/blogs/quad-position-hold- with-...](http://diydrones.com/profiles/blogs/quad-position-hold-with-mouse)

<comment><USER9> yes thats what I meant, I checked ebay and it seems I have outdated information, there _was_ a kit based on mouse sensor, but its no longer available. There are camera kits now providing same function, probably thanks to jump in cheap processing power (16mhz avr VS 180mhz arm f4).

</comment></comment></comment></comment><comment><USER11> Another nice read on how optical mice calculate direction:

[http://electronics.stackexchange.com/questions/15481/how- doe...](http://electronics.stackexchange.com/questions/15481/how-does-a-ball- mouse-know-the-direction)

<comment><USER12> That answer is talking about the sensors used in mechanical mice, not optical mice. (Most mechanical mice did use optoelectronic sensors, but nobody would call the mice "optical" just for that.)

</comment></comment><comment><USER13> Is it possible to make like a cheap electric pen using parts from optical mouse? Currently there is Nebo app [1] available for free from Microsoft Store, but it requires touch/pen device. Doesn't work with mouse :(

[1] MyScript Nebo [https://www.youtube.com/watch?v=aNx- Nir0VQI](https://www.youtube.com/watch?v=aNx-Nir0VQI)

</comment><comment><USER14> I wonder how the "pixel matrix + laser diode + image processing part" & similar products are designed. Is it done using a specialized graphical CAD software or with a language such as VHDL? Or a combination of both?

<comment><USER15> It depends on the specific application and of course your requirements. In general, there two ways to design a ASIC.

The more common approach is called semi-custom design. The idea is to write your gate-level design in VHDL, and simulate it extensively to make sure it works. Once you want your circuit to be realized, you pipe that code to a synthesis tool that does a place-and-route. In a nutshell, the synthesis tool takes each gate, converts it to its transistor layout level design using a standard cell library, and finally routes the gates (or cells) together to realize the connections between them. The tool would then perform a LVS check which makes sure that the layout performs the same function as the HDL code you wrote. Finally, the synthesizer outputs a GDS file which describes the exact layout specifications, including transistor dimensions, spacing, and placement on the silicon die. You send this GDS file to a fab and voila you get a circuit!

The other approach is much less common nowadays in digital circuit design, and is limited to applications where performance is key. It is known as full- custom design. You basically design the circuit at the transistor level by hand, and then simulate it to make sure it works. After that you manually design the layout of that circuit, and as before perform a LVS check. Your EDA tool will package your layout into a GDS file which you again send to the fab for manufacturing.

For example, in a modern CPU, key circuit components such as adders, multipliers, dividers, multiplexers, encoders, flip-flops, and cache memory are usually designed using a full-custom approach for maximum efficiency and performance. Other general circuitry may be designed using semi-custom. It also varies by company. I believe that ARM processors are completely designed using standard cells, not sure about Intel/AMD though.

<comment><USER16> I know ten years ago you could get standard cells for various peripherals and processors that were known good for the process you were going to use. Advantage is known good working part with documentation, probably test vectors as well.

Might be hard to say about the chips used for optical mice. First article I read on them was about 20 years ago in maybe Electronic Design News or some such.

Deal with these is because of the image sensor and analog driver circuitry need a certain amount of real-estate, and the requirements don't change much, they might just occasionally tweak the design to make it work with whatever fab process is cheapest. AKA they could be using really old layouts/designs.

</comment></comment></comment><comment><USER17> Could a mouse's optical sensor be used for a fairly accurate way to track how far a motor has turned? I've seen hall effect sensor used for this, but for slower things I wonder if a mouse could work.

<comment><USER18> Not likely. Mice have accuracy of 400-1200 dots per inch (DPI). A motor's shaft is a small fraction of an inch, and mice can lose track on occasion.

</comment></comment><comment><USER19> How are modern mice different than those old 1980s Sun mice with the ground mouse pads? What allowed us to ditch the physical tracking surface?

<comment><USER20> The old optical mice used IR to detect the grid lines on the old mouse pads. Today's mice take an image of the surface, and compare it to another image taken quickly after. Faster chips/better optics enabled this.

<comment><USER21> Does this mean a modern optical mouse wouldn't work on a (hypothetical) plane that is flawless at a resolution higher than the mouse's image sensor?

<comment><USER22> Ever tried on a glass table ?

<comment><USER9> grass table is full of dust and greasy smears, there are mice that work pretty great on glass.

</comment></comment></comment></comment></comment><comment><USER23> Are there any DIY mouse projects, specifically the methods to detect movement in software? than

<comment><USER24> Not sure if you mean on the hardware side or on the computer, the Teensy is a family of small dev boards which are easy to work with in the Arduino IDE, and can emulate USB HID devices (including mouse and/or keyboard) [1]

1: [https://www.pjrc.com/teensy/td_mouse.html](https://www.pjrc.com/teensy/td_mouse.html)

<comment><USER23> thanks for the link. I'm actually looking for any open source software that would turn, say a webcam, into a mouse.

</comment></comment></comment><comment><USER25> Deceptively simple device.</comment>


Abtach Ltd – Website Development and Design Company Pakistan - <AUTHOR>

We are organized to deliver premium quality services to our clients ranging from large
organizations to smaller groups and individuals from all over the globe.We provide Website Development, Web Designing, Mobile Application, Internet Marketing, Internet Product & Service Providers Karachi.<p>http://www.abtach.com/ <comment><USER2> Check 404 errors while loading the page. The logo is not shown.</comment>


Yarn's Future – v2 and beyond - <AUTHOR> https://github.com/yarnpkg/yarn/issues/6953 <comment><USER3> Very happy to see yarn.lock will finally be a proper format that won't need its own parser. YAML subset is a pretty good choice, though I think canonicalized, indented JSON would be a better choice for this use case. Incidentally that's what npm uses as lockfile, I wonder if there's room to have the two package managers share the format (or even share the file itself).

Very excited to see shell compatibility guarantee in scripts as well. Using environment variables in scripts is a pain right now.

Finally one of the biggest news is the switch from Flow to Typescript. I think it's now clear that Facebook is admitting defeat with Flow; it brought a lot of good in the scene but Typescript is a lot more popular and gets overall much better support. Uniting the JS ecosystem around Typescript will be such a big deal.

<comment><USER4> npm's lockfile is a pain to diff in PRs because of the JSON format where what was maybe 20 changed lines in yarn is upwards of 80 from the brackets.

With YAML and whatever format yarn.lock was in, the only changed lines are changes to the version resolutions, hash and dependencies.

<comment><USER5> I'd say safely merging YAML diffs however could be trouble.

I don't know how restricted their YAML subset is, but in my experience it's so loose a format the only way to be sure YAML says what you think it says is to run it through a parser.

<comment><USER6> I think if you're merging lockfile diffs, you're doing something wrong! Merge the package.json diffs and regenerate the lockfile.

<comment><USER7> Yarn automatically resolves conflicts in yarn.lock if you run "yarn": [https://github.com/yarnpkg/yarn/pull/3544](https://github.com/yarnpkg/yarn/pull/3544)

</comment></comment></comment></comment></comment><comment><USER8> > The codebase will be ported from Flow to TypeScript. To understand the > rational please continue reading, but a quick summary is that we hope this > will help our community ramp up on Yarn, and will help you build awesome new > features on top of it.

Another major project moving from flow to typescript

<comment><USER9> This sucks because, in the first few years, flow had much better soundness and typescript had some serious issues. I'm a little disappointed and feel as though, similar with Kube vs Swarmkit, the worse technology is winning.

<comment><USER10> I worked with Typescript for 2 years, then worked with Flow for 2 years and now I'm back on Typescript working for a big company.

I agree that Flow had better capabilities around soundness. But the tooling around Typescript really made me jealous, specifically in VSCode.

Near the end of working with Flow, Typescript was getting some cool capabilities like refactoring JSX for React apps.

Nowadays I can easily say that Typescript is a far better experience than Flow. There are updates every two months, adding some neat features that you might find in other languages.

Then you add in the power of surrounding tools and _their_ ecosystems like TSLint and it really feels like a next-level coding experience where the tools start writing the mundane code for you, driven the core TS static analysis.

<comment><USER11> I'd agree with everything you've said. Flow isn't bad but after working with TypeScript I could never go back. You're spot on with the tooling and ecosystem.

<comment><USER12> Also, TypeScript has a roadmap and when you report a bug, the devs actually reply. Flow doesn't have any of that.

</comment></comment></comment></comment></comment><comment><USER13> > The log system will be overhauled - one thing in particular we'll take from > Typescript are diagnostic error codes. Each error, warning, and sometimes > notice will be given a unique code that will be documented - <USER2> > explanations to help you understand how to unblock yourself.

Why do programmers love error codes? As an end user, they are useless indirection to me and the only way this would even be tolerable is if the explanation was printed directly next to the error code, so why bother? Is it code quality, since you don't have to write a long error message when you emit a similar error? But doesn't that have the drawback of encouraging error code reuse when it might not be appropriate?

[append]

Thanks for the replies! I guess I could understand error codes for search ability that also provide information about the problem specifics.

Counterexample:

      $ yarn add foo
      Error YARN1001: Incompatible peerDependencies.
      $ yarn explain YARN1001
      # Some longer text about how two of my modules have
      # incompatible peerDependencies

Better example:

      $ yarn add foo
      Error Yarn1001: Incompatible peerDependencies.
      * email@example.com
      |-* firstname.lastname@example.com
      |-* email@example.com
      |-* email@example.com (peerDependency of email@example.com)
      |-* firstname.lastname@example.com (peerDependency of firstname.lastname@example.com)
      $ yarn explain YARN1001
      # Some longer text about how two of my modules have
      # incompatible peerDependencies

<comment><USER14> Humans are not always the consumer of error output. Distinct error codes simplify parsing and eliminate ambiguity.

It also makes it easier for developers look up a specific error in the documentation, assuming it's been documented.

<comment><USER15> How does an error code make it easier to look up an error? The workflow is either "get error, google it", or "get errorcode google it". In both cases the docs will be the top hit.

If we where talking 20 years ago I might agree, but I really can't see the argument with todays tooling.

<comment><USER16> Updates can improve on the error messages, making them more clear, the error code does not change but the message changes.

Also many times the error message is interpolated with your specific details like

"Syntax error at line 123 in file /home/user/myfile , symbol X is not allowed here" this is a silly example but often enough when i google this errors I have to first strip out my data from them.

</comment></comment></comment></comment><comment><USER17> I'm glad that Yarn will continue. Npm has improved, but it's still less pleasant to work with than yarn (which basically always does what I expect, not so for npm).

<comment><USER18> Which part of npm acts unexpectedly?

<comment><USER19> Not that this is a showstopper, but I have issues with the package-lock.json file where the `resolved` field (the package's registry URL) constantly flip flops between http and https protocols, depending on which machine I'm on (home, work, or docker container), whenever I run `npm install`. Sounds not so bad, but it becomes a mess in git, and causes any docker build caches to become invalidated.

<comment><USER3> That sounds pretty bad and I'm not so sure it's a npm bug. Do you have a diff of the change in question? Is it on the npm registry or a custom one?

<comment><USER19> It's on the npm registry, affecting the npm client: [https://npm.community/t/some-packages-have-dist-tarball- as-h...](https://npm.community/t/some-packages-have-dist-tarball-as-http-and- not-https/285/51)

</comment></comment></comment></comment></comment><comment><USER20> The JS ecosystem has its flaws, but one has to appreciate the speed at which momentum shifts, making clear winners obvious.

The move towards TypeScript 'winning' has been fast, and to everyone's benefit.

<comment><USER21> > , and to everyone's benefit.

Why? I've worked on large codebases in Coffeescript, ES6 and Typescript. Whatever this whole community sings and believes, but Coffeescript still wins for me. ES6 is still trying to catch up but will probably never reach the beauty and ease of Coffeescript. Both are transpilers, only ES6 with Babel is a total horror to manage (just upgraded a large codebase to Babel 7..).

Typescript takes about 2x the time to write if you want to create all your typings properly. I hear you say; only in the beginning, later it will speed up the development process. I've never seen that in reality! I've actually never seen a proper codebase in Typescript. Show me a Typescript codebase not using the type 'any'! In a decent system language you can't get away with that, it's just a fake sense of security.

A good codebase should not be dependant at all by Typescript or whatever hype comes next. Writing a good codebase is IMHO a craft and should not depend on the language or a bunch of tooling. If Typescript is way to go, what about Python, Ruby, abandon it, deprecated? Are those inferior languages compared to Typescript? Typescript is just another hype, very smart play by Microsoft btw.

<comment><USER22> > Show me a Typescript codebase not using the type 'any'! In a decent system > language you can't get away with that, it's just a fake sense of security.

I don't know the comparison to system languages is fair though, because the use-case for JS is quite different from system languages.

Javascript (and by extension, Typescript) is commonly used to interface between the user and the network, both of which often are outside the bounds of the type system. Add to that any code that interfaces with plain JS, such as external libraries or legacy code. When dealing with those, it's natural to use statically untyped values and type ascriptions based on reasonable assumptions.

Taking that into account, I actually think Typescript's type system is fairly well-designed for the use-case. The problem isn't really with Typescript, it's just intrinsic to the use-case of JS.

<comment><USER23> Exactly. Even strongly-typed languages have this problem. In C, it looks like `void *`, while in Java, it's `Object`. The `any` keyword is just the latest in a long line of escape hatches. Pretty much every language has one.

<comment><USER24> > Even strongly-typed languages have this problem. In C

C is clearly statically typed, but among statically typed language it is quite weakly typed.

</comment></comment></comment></comment></comment><comment><USER25> I've got to say I'm not a big fan of some of these changes and I think they're biting off more than they can chew.

> Writing posix command lines inside your scripts field will work regardless > of the underlying operating system. This is because Berry will ship with a > portable posix-like light shell that'll be used by default.

> Scripts will be able to put their arguments anywhere in the command-line > (and repeat them if needed) using $@. Similarly, scripts will have access to > $1, $2, etc.

If you use either of these features your package.json will no longer work with NPM. Maybe they should call it yarn-package.json?

> Starting from Berry, we made it an explicit goal that each component of our > pipeline can be switched to adapt to different install targets. In a way, > Yarn will now be a package manager platform as much as a package manager. If > you're interested into implementing PHP, Python, Ruby package installers > without ever leaving Yarn, please open an issue and we'll help you get > started!

Noooo, god no. Package management is a gargantuan, complicated task, and these languages all have their own solutions already.

That being said, it's cool that they're rewriting it in TypeScript.

<comment><USER26> I don't see the need for PHP, because composer is one of the few things I like about it. And I don't know enough about Ruby to have an opinion there.

But something for Python that actually works? Yes, please!

<comment><USER27> For python we've been using poetry[1] at work. Dep resolution is a bit slow but otherwise it works well enough, definitely a saner choice than pulling in a completely different stack just for one tool.

[1]: [https://poetry.eustace.io/](https://poetry.eustace.io/)

</comment></comment></comment><comment><USER28> There appears to be a real movement to move from Flow to typescript. Is Flow dying?

<comment><USER29> Does anyone know of any "third choice" around typing JavaScript? I would love to add types to my code, but I want to write "real" JavaScript: so the code I input is the code that is executed by the browser. I just want the compile step to strip away the type annotations.

There was initially talk of Flow using comments to actually work without touching the source code at all, but I don't think anything came of that... is there anything else on the horizon?

[Edit: Nevermind: I went looking for the github issue about adding types as comments, and it turns out it's already supported by flow: [https://flow.org/en/docs/types/comments/](https://flow.org/en/docs/types/comments/) \- is there anything like this for TypeScript?]

<comment><USER30> TypeScript works with JSDoc annotations: [https://github.com/Microsoft/TypeScript/wiki/JsDoc- support-i...](https://github.com/Microsoft/TypeScript/wiki/JsDoc-support-in- JavaScript)

<comment><USER31> Can confirm, have sometimes added /* * @type Foo */ above a type and VS Code assumed that type was Foo everywhere else in my project, as if I typed `foo: Foo` directly. Didn't even have TypeScript in the project itself, purely an IDE feature. Extremely well thought out and useful ecosystem.

</comment></comment></comment></comment><comment><USER32> > your previous yarn.lock will be silently migrated

I hope that's not _that_ silent, because at that point, everybody who works on that project will have to upgrade as well.

That said, shipping the light-weight POSIX-like shell will make it a lot easier for scripts to be multiplatform. That's the improvement I'm looking forward to most.

<comment><AUTHOR> We'll make sure to add a notice at runtime to make it clear (plus, a consequent diff at review).

Also note that we recommend using `yarn policies set-version` to enforce the version of Yarn used by everyone in your team with very little friction:

[https://yarnpkg.com/en/docs/cli/policies#toc-policies-set- ve...](https://yarnpkg.com/en/docs/cli/policies#toc-policies-set-version)

<comment><USER32> There's a feature I didn't know about - that's enormously useful, thanks! Now to remember applying that to all my different repo's...

</comment></comment></comment><comment><USER33> For the uninitiated / confused, this refers to yarnpkg, the JavaScript dependency manager, not (Hadoop) YARN, the cluster manager.

</comment><comment><USER34> I'm curious as to why yarn instead of contributing to NPM? I am aware that yarn was the inspiration for many improvements for NPM by providing an alternative, but going forward do we need two systems? Is the plan for yarn to be compatible with NPM and package.json?

<comment><USER35> From what I've heard, the Yarn codebase is much cleaner than NPM. If anything, I think it would make more sense to migrate NPM over to yarn

</comment></comment><comment><USER36> The addition of vulnerability scanning was the only reason our company switched back to npm from yarn. Other than that, yarn offers a great experience

<comment><USER25> Yarn has this too (although it uses the NPM audit database): `yarn audit`.

<comment><USER37> Oh, I didn't know that! Here's some resources about it if you haven't heard of it either:

documentation; [https://yarnpkg.com/lang/en/docs/cli/audit/](https://yarnpkg.com/lang/en/docs/cli/audit/)

original feature issue: [https://github.com/yarnpkg/yarn/issues/5808](https://github.com/yarnpkg/yarn/issues/5808)

release comment in that issue: [https://github.com/yarnpkg/yarn/issues/5808#issuecomment-441...](https://github.com/yarnpkg/yarn/issues/5808#issuecomment-441989817)

</comment></comment></comment><comment><USER38> > Writing posix command lines inside your scripts field will work regardless > of the underlying operating system

That is very nice. No need to install other dependencies just to do 'rm -rf'

<comment><AUTHOR> Note that this is mostly about the command line syntax, not so much the commands themselves which will be executed just like now.

That being said, maybe we'll offer some builtin as well (possibly in a similar way to what CMake offers?[1]). That would be worth an RFC later on :)

[1] [https://cmake.org/cmake/help/v3.2/manual/cmake.1.html#comman...](https://cmake.org/cmake/help/v3.2/manual/cmake.1.html#command- line-tool-mode)

</comment></comment><comment><USER39> Since it seems the devs are here answering questions:

Which lightweight shell will be used on Windows? Does it also bundle standard unix tools (if a script pipes to grep or less for example)?

How will paths be translated on Windows? I've attempted something similar recently and had to do a fair amount of regex magic + using cygwins built in path translation utility to preprocess commands. Curious to see if there's a better way to solve that.

<comment><AUTHOR> > Which lightweight shell will be used on Windows? Does it also bundle > standard unix tools (if a script pipes to grep or less for example)?

It will be in-house, and very basic. We don't intend to rewrite bash, just to provide the basic experience that is usually needed when adding script into the `scripts` field. For more complex needs we'll simply offer a way to opt- out and use the native shell, or to call Node scripts.

> How will paths be translated on Windows?

The current Yarn tries to do this by using the `path` native module. It's quite error-prone since backslashes tend to appear in the worst possible places. For the v2 I plan to work with all paths in a posix style, and convert them into Windows paths right before they reach the filesystem (which is similar to what Cygwin does, as you mentioned). It would be a bit slower on Windows, but massively simpler in the codebase.

<comment><USER40> I'm assuming that lifecycle scripts (and scripts called by lifecycle scripts) in particular will still need to use common Windows-supported syntax? Even if the devs of the package are guaranteed to be using Yarn, people _installing_ the package might still be using npm. So I assume some caveats apply to some scripts, right?

p.s. I love Yarn :)

<comment><AUTHOR> The `postinstall` scripts would likely be better off without using those features, indeed. But in the end, your packages would be better off without `postinstall` scripts anyway ;)

<comment><USER40> Yeah I don't recommend `postinstall`, but `prepare` (and all the potential build-type scripts it could run) is actually useful (esp. for allowing people to install from unpublished versions via git), and would need special consideration. :(

</comment></comment></comment></comment></comment><comment><USER41> If you use the yarn cli and have tried the npm cli recently, why do you still use yarn? Are there big gaps that you find that NPM has failed to close?

<comment><USER40> Unfortunately npm is probably the biggest source of my daily development frustrations, even on the latest version.

I still come across bugs (that are definitely in npm itself) that have been around absolutely forever, like:

> npm ERR! cb() never called!

It sometimes gets its primary purpose, dependency resolution, wrong. I'll give it a perfectly reasonable package.json to install, which it will do, and then `npm ls` will still error with "missing dependency!" in some package. This should not be possible.

Related, it will put packages from the flattened tree in the wrong place. I can have a dependency (that other dependencies need, specified in their peerDependencies) specified in my top-level package.json and bafflingly, npm will still move it from top-level node_modules into the node_modules of something else that happens to use it, breaking the peerDependencies I was trying to satisfy.

On the install process: even if the total time to install is roughly on par with Yarn, I find that Yarn is much smoother. Whatever they're doing, they're yielding the CPU a lot more, and the result is I can actually work while it installs. npm meanwhile doesn't yield much during install and slows the whole system to a crawl.

Some npm commands are extremely neglected. The "success" message printed by one of the user/permissions related commands is simply: {}

Lastly, I will leave this terrifying comment here: [https://github.com/npm/npm/issues/16528#issuecomment-3075400...](https://github.com/npm/npm/issues/16528#issuecomment-307540010) – note this comment was left 2–3 years after receiving $10M in funding.

I don't blame them for being one-upped by Yarn at every turn, but they still fail to get the basics right, let alone innovate on things.

</comment></comment><comment><USER42> If package.json is already in JSON format, why not use the same for yarn.lock? Honest question, there must be a good reason.

<comment><AUTHOR> We want the lockfile to be easy to review by humans. In our experience, JSON doesn't quite fit the bill once you reach a critical mass of data.

Our lockfile format worked fine for the past three years (bar the unfortunate YAML incompatibilities that we're about to fix). Don't fix what isn't broken :)

</comment></comment><comment><USER8> serious question, if you are starting a new project today why would you choose to use npm over yarn?

<comment><USER43> Because npm is a standard (default) package management tool that comes with node.

After getting `package-lock.json` and `npm ci`, I would rather wonder why choose yarn instead of npm.

<comment><USER44> "npm ci" deletes node_modules directory every time. Try using that when you depend on some native modules. :(

<comment><USER43> I thought `npm ci` is more suited for ci machines, where it's crucial that packages are pinned to specific versions. For local development, I just npm install. Perhaps with no-save option in order to avoid updating package-lock. Works fine.

</comment></comment></comment></comment><comment><USER45> Yarn has over 1500 open bugs. Rather than working on changes, it'd be nice to stop and address these.

<comment><AUTHOR> Most of those have been fixed a long time ago, but we simply don't have the resources to triage them.

This effort we start is in no small part to decrease the number of issues that will be created by empowering the users to unblock themselves* and solidifying Yarn's codebase.

* You wouldn't believe the number of issues that are simply about things working as they should - we can't really blame their authors because it can be quite hard to find the right paragraph in the documentation, but it's extremely taxing on a small team. Similarly, we often have issues created against older releases, or without reproducible test case.

<comment><USER45> I noticed the issue count while using yarn for the first time yesterday. It encountered a fatal error (Disk Quota Exceeded) and then proceeded blithely on. It's only one data point, but doesn't inspire confidence.</comment></comment></comment>


Best Buy Wants To Fund Your Startup - <AUTHOR> http://www.businessinsider.com/best-buy-wants-to-fund-your-startup-2009-5 <comment><USER2> I hate shopping at Bestbuy.

But this can be a really good thing for certain types of startups, such as those who need access to the general population and consumer market. Not just access, but a DIRECT/MASS access. This is a match made in heaven for those.

VCs are there for Startups who want Money. Incubators/YC are there for Mentorship/Guidance. BestBuy will be there for those who need direct market access.</comment>


Show HN: Quench: The Gulp file generator - <AUTHOR> http://quenchjs.com

<comment><USER2> Looks promising to me. I will try it soon. Thank you!

<comment><USER2> suggestion: at a first look the readme.txt seems static. Why don't you remove all the quench stuff (but maybe a credit line at the bottom) and generate some generic info about the technology the project uses?</comment></comment>


Simplify: move code into database functions (2015) - <AUTHOR> https://sivers.org/pg <comment><USER2> Don't do this.

Don't FUCKING do this.

I've spent the last 15 months untangling a mess of an e-commerce system that was built exactly like this. The problem is SQL is not a programming language and the only way to accomplish some things directly in the database is by creating solutions with O(n^2) or worse running-time. Our system has queries with O(n^4) time complexity. Less than two weeks ago, I had to untangle a query that was over 3,100 lines long with 18 sub-queries and was able to refactor it into about 100 lines of SQL and another 100 lines of code. Making matters worse, changes to stored procedures don't show up in git, and can break some regression-testing tools, making it very difficult to track changes and hunt down bugs.

Use the right tool for the job: Don't treat every problem like a nail once you have a hammer. Use SQL for data and your language of choice for logic. Don't create a monstrosity that someone else will have to spend weeks fixing just because you can.

<comment><USER3> Every horror you've just described can happen up in the app layer as well.

        The problem is SQL is not a programming language and the only way to
        accomplish some things directly in the database is by creating solutions
        with O(n^2) or worse running-time. Our system has queries with O(n^4)
        time complexity.

Two observations here.

1\. The approach being espoused is not, "Move everything down into the database layer at all costs, no exceptions." It's more like, "Many things are simpler and faster at the database layer."

2\. These O(n^2) (and n^3, n^4, whatever) horrors are at least as common at the app layer. I have dealt with my fair share at every possible level of the stack.

        I had to untangle a query that was over 3,100 lines long with 18 sub-queries

I just want to say: _ouch._ I am sorry!

<comment><USER4> You say "could happen" he says "must happen". SQL won't be able to lower the complexity needed. But in the app level it is just a matter of being good programmer or under good review process.

</comment></comment></comment><comment><USER5> I sincerely hope this will be downvoted out of sight so we won't be dealing with more dog slow sites. Moving business logic to essentially non-scaleable layer is a terrible idea, benefits are so small compared to drawbacks

<comment><USER6> It's not that as simple as all that. Often the most expensive part of a database transaction is all the round trips back and forth while holding locks with an open transaction in the database. Move that logic into a stored procedure and suddenly your business logic can run in less than the time of a couple round trips to the database. Lock contention drops, number of concurrent transactions drops, and performance could actually increase. You scale the system vertically as long as you can, and then start partitioning and scaling it horizontally. You can go pretty far like that.

There are lots of other reasons this is a questionable idea at best, but performance is not necessarily one of them.

<comment><USER3>
        Move that logic into a stored procedure and suddenly
        your business logic can run in less than the time of
        a couple round trips to the database. Lock contention
        drops, number of concurrent transactions drops, and
        performance could actually increase

Yes! A thousand times yes. This is especially important for write-heavy workloads. Releasing those locks and finishing those transactions ASAP is crucial.

        There are lots of other reasons this is a questionable
        idea at best, but performance is not necessarily one of
        them.

When it comes to scalability.... yeah I think the 90/10 rule applies here. Probably the bulk of one's code can comfortably live up at the app layer. And the 10% of your code that's causing 90% of the bottlenecks is a candidate for solutions such as moving it down into the data layer, when feasible.

</comment></comment></comment><comment><USER7> One danger with overuse of stored procs is unit tests; they're hard to write in sql, and also hard to keep in sync with tests in code. There are also dangers with ninja patching stored procs without corresponding code deploys.

It does make query development much easier to use a database specific IDE for writing the queries versus munging big strings in code.

<comment><USER8> > There are also dangers with ninja patching stored procs without > corresponding code deploys.

This just means that modifying sprocs has to be treated with the same caution as deploments. Unit testing is truly difficult though. It doesn't help that many DBMS products (looking at you, Postgres) don't offer an embedded mode.

</comment></comment><comment><USER9> As someone currently untangling a monster sproc at work--Just no.

<comment><USER10> Plsql, T-SQL, and it's ilk are poorly suited to complex logic.

One of the best features of pg is it's ability to write db logic in your language of choice.

The performance characteristics of these languages meets or exceeds the execution time of plsql in many cases.

</comment></comment><comment><USER11> It does feel like this whole concept is predicated on chasing the new hotness in languages or frameworks.

In practice, if you're thinking of changing at that level, the problem probably lies elsewhere. Unless your app is some special snowflake (note: 99.99% aren't), any of the popular languages/frameworks will do just fine for a very long time.

The only move Sivers arguably needed to make here was away from Perl. To Ruby, PHP or JavaScript, but not all 3.

If those extra moves hadn't happened, this wouldn't even be a thing.

</comment><comment><USER12> If you do this, you will regret it and it will cost you money.

</comment><comment><USER10> There are a lot of advantages to the approach the author is discussing, but some of the drawbacks are (as he mentions) the poor syntax of plsql, difficulty with SCC and versioning, and some others.

I wrote pgproxy[1] in an attempt to overcome some of those issues. So far, it's worked pretty well for me.

[1] [https://github.com/claytongulick/pgproxy](https://github.com/claytongulick/pgproxy)

</comment><comment><USER13> A way to develop along those lines without much of the potential hassle is exposed in Dimitri Fontaine's books.

[https://tapoueh.org/](https://tapoueh.org/)

</comment><comment><USER14> The motivation for this idea was to make it easier to rewrite everything else. > In 1997, I started in Perl. In 1998, I switched to PHP. In 2004, a rewrite in Rails. In 2007, back to PHP. In 2009, minimalist Ruby. In 2012, client-side JavaScript.

<comment><USER15> Rewriting something that works is a terrible idea in the first place.

</comment></comment><comment><USER16> Discussion is already ongoing in this thread: [https://news.ycombinator.com/item?id=21362190](https://news.ycombinator.com/item?id=21362190)

</comment><comment><USER17> After looking into solutions like Hasura and Postgraphile, this doesn't seem like such a bad idea.

</comment><comment><USER18> This is making a simple thing complex in order to make complex things simple.

</comment><comment><USER19> Usually the recommendation and the simpler approach is quite the opposite: You can't version control, deploy and generally handle database function as easily as a piece of code. My experience is that nowadays more and more code is pushed to the ORM or database handling code level because it greatly simplifies everything.

<comment><USER10> ORM's have improved considerably over the years, but I've always been a bit hesitant to use them.

I've seen a lot of developers begin to believe in the abstraction, and forget the underlying access.

This has caused performance problems with increased round trips to the server, non-obvious indexing strategy issues, and code tightly coupled to the ORM rather than the data.

I get especially suspicious with framework-type ORMs that can cause a massive rewrite between major versions. It's costly, time consuming, and doesn't provide any application benefit, it's only new forms of abstraction.

ORMs are seductive, because a lot of these issues aren't obvious when you first start using them. The marketing is usually pretty compelling. Unfortunately, by the time you start to run into issues I've described, it's normally too late to change paths.</comment></comment>


NH Library Votes to Reinstate Tor Relay - <AUTHOR> http://www.vnews.com/news/newsletter/18620952-95/library-joins-privacy-network <comment><USER2> The Valley News also printed my letter in support of Tor: [http://www.vnews.com/opinion/18607311-95/forum-help- lebanon-...](http://www.vnews.com/opinion/18607311-95/forum-help-lebanon-save- energy-lebanon-can-vote-for-freedom-america-and-the-refugees) (2nd letter) Hopefully it helped.

I've only lived in NH for a bit and it is crazy how different the attitudes are here. I've never been any other place where people care as much about individual liberty.

If you support this idea, you can donate to the Library Freedom Project here: [https://libraryfreedomproject.org/donate/](https://libraryfreedomproject.org/donate/)

<comment><USER3> > I've only lived in NH for a bit and it is crazy how different the attitudes > are here. I've never been any other place where people care as much about > individual liberty.

Speaking as a native(who now lives in Boston) who grew up just south of Lebanon I find this attitude interesting. Growing up there wasn't much talk about 'individual liberties'. It was much more along the lines of it ain't my business about what my neighbor does. It just seems to be an interesting shift.

Though I'm proud that Lebanon has decided to go this way. It's important and I hope that other libraries follow their example.

<comment><USER4> I also grew up in the area and am always suprised when I hear people describe th climate in NH as the parent commenter. People do kinda keep to themselves, especially the ones who go back many generations. But the libertarian types seem to me to come from other places, attracted to NH because of the motto and the reputation, which Im not sure it really deserves. Its a pretty typical rural northeast place culturally, very close to VT or upstate NY (places I have also lived).

<comment><USER5> (Claremonter;) I had felt that our libertarian influence is equalized by the constant Massachusetts immigration.

<comment><USER3> Or Connecticut. I grew up in Acworth and I remember one of the roads in Charlestown on my way down to school was called "Connecticut Heights". Always made me chuckle.

</comment></comment></comment></comment></comment><comment><USER6> Lebanon resident here.

I was impressed by the crowd that turned out for the board meeting last night. Great numbers, unanimous support for the board to direct the library to continue running the relay, and lots of people stood up to speak earnestly about the value of doing so. Board members were happy to have so many residents come out in support of them.

The fact that supporting tor indirectly supports some less savory parts of the dark web was discussed at the meeting, but the general feeling was that the benefits far outweigh the drawbacks.

<comment><USER7> I'm sad that I wasn't able to make it to the board meeting. While I don't live in Lebanon, I was still very interested in hearing the discussion. It's nice that out-of-townies were invited to speak and weigh in on this.

</comment></comment><comment><USER8> To be frank, reading that article was heartening. When I saw the original articles posted about the Tor Relay going down at a library, I just wrote it off as business as usual.

I am really glad their community understands the importance of unencumbered speech!

<comment><USER9> ... and unencumbered access to CP and the dark web. Yup I bet they understand everything.

<comment><USER10> This is the debate. How much liberty are you willing to give up to catch a few bad apples?

<comment><USER11> We could end child abuse in this country (indoors anyway) if we just require 24/7 monitoring of every room in every building.

</comment></comment></comment></comment><comment><USER12> > A former teacher, Waterfall likened the idea of taking Tor away to prevent > the criminal activity of a few to a new teacher punishing the entire class > for one student's bad behavior.

It's more like punishing the class because one student MIGHT do something wrong.

<comment><USER13> I'm not sure it is a question of 'might'. If you give any way for people to conduct illegal data trade online which protects them from prosecution, they will use it. But to me it still makes as much sense as banning cars because sometimes people drink and drive.

</comment></comment><comment><USER7> This is awesome news! I'm not surprised that the library's Trustees voted to keep the relay online. As others have said, New Hampshire's residents care quite a bit about individual liberties (Live Free or Die), so any time the government attempts to impose its will on what we can and cannot do, there's always a lot of feather ruffling. Makes for interesting small town politics, but in this case, I say that smarter minds prevailed.

</comment><comment><USER14> I teared up a little bit because this article made me remember believing when I was a child that we lived in a truly free country, and I remember being proud and grateful of that. That sense of freedom has been eroded so gradually I didn't realize how significant it is.

</comment><comment><USER15> Awesome that so many people could come out in support of privacy through the Tor network, thanks for sharing OP

</comment><comment><USER16> so pumped to see VNEWS on HN!!</comment>


Ask HN: Where does Show HN go? - <AUTHOR> I am trying to browse the Show HN, but can not browse beyond 2 pages. <comment><USER2> I don't think there is a dedicated archive feed for Show HNs, but as a workaround you can use the search to get a list of older entries: [https://hn.algolia.com/?query=Show%20HN:&sort=byDate&prefix&...](https://hn.algolia.com/?query=Show%20HN:&sort=byDate&prefix&page=0&dateRange=all&type=story)</comment>


Remote-First Communication for Project Teams - <AUTHOR> http://spin.atomicobject.com/2015/01/30/remote-first-communication/

<comment><USER2> Based on my 10+ years experience of working remotely, I agree 100% with this article. My observation has been that distributed teams work well when the majority of the team is remote. It makes written communication inevitable. However when I was the only remote person in a team of 4 or more people, I felt left out. Conference calls with everybody else on one side and me on the other were quite frustrating. I missed out on the informal watercooler talk and conversations in the team office. I never felt that remote work works well in an asymmetric situation.

On the other hand, I think every team benefits from clear written communications. Having a remote team enforces this best practice where having a co-located team lets communication practices slip and become sloppy.

<comment><USER3> As someone with far more experience with this than me, I'm interested in your perspective on a couple things that I've noticed: It seems to be more difficult to come to consensus in purely written communication, and more awkward for decision-makers to assert themselves. I'm not sure why this is true, or if it is only my anecdotal experience and outside the experience of most, but I've been in many long github/irc/whatever threads where parties seem to only grow increasingly intransigent, and many phone and in-person meetings where the same topic is dispensed with in less than 10 minutes of actual discussion. Is this phenomenon real in your experience? If so, have you found any good techniques for controlling it?

<comment><USER2> > It seems to be more difficult to come to consensus in purely written > communication

I agree that some conflicts are much better handled via synchronous voice conversation. And I think that's acceptable, if not desirable. However, I make sure that after the call we write down some notes what decision we made, and why we decided the way we did. This makes sure that parties not present at the meeting (i.e. other developers, and our future selves) can pick up the context quickly and save us the pain of working through the decision process again.

And then there is always the issue of dysfunctional team communications where the channel doesn't matter. In asynch conversations poor/obstinate communicators don't need everybody in the room to keep adding to a controversial conversation. So you just can't stop them..

And I just learned a new word: 'in·tran·si·gent': unwilling or refusing to change one's views or to agree about something. Thanks.

> more awkward for decision-makers to assert themselves

That has probably more to do with team culture than the communication channel used. I'd think that a capable and respected decision maker can assert themselves easily via written word.

<comment><USER4> > _However, I make sure that after the call we write down some notes what > decision we made, and why we decided the way we did. This makes sure that > parties not present at the meeting (i.e. other developers, and our future > selves) can pick up the context quickly and save us the pain of working > through the decision process again._

In the same way that you should comment your code with the "why" and not just the "what" you also should comment your non-code decisions with the "why" and not just the "what". Otherwise someone in the future will try to overhaul a process without knowing about some of the previous pitfalls that were discovered.

</comment></comment></comment></comment><comment><USER5> The biggest nugget from this piece seems to be this:

> Remote-first communication that clearly documents problems encountered, > ideas proposed, and decisions reached works best in organizations with > strong no-blame cultures.

I like the idea that remote-first encourages a number of best practices, including a no-blame culture.

<comment><USER6> It does not encourage such a culture, this post is just suggesting that no- blame is a requirement to sustain a remote-first policy. You can more easily have a no-blame culture without artificial conditions like remote-first.

<comment><USER5> Actually, you're totally right. Thanks for the correction!

</comment></comment></comment><comment><USER7> I worked on a team in IBM's Linux Technology Center that worked like this. We had people in several sites, and even those in the same site were spread across half a floor, not sitting anywhere near each other. So, in general, conversations occurred via IRC or mailing list, _not_ in person, even between people at the same site. If a problem-solving session occurred in-person (often with a whiteboard), a specific person in that session (identified before the end of the session) would be responsible for writing up the result for the mailing list.

The only thing we'd ever handle primarily in person was going out to lunch as a group, which for obvious reasons only mattered to one site. And we almost never talked about work at those lunches.

</comment><comment><USER8> I like the idea; it makes a lot of sense. In practice though, there are a LOT of times that it's much, much faster to communicate verbally. I feel like trying to really stick to this remote-first style might be more difficult/frustrating than it sounds.

<comment><USER9> Yes, it may make sense to talk on the phone, but I don't find that's a good strategy for first contact. Especially if people don't answer their phone or like to small talk.

</comment></comment><comment><USER10> I work for a company that has two locations and a number of workers (including the CEO, who is quite hands-on) who work remotely the majority of time.

When I joined and introduced Basecamp which managed to de-siloed a whole lot of information, but required breaking old habits. The key change was ensuring the discussions and decisions which were being made offline either happened inside Basecamp, or were at least minuted there.

Recently this has had an interesting side-effect where some rebels are intentionally making decisions "off piste" for the avoidance of prolonged discussions.

</comment><comment><USER11> Fantastic article and in the past seven months, we've been a basecamp user, then former basecamp user, as we switched to Trello. Ironically that was for cost, like switching from 3rd party to (finally) a home grown php tool to replace the Saas $200 fee.

Essentially, what we're seeing from my team's perspective are the culmination of a few trends that started being bigger back in 2003, when I first worked from home full time for about six months, prior to joining Yahoo at giving up the lifestyle for a few years. With nearly ~6.5 years in WFH experience; I've done it nearly half my professional career.

Those who can make it work, do it the way in the article, there's no option, only pain, to that process. It broke up a 12 year business partnership I had, in the end, written goals were broken, therefore, I ejected. Simple, straightforward and asynchronous. There's a movement, tempo to when a team is producing. My CTO and I are incredible partners this way, and we spend less than twenty minutes per session "Talking," because he's even more introvert than me, it seems.

At the end of the day, team's ship something. Marketers should be shipping business models, spreadsheets, powerpoints, Adwords copy, Blog Posts, Social Posts, Images, Videos and more. Engineers ship code, so, they rock and should have it a bit more straightforward.

Designers ship design. If the "Business monkey," isn't playing secretary, documenting things and helping others ship, OR shipping something with their fingerprints all over it, something is broken. For a production oriented individual, remote, WFH work is the most empowering kind.

Freedom. Run at your own pace, if the team gets slow, develop new skills, a new hobby and explore. The digital world is a vast place; for example, I'm building free, open source SaaS, running two blogs, a team, built two visual novels this month, learned Daz3d, Carrara, Gimp for animation & more.

I ship what and how I want, when I want & where. The team does the same, as a group, we have aligned objectives. So the business moves at one pace, and as an individual, I carve my own lane. Run ahead, scout, explore, learn and grow. Then perhaps, those skills in animation & 3d become useful to the business. Or not. Time will tell.

Great article, and thanks for posting your experiences. I love learning.</comment>


Flexport's plan to build a freight empire with its $110M raise - <AUTHOR> https://techcrunch.com/2017/10/06/a-social-network-for-trade/ <comment><USER2> My main issue with the product was pricing. For example, they quoted me to ship a load for ~$1700 USD that only cost me ~$1300 USD to ship with my own FedEx company account. That kind of pricing delta is not sustainable. They might get a few kickstarter customers that don't know any better. But, if they are going to sustain that valuation, they'd better figure out how to get pricing that sounds good to clients that know what is going on. [Edited pricing].

<comment><USER3> What kind of load? My understanding is that they really specialize in loads that would be far too large for FedEx. Think shipping containers.

<comment><USER2> My experience was a large air shipment. Can't remember the exact details but probably on order of 100 cartons at 10KG each.

</comment></comment></comment><comment><USER4> What are the real risks to their business? So they need to own the shipping containers, planes etc?

<comment><USER5> The space is actually really crowded and relationships matter more than they should.

Flex can't charge a premium and die without the volume. Freight is a cost center. The absolutely largest buyers will use in house or demand lowest rates, small guys cant afford high rates.

Also owning equipment is righ risk low reward.

<comment><USER6> _Also owning equipment is high risk low reward._

The industry is already at the stage where the cost of financing is a competitive disadvantage. They're on the right track with vertical integration. But they'd need partnerships with manufacturing and finance to make things really work. Do they have those?

</comment></comment></comment><comment><USER7> the Facebook part makes total sense. If I have 100k worth of stuff in china just sitting there, I'd very much like to click "like" on the cat video the guy in china who could move my shipment up in the queue just posted.

</comment><comment><USER8> If they build a good product/organization, I think they have a nice takeout by Amazon or Walmart in their future.

<comment><USER9> They can do a lot better than that. Shipping is such a backbone of 21st century that an amazon or Walmart acquisition would be kinda underwhelming.

<comment><USER8> Yeah, I can see that as well. In short, well executed I like their payoff matrix across a number of eventualities.

Sort of like an AWS for logistics.

</comment></comment></comment><comment><USER10> > _"...Money's sexy I guess"_

The founder really summed his sole motivation right there. This is a mercenary company that could have been created by a hedge fund.

Unlike Amazon, no one would want to work at Flexport except people focused entirely on money, and those aren't the best people.

This company is another (still rare) example of 1999 style VC investing. It will either flip or implode within a couple years. See: Zenefits

<comment><USER11> > Unlike Amazon, no one would want to work at Flexport except people focused > entirely on money, and those aren't the best people.

I'm a dev at Flexport, and it's pretty funny to hear I chose it for the money (Not my most lucrative job offer by a long shot). Personally, I work there because I find the challenge of mapping the complexity of an industry as consequential as global freight into tractable software to be deeply satisfying. YMMV, of course.</comment></comment>


CONIKS – Key management system capable of end-to-end secure communication - <AUTHOR> https://coniks.cs.princeton.edu/ <comment><USER2> Repository for reference implementation: [https://github.com/citp/coniks-ref- implementation](https://github.com/citp/coniks-ref-implementation)</comment>


Chief Says F.B.I. Has No Doubt That North Korea Attacked Sony - <AUTHOR> http://www.nytimes.com/2015/01/08/business/chief-says-fbi-has-no-doubt-that-north-korea-attacked-sony.html

<comment><USER2> Previous discussion:

[https://news.ycombinator.com/item?id=8852884](https://news.ycombinator.com/item?id=8852884)</comment>


How Google and Microsoft have made e-mail unreliable - <AUTHOR> http://penguindreams.org/blog/how-google-and-microsoft-made-email-unreliable/ <comment><USER2> I havn't seen any of this behavior. I manage many customers with self-hosting (not ISP) mail servers and have only seen problems, when there was indeed a spam sending virus (or at least they should send spam) in the net. I'd some problems with oversceptical i-dont-care-what-the-rfc-says mail provider like web.de and co here in germany. Which think a MX record has to point to an A record and CNAMEs are spam. Well, germany... I guess

The problem with Google and many other mail software(!) is, that they don't /really/ care about DKIM (and other new shiny stuff nobody gives a f* about) and have spam filters they trust 100%: like subnet rating - that should be changed indeed!

</comment><comment><USER3> I teach at a University - this semester, using an outlook.com account (I have my university e-mail forwarded there and some students send e-mails there directly), I've probably gotten 2-3 student e-mails in my spam folder / week for almost the entire semester. (These are mostly coming from .edu addresses associated to their university accounts)

</comment><comment><USER4> Mentioning Tsu is just a waste of space. It is a pyramid scheme, scammy, and there are reports of people not receiving payments. Let's not pretend it was EVER a legit social media site. FB was right to block them. I agree with the vast majority of this post but mentioning Tsu was just stupid.

</comment><comment><USER5> I've seen this post, or very similar before. Not sure what they are doing wrong. I've got a small vanity domain and have no problem emailing google, yahoo, and microsoft users.

Maybe larger servers use the age of your domain registration as a factor. I've had mine for quite a few years now.

</comment><comment><USER6> Gmail has it's problems (it is unusable on Chrome for me at the moment, I need to use Edge), but probably only 1% of spam emails are false positives.

I am no email server expert but it sounds like he needs to Google SPF, Reverse DNS and Domain Keys.</comment>


Design revamp for '$100 laptop' - <AUTHOR> http://news.bbc.co.uk/1/hi/technology/7411904.stm

<comment><USER2> See <http://news.ycombinator.com/item?id=195221> for a more active discussion on this topic.

</comment><comment><USER3> Well, it looks like another one of my future startup ideas has been implemented...</comment>


Show HN: Komodo IDE 10.2 released, new unit testing, Slack sharing, Yarn support - <AUTHOR> http://www.activestate.com/blog/2017/02/komodo-10-2-released <comment><AUTHOR> I'm the product lead for Komodo IDE and the author of the new unit testing feature, happy to answer any questions.</comment>


Review my startup - <AUTHOR> http://talentopoly.com <comment><USER2> While I do think the design is very well done, I'm not sure I see the benefit of something like this, vs. Delicious and other social bookmarking things.

Keeping it a gated community is going to make taking off VERY difficult, unless you have some over-sharing, highly prolific people in out of the gate (no pun intended).

While there may be groups that do want to keep their sharing semi-private, are there enough to build a meaningful audience (read: potential advertising revenue stream) for the service, or will you just charge for it (saw no mention of this, but may have missed it).

<comment><AUTHOR> I do have a few members who share ~5 links per day on the site including myself. In a given day the site receives ~20 new links. Most of this is just now starting to gain momentum as Feb 1st is when the site launched with a new design and a few new features.

The site has close to 100 return visitors daily and building.

Revenue is not a concern at the moment.

<comment><USER3> >The site has close to 100 return visitors daily and building.

How many of those users actually post content?

<comment><AUTHOR> Around 5% post new content daily. This number is steadily going up. But the site has only started to gain traction this month. There's a lot of room for improvement, but I feel like it's off to a good start. ;)

</comment></comment></comment></comment><comment><USER4> I noticed that loading the main page results in requesting 19 css files and 8 js files. I suggest combining those to provide a better loading experience.

<comment><AUTHOR> Nice job noticing that. This is a high priority on the roadmap. I have some cool compressions and reductions planned for the site's assets.

<comment><USER5> Hello again :) I kinda like the site but... I'm not really sure what it's for? Is this for sharing my CV, getting a new job, sharing links... where does it fit in between Monster.com and HN/Reddit?

On the front-end optimisation end, that's my "thing" so hit me up if you want to talk about that!

<comment><AUTHOR> I'd be interested in discussing this more. The quick answer is that it's 1st) a way to share what you're reading 2nd) a way to find others to work with.

The CV aspect is fairly unique to this sort of site, which is why I think it gets so much attention in these discussions. But as you can see it is a smaller aspect to the site compared to posts, questions, and even profiles.

The CV feature is rooted in this desire I had to host my resume, shown in its original formatting, on a clean, uncluttered page with stats showing me how many views it gets, by whom, and from where. I can share it with a simple link to anyone interested in seeing it and actually know with some certainty if they looked at it.

</comment></comment></comment></comment><comment><USER6> This looks like a crowdsourced curation of content relevant to a particular vertical (have I thrown in enough buzzwords?).

That actually seems like a reasonable idea. The problem you may have is that a site like Stackoverflow could (and IMHO should) copy it and integrate it into what they have. It actually seems like a good extension for the SO model.

<comment><USER7> That first sentence is amazing. Where did you get your MBA? :)

</comment></comment><comment><AUTHOR> I launched the site in late Oct of last year and it is growing by leaps and bounds. It's built with Ruby on Rails. My hope is to build a community around sharing links strictly related to development and design. No general tech news links or other distractions. I'd love to get some feedback on it from the HN community.

<comment><USER8> I recently(ish) starting to work on web design after years in desktop product management. A community like this could be terribly helpful.

<comment><AUTHOR> Excellent, be sure to request an invite and I'll make sure you get one.

<comment><USER8> Done!

</comment></comment></comment></comment><comment><AUTHOR> By the way, if you want to read the public posts you can find them at <http://talentopoly.com/posts>

</comment><comment><USER9> I like the design. The functionality reminds me of hackerbuddy.com.

What are your experience with ruby on rails hosted with heroku?

<comment><AUTHOR> I'll have to check out hackerbuddy.com, hadn't heard of that site before. I've been a big fan of Heroku so far. There's a reason why others are mimicking their hosting strategy. That said, it stinks when there's downtime or the grid slows down for whatever reason. So you are more prone to those sort of outages. But to get started, it's easy and free. I'd highly recommend it.

</comment></comment><comment><AUTHOR> Thank you to everyone who has checked out the site. I've gotten to have some interesting discussions in this comment thread. The HackerNews community has yet again lived up to my expectations. I'll try to keep the community up to date on the progress of this startup periodically.

</comment><comment><USER10> Seems like it's forrst.com + resumes.

<comment><AUTHOR> Forrst is great if you want to see what other designers and developers are working on. Talentopoly is great if you want to see what they're reading.

I think there's room for both as I am a Forrst member and still found myself wanting to build something like Talentopoly.

</comment></comment><comment><AUTHOR> For those interested in keeping up with the posts on Talentopoly you can find the RSS feed at <http://talentopoly.com/posts/all.rss>

<comment><USER11> That's quite a torrent. How about best-of-hour and best-of-day feeds? Each would get just one new post every interval, which makes for predictable volume in my feedreader.

<comment><AUTHOR> Good idea. I'll see what I can cook up.

</comment></comment></comment><comment><AUTHOR> We just had our 700th member sign up! <http://talentopoly.com/users/861>

</comment><comment><AUTHOR> Almost forgot to mention the most important aspect, the site is invite-only. It's read-only to the public.

<comment><USER2> This becomes confusing - it seems at first like a social bookmarking site, but then there's resumes. It's a gated community, but read only to the public.

I'm not sure any of this is BAD, and I may just be stupid, but the 'why the hell should I care' bit seems to be confusing? Is it a job board, or a news/content sharing site? Both?

<comment><USER12> Pinterest, Dribbblr, and Quora in the early days were all invite-only and read-only to the public. I don't think it's confusing at all. However, you would benefit from exposing some awesome content on the home page to entice people to request an invite.

<comment><AUTHOR> Great comment. Currently the site exposes the most popular post at the moment under the section, "What's on Talentopoly" on the landing page.

The next step I planned to take was to expose the Posts tab on the landing page.

Down the road I expect to make the landing page the popular posts page and the Request Invite links would take you to what is now the landing page (the request an invite page).

That's the 3-step process for exposing the posts more and more as I currently have it planned.

</comment></comment></comment></comment><comment><USER13> Seems like a really great way to share things your working on and get feed back.

</comment><comment><USER14> Looks great. Who did the web design, if I may ask?

<comment><AUTHOR> Thanks! Brian Hoff did the design.</comment></comment>


Ask HN: Do you have modern personal heroes in your life? - <AUTHOR> <comment><USER2> Georg Schaeffler - He's a billionaire via inheritance that dislikes the media, and earned his own way before the inheritance. Best part... he tried for years to hide it all.

[https://www.dmagazine.com/publications/d-magazine/2007/march...](https://www.dmagazine.com/publications/d-magazine/2007/march/the- billionaire-next-door/)</comment>


How Twitter improves communication across distributed teams internally - <AUTHOR> https://blog.twitter.com/2015/improving-communication-across-distributed-teams

<comment><USER2> Looks like they spent a fortune on video conferencing equipment. From my experience companies simply aren't willing to allocate budget for that even though the author stresses the importance of it. Intetesting they are using Google Hangouts plus Chrome for Meetings.</comment>