Dash provides some anonymity features, but are generally opt-in (i.e there are certain transaction types which provide more anonymity, but they are not required). Even with "anonymous" transactions on Dash, I believe only the sender/receiver can be somewhat masked, but the amounts are not masked entirely.
Monero provides pretty anonymous transactions which have gotten better with it's recent introduction of Ring Confidential Transactions, which makes it so that new transactions have (by default, and to be enforced later this year for all Transactions) hidden amounts, sender, and receiver.
ZCash is arguably the most anynomous, as it has hidden amounts, sender, and receiver from the ground up, but comes with a bit more risk since it is essentially based on entirely new, and as yet unproven, crypto (zkSnarks). It is an exciting promise for the future, but it also required a "trusted" setup of a random seed which, if compromised by any party, could enable infinite, undetectable inflation of the ZCash currency.
In short, there is no perfect anonymity, everything is a scale and a spectrum of security, and what type of guarantees you can get around the anonymity properties you want.
For an explanation of why Bitcoin is not anonymous, take a look at the recent Keybase post on adopting ZCash:
Not to say zcash is perfect and alternatives are imperfect. There are pros and cons to each.
Since then, Snapchat took measures to prevent the use of its API by third-party clients.
Besides issues like that, Snapchat has no incentive to provide an API. They use their official client to show ads and therefore make money.
Here's the link: https://www.youtube.com/channel/UCPkKhlR0sXtN5hlB228xuTg
User1 follows User3
User3 follows User1
User3 follows User5
I usually always get my sister to beta test. She knows enough about computers, but when it comes using computer programs, she can get lost sometimes. So if she questions something, I change it until she has no more questions.
I'm pretty sure the one who designed HN just had a preference for a minimalistic approach and everyone thought it was great, and it has stuck since then. No point in ever changing something that just works. And you can't really do much more beyond "minimalist" -- maybe "brutalist" but it isn't something that is favored by everyone.
You must be kidding.
However, when support for it does go up, we're definitely migrating to it. It seems to have a really nice syntax.
- Braindump: New ideas go here as I think of them.
- Graveyard: Archive of bad ideas.
- Research: Potentially good ideas that need fleshing out.
- Ready: Ideas where I've thought through and documented market fit, timeline, tech stack, marketing, or whatever the project needs. And crucially: first thing to do when I start the project, which makes it easier to get going.
When I have free time I look down my Ready list and pick something interesting, and I've done the prep already to get stuck in straight away.
I also add idea in a spread sheet, and then I rate them with the following criteria:
- Time needed
- Potential income
- Career impact
This makes it easy to see which one you are supposed to be working on. My current side project is the highest rated idea on the list.
For me, I chose to scratch my own itch. I work on a food side project called https://bestfoodnearme.com but my time is extremely limited to a few hours a week. I keep a sketch pad to write down my ideas for the site. If I have ideas related to other projects, I write them down in a more general pad apart from the sketchpad that is focused only on the food site.
I put constraints on which features and ideas I need to work on. If there is a bug in the basic functionality of a project, I tend to work on that first. For new features, I will only consider them if I get feedback from at least 3 different unrelated people that mention the same feature to me.
I always plan out the night before which tasks I will work on the next day. That way I can hit the ground running.
I only start something when I know some people that could be interested in (mostly to have feedbacks).
I do many projects at the same time (3 now). Sometimes the projects can converge.
If the idea lasts this test we specify next steps and just start working on a prototype right away. Honestly: I am juggling way to many projects - but I just love it and I cannot help it. By getting someone on board right off the bat I have managed to force myself into getting things done quicker. This process at least secures that I get stuff done and I have successes from time to time :-)
# Initial thought
Why is it worth the effort?
Why is it not worth the effort?
What already exists?
I'm doing projects for learning, so I only care about adding new useless features that are technically interesting to me, without a time limit.
I put most of the things in my homepage with a tree of check-boxes (tasks) divided in 3 sections:
- To-plan : idea dumping, less than 5 words or just an URL for example
- To-do : tasks to do
- Urgent : tasks with a close deadline, should contain not many tasks, or be empty if possible.
When I start a project (moving a task from "to plan" to "to do"), I add a page with multiple mostly static info on it, like a small summary, final goals, commands I need to be up as fast as I can, important URLs.
When I add tasks to a project, I try to make them as small as possible (maximum a few hours for a task), most of the tasks are broken into multiple sub-tasks, that sometimes lead to a new project. Like with git, commits (tasks) should be atomic and when done it must still compiles (no "work in progress" state when I'm done with a task). It's also easy then to find common sub-tasks or sub-projects.
The first tasks on a project are almost always research, compare the solutions to pick the best, prepare and document the working environment, and are often longer than the rest.
New tasks/projects go on top on my tree, so when I have to pick one, I read my list from bottom to up.I sometimes rearrange sub-trees to prioritize them.
When I want to do things, I pick tasks I will work on with these criteria :
- What I'm motivated to do right now (most important actually)
- How useful it will be (for other projects, to ease my life, ...)
- How fast it will be, regarding the free time I might have in the near future.
That way, my (too many) projects all go forward at the same time, I optimize the time I spend on them (with "how to get up to work" instructions), and I always have something to do that I like.Some of my projects get done from time to time. But most do not and it's OK, because I always come up with new ideas so there is always things to add, and the project is never really over.
I don't personally need it, but one way to be stimulated with this flow is to keep your done tasks checked, in an archive page to not pollute your main page for example, and with dates if you are organized, so you can look back at what you achieved from time to time.
PS: I think it's close to GTD, but I didn't take time to read about it to be sure.
Though I think the better use of twitter is to follow people like @naval and similar accounts. More of general life/interesting thoughts.
-MadewithARkit (brand new, lots of cool stuff)
Honorable Mentions, the Parody Tech Accounts:
-Not Jonny Ive
-Bored Elon Musk
They're cheap second hand, they have a cheap plastic body so you won't feel back chopping it up to fit hardware onto it... They don't have electric steering, so you'd need a servo to operate that. However they're pretty good otherwise.
Edit: An article on the subject. Brief but you get the idea https://devpost.com/software/self-driving-powerwheels
haven't put it together yet, but its got everything you want except video camera, no reason it can't be added -- its just an arduino..
Look at hobby king for cheap bits...
There's also several published self driving RC car projects including code but right now my google is failing me, theres a couple hobby ones using rpi and such and one from a university I wish I could find.
An oxymoron if I ever saw one.
I don't think there's any way not to get into the hardware part if you want to do something like this. If you are really opposed to hardware then might I suggest looking at some road traffic simulators and trying to simulate a self driving car? Might be a good place to start.
For something large, I would say look at the Traxxas X-Maxx.
Apologies if this seems like self-promoting my own slides -- and I should say I am not at all an expert here -- but I created them mainly because I had trouble finding a "primer", so maybe they can help others in a similar position.
The rest of the cryptocurrencies are only hoping to gain Bitcoin's popularity (which Ethereum is getting close to) that it maintained for nearly a decade.
Back in the day the following links helped me understand bitcoin:
Once you properly understand bitcoin you are ready to understand other cryptocurrencies pretty easily. If some design choices don't make sense (secp256k1), then remember that Bitcoin's creation was close to when someone was caught doing something. This is the answer to why many cryptocurrencies choose non-standard algorithms (aka. not NIST)
Furthermore, I suggest the Princeton cryptocurrency intro course on coursera . If you have CS background, you can skip the explanations of hashing etc and concentrate on the mechanics and incentives in cryptocurrencies, which are illustrated quite nicely.
Bitcoin-centric, but covers a lot of ground.
Since you will no longer be a layman, you can then follow that up with his post "The Intelligent Cryptocurrency Investor" : http://www.nadertheory.com/#!/main/articles/post-09-the-inte...
Edit: include article titles
This episode in particular:
Disclosure: I wrote it.
I myself have also made the PHP version of the code implemented there. You could see it here: https://github.com/azophy/naivechain-php
Hope it helps
If you have an understanding of basic cryptography primitives, then I think it's an excellent introduction, especially if you learn well via audio.
Technical perspective, people tend to conflate crypto currency with blockchain and vice-versa. Both are not the same. Crypto currencies are an implementation of the blockchain concept with their own twist on how to leverage blockchain.
A good primer on blockchain is - https://anders.com/blockchain/
Then there is the bitcoin paper which not only introduces blockchain but also explains bitcoin:http://fermatslibrary.com/s/bitcoin
The white papers of various currencies also provide the technical perspective and details on their implementation.
Use case perspective, you will have to rely on white papers by the specific coins. They will delve into how they look at blockchain to solve their problems. Beware these papers tend to be verbose and full of marketing fluff. So unless, as Warren Buffett puts it, within your area of competence there is nothing to be gained.
One thing I have realized over time is that many people writing stuff on cryptocurrency tend to be very verbose. Case in point:https://www.igvita.com/2014/05/05/minimum-viable-block-chain...
This in my opinion, and I am known to be very wrong most of the time, is because it takes the technical route to explain things than standard expressions.
Basic stuff like - what is a block is elongated with many technical terms. The simplest answer is "block is a public ledger and contains all transactions". Ledger is a legit word and you can find tons of articles explaining what is a ledger. But then you have tons of articles which skip this simple explanation in favor of a elongated explanation using technical terms and putting their own versions of what constitutes a transaction.
It goes through the details of creating a tiny Bitcoin client that can send transactions so that they will get included in the blockchain.
In my opinion the best technical resource on Bitcoin.
His book on Ethereum is still work-in-progress.
A lot of the theory from classic books is still valid, so even a copy of Computer Graphics: Principles and Practice will look fine on your desk. "Real Time Rendering" by Moller/Haines and "Physically Based Rendering" by Pharr are excellent. "Game Engine Architecture" by Gregory and "Mathematics for 3D Game Programming and Computer Graphics" by Lengyel will probably prove very useful and relevant to you as well.
Online resources, the free https://learnopengl.com/ and the $10 http://graphicscodex.com/ are both fantastic. Make sure to read https://fgiesen.wordpress.com/2011/07/09/a-trip-through-the-..., and also study the techniques used for the craziest entries in https://www.shadertoy.com/
And then, lots and lots of papers and presentations from the past 5 or 10 years of Game Developers Cconference and Siggraph.
Vulkan is pretty boring to be honest. I'm very doubtful that you want to bother with it if you're just starting. Using these APIs is like filling out tax forms, but Vulkan is a lot more effort than OpenGL (but, OpenGL is weird...) Learning shaders in OpenGL will be pretty transferable knowledge. Vulkan uses a lower-level assembly-like language, SPIR-V that doesn't pretend to be C (like GLSL) but there are GLSL to SPIR-V compilers. I can't comment on DX (I haven't used it.)
Here's a tutorial on drawing you first triangle: https://software.intel.com/en-us/articles/api-without-secret... . Note that there is a lottttt of code to do this (this is part 3...) I really think you could learn more about modern graphics with glBegin(GL_TRIANGLES) and writing GLSL shaders than boring yourself with Vulkan.
If you do want to play with Vulkan there is this book (piggy-backing off the rep from the old "OpenGL Bible") https://www.amazon.com/Vulkan-Programming-Guide-Official-Lea... . I can't give it an honest review because I got bored; I plan to pick it up again later...
- The siggraph courses on shading . The 2017 course will be on 30th of July . Current techniques from AAA engines.
- Papers from JCGT .
- Plus the paper collection from Ke-Sen Huang linking all graphics related conferences 
have fun reading
The playlist for WebGL is https://www.youtube.com/playlist?list=PLPqKsyEGhUnaOdIFLKvdk...
I'm also covering 3D Math fundamentals now.
My channel https://www.youtube.com/user/iamdavidwparker
The basics node has the best resources for learning the subject.
If there was a genuine interest in helping the transition to the newer API's, the different parties writing and implementing today's API's would publicly make available the code for emulation layers to the older API's.
You need to join the org first, https://github.com/EpicGames/Signup
If you're interested in computer graphics in general, and googling "modern computer graphics", then the Vulkan/DX12 APIs aren't super important, the fundamentals of CG have not changed at all. The paradigm shift with those APIs is centered on performance, not on new concepts. You can learn vast amounts of computer graphics by writing a ray tracer or animation program or using off the shelf renderers, and never touch Vulkan or DX12.
There are definitely lots of great suggestions here, but it's a wide variety, because it all depends on what you envision or hope to do. It doesn't have to be fully formed or thought out, but if you had some inking like 'hey I saw this awesome procedural animation on Vimeo and I want to learn how to do that' or 'I'd love to work for Valve someday... what steps do I have to start taking?' or 'I was thinking I should add some 3d to my website' or 'I want to be a film animator', if we had a little more insight on what you're hoping, we can definitely get answers that will be more focused and helpful.
For non-real-time there is: http://www.pbrt.org/
For real-time there is this: http://www.realtimerendering.com/
Neither book gets into the details of the specific API, they are theoretical.
Real-time techniques change nearly complete about every 10 years because GPUs get faster and render more techniques possible and obsolete the older less good looking techniques.
1) To make games (commercial games) or other realtime graphics application?
2) To make 3D rendering software or other semi-non-realtime software?
3) To have fun / learn?
If you just want to learn/have fun, my personal recommendation is to write your own software, from the ground up. Ignore DirectX and OpenGL (unless you need them for a context to get pixels on the screen).Use a fast, native language like C/C++.
Teaching yourself and exploring is 100x more fun than reading a book, IMO (at the same time, you may learn faster using a book).
Try working with a naive projection algorithm to get 3d points on the screen. Like y' = y +/- z (Zelda-esque bird's eye view). When you are comfortable with matrices and vectors, learn "real" projection algorithms.
Do any of these new Vulkan (or Metal or DX12) techniques actually exist yet?
Edit: Maybe covered WebGL too.
Then stop "developing" and switch on "Ops mode".
- builds (build & packaging scripts)
- deployments - try all 3 major approaches:
- push deployment: running a command on a central server that orchestrates everything (Ansible, Salt, chef-solo, ...) - pull deployment: agents running on your target server, that pull the latest changes (Chef, Puppet, ...) - immutable infrastructure: VMs or containers that are never modified, only recreated (CloudFormation, Docker, ...) include database updates in your deployment orchestration and possibly include even environment pre-warming/pre-caching
- high availability/load balancing (Nginx, HAProxy, Apache, Elastic Load Balancer)
- detailed technical monitoring and graphing (Nagios, Zabbix, Cloudwatch)
- availability monitoring (Pingdom)
- a status page (can't give you a decent example; you can build your own, but host it somewhere else than your main "app")
- log collection and shipping (Splunk, Graylog)
Basically, for almost everything I listed google options and pick an "Ops stack". Then implement that as best you can.
Oh, and by the way, while working on the "Ops stack", only "develop" things in support of this Ops work in your "app".
My beliefshaped by many at the forefront of the DevOps movementis that it is a cultural focus rather than a technical one. In many ways, it's an extension of agile philosophies, with a focus on fast feedback, transparency, heightened interactions between teams, etc. There is also a heavy focus on automation (CICD), but the automation is there to serve the cultural goals. Just because you do CICD doesn't mean you're necessarily doing DevOps, and you can adopt a lot of DevOps principles without doing full CICD.
* The Phoenix Project introduces a lot of concepts (such as lean principles) that are foundational to the movement
* Effective DevOps (Oreilly)
* The DevOps Handbook
* Arrested DevOps
* DevOps Cafe
* IT Revolution
* DevOpsDays conferences
* Local meetups
* Velocity conferences
* DevOps Enterprise Summit
Having a good grasp of both development and operations skills is helpful. But it's far from complete. If you solely focus on the technical aspects without examining the cultural, you're missing the foundation of the movement.
The DevOps Handbook is a sister book to The Phoenix Project which is more technically oriented around the practicalities of closer integration between Dev and Ops.
Ok, so that said, I would say that for an open source core like Jenkins, the source code is hands down the only documentation you can trust. And that's very, very frustrating at first. Trusting what's in a wiki is the easiest way to burn a day, believing something that was once (possibly) true to still be true. Most interfaces are not documented at all, beyond system generated documentation. A certain class of developers are fine with that, but many of us need a little push up the hill in order to script our way around these ecosystems effectively.
After accepting that the source code is the single source of truth, the job got a lot easier (and made me come across as far more of an expert). But it's a difficult sell to get other people interested in sharing this work.
1. Find a bare VM provider, e.g. Linode or Digital Ocean or EC2.
2. Figure out a way to get your code up there, even if it's ghetto. e.g. git pull from github. Get the app server running.
3. Figure out how to expose your app to the internet. Buy a domain name, get it to point to your IP addr. Soon enough you will realize that DNS load balancing is terrible...
4. Then you should install Nginx or HA proxy and put your app behind it. Run your app on localhost, only nginx should be exposed.
5. Once everything is up, iptables is your next concern, expose only ports you want and disable everything else.
6. Repeat 1-5 on a second instance.
7. Soon enough you will find that repeating the same thing sucks, so you will write Python script using Fabric library. But then you realized someone else have done this already, after a quick googling, you will find Ansible or Salt. Use those instead.
8. Rinse and repeat for other networked things. e.g. databases, mail relays, cache servers, etc.
9. Evolve your approaches, rewrite ghetto stuff, make your artifact as immutable as possible with very few network dependencies...
That's pretty much the entire devops evolution up until 3 years ago. Once you got good in these...
1. Start reading about Linux container and why they are useful.
2. Install docker and try to get your toy project in a dockerfile.
3. Repeat the learning exercise again on deploying Docker containers.
Hope that helps :)
Clicking on nodes with a map will go to other mind maps with resources.
One word of caution. The future really will be having a docker file and finding a place to run code (docker swarm, ecs, etc). When you commit code it will be ran through a ci system (unit tested, staged) then updated.
The salts, puppets, chefs, Vaults, running your own Kubernetes (wtf), VMs, Nagios, sendmails, vpcs and all this other drama will be latin in a few years.
The future will be running the code on your macbook (with container of choice), then commiting. The end.
I found that very good for understanding the principles and reasons. Implementing it was a very frustrating experience for me, which is why I wrote a (much shorter) book on how to do it practically, with worked examples: https://leanpub.com/deploy
You can learn basics by automating its deployment.
Let's say you will go with public cloud: Amazon or Google.
Create a small basic infrastructure with some automation tool such as terraform.
For example a VPC with private subnets and two small instances in different availability zones. Another instance for NAT and a load balancer.
Then use Ansible / Puppet / Chef to automate deployment of your application, make sure you can deploy without any outage to the service (set up some health check to verify your app is always up).
Perhaps deploy the app in a container. Automate security settings to lock down ports. Automate SSL certificate renewal with let's encrypt.
You can even take it a step further and automate deployment of a PaaS like Kubernetes or CloudFoundry and deploy your blog / website there.
Next task would be setting up CI pipeline and continuous deployments. Integrate it with PaaS.
Where do you store all secrets and credentials? Look at solutions such as Vault from hachicorp or Ansible Vault.
There's a lot to learn by just automating everything about a simple hobby project or blog.
Of course after you're done with this scale down all this crazy infrastructure so you don't pay $200 for a blog.
https://news.ycombinator.com/item?id=14153545 (What Is Site Reliability Engineering?)
We go from zero to fully scalable/loadbalanced etc. infrastructure on AWS. :D
For starters, we have an entire web portal with thousands of free community-written articles about DevOps-related topics:https://dzone.com/devops
We also have several Refcardz (cheatsheets) on a variety of DevOps related topics:
Deployment Automation Patterns https://dzone.com/refcardz/deployment-automation-patterns
Continuous Integration Servershttps://dzone.com/refcardz/continuous-integration-servers
Continuous Delivery Patternshttps://dzone.com/refcardz/continuous-delivery-patterns
And for an introductory overview, we provide topical research and best practices Guides. Here is our latest 2017 DevOps Guide:https://dzone.com/guides/devops-continuous-delivery-and-auto...
i've been reading through this book and it does a decent job of covering the principles for CICD, builds, tests releases: https://www.amazon.com/Continuous-Delivery-Deployment-Automa...
you'll run across various "thought leaders" in devops and its important to remember that a) each employer treats devops and cicd differently and you'll want to learn their practices as you bring about your own ideas to the culture and b) form your own opinions, just b/c thought leaders and books are out there its important to learn what you like to do and improve how you like to do it.
The last two are fairly young, but have good content so far. I wouldn't call it a well-curated list, but there are tons and tons of great posts are linked (in loosely chronological order, as weekly mail blasts tend to be).
Awesome Devops. A curated list of resources for DevOps
People learn differently - but I'd recommend starting there. Get the generous Google Compute intro special and write some apps. There is a bunch of free resources on the web - I can't point to anything specific. Linux academy, Safari books online are huge but not cheap.
When running the Dockercoins example, how can you scale it up to mine as many coins as possible? How would you set up alerts for if one of the services went down? How would you diagnose the problem? What other tools might you use?
Play around and see what tools you like and don't like. Have fun!
DevOps isn't really a thing, but an amalgam of things. Some people think it's about culture or something, which I think is too obvious to be a thing. In the beginning when many people were using the word lightly, most people really just used it to mean automated systems administration, which is more likely called "Operations" now. That's fine. Some people use it to mean groups of people who make ops tools to allow developers to self-deploy their own stuff. That's also fine.
Most likely what you are looking for is to learn how to do IT Operations stuff they way people are currently doing it.
Reading a lot of articles is fine, trying lots of tools is fine. Talking to people at your company that DO ops is huge. Make friends with the guys who run the build systems, do security, or anything like that for starters and they can show you lots. Plus I strangely find that ops guys are much better to go to lunch with than developers. Don't know why :)
You should read up on AWS lots, as it will likely be across your career path at some time. Try a configuration management tool (or two). Learn about monitoring systems and logfile collection/analysis systems. Do a little bit of reading on computer security. Vagrant is probably useful, but optional, though you should at least get going on a virtualized Linux box. Reading up on Immutable Systems is worthwhile. Pick up either CloudFormation or Terraform, or both if on AWS. I don't know Google as well, but it has a lot of similar things.
DevOps Days conferences can be good sometimes but often they are too cultural to get down into technical bits. But they are cheap and usually close by, so they are things.
If you have a local meetup group that can be absolutely great.
The really nice thing about AWS now is there are tons of parts and it is pretty cheap to try things out, where before you probably couldn't get your IT guy to let you play with a load balancer or get you your own database instance. Now you can, so that makes it a lot easier to learn than it was before.
IMHO I don't like books because they are often written by people who don't DO things (DevOps has an unfortunate "thought leader" problem, which impacts conferences and tries to get everyone to believe the same things), and podcasts/videos are too slow for me, and my brain is a lot more random access.
Don't get caught up in assuming you must do any one particular thing. For instance, Continuous Deployment is a spectrum, it's not appropriate for everyone.
And at most people's scale, you have no need for something like Docker or Kubernetes when basic AWS instances require a lot less to keep going in your head.
If you're looking for a community of people to interact with I've found the following Slack teams to be very active with lots of helpful people:
You can check it out here: http://links.ozkatz.com/
Before bitcoin, an online business would be taking a huge risk if it accepted a credit card payment from someone in Latvia. The fraud rate on such payments is probably 50%. With bitcoin, it's safe and fast. I own such a business (a VPS hosting company) and Bitcoin really has been a great solution for us.
Before bitcoin, a legal pot shop would have to deal with cash because no bank would give it an account. Having all this cash around creates a danger for the employees, not to mention the armored car drivers. Bitcoin is a tool that can be used to solve the problem.
Since you asked about rebuilding web apps, I'll link you to patio11's comment, which leads with "Blockchain is the world's worst database"
Thats patently false. Government debt is sold in the form of bonds. They make up the bed rock of the whole economy. Precisely because they can "print money" they don't default on debt. Government bonds are considered "zero risk"
Yes, a central bank can default on foreign debt, or if they can't print their own money (see greek banking problem.)
however this underscored the fundemental misunderstanding of how money works.
>"By offering short term credit to each other market participants will be able to engage in economic exchange without having to pay the cost of money.
>Because market participants will effectively be creating new money with every transaction they will be expanding the money supply and increasing economic growth with every transaction."
Thats litrally how the entire banking system works now. Thats how credit cards work too. Thats how B2B credit works. What is not tackled here is risk. Sure free credit is great, but how do you know if someone can settle the debt? In this (unrealistic) world, the credit ratings agency becomes the dominant force.
Speaking of which, there is no reason why a small buisness can't offer its own line of credit, without using a bank. However the reason why credit cost money is because there is risk. Interest is a function of risk and supply. Sure a coffee shop _could_ settle bills at the end of the week, but the cost of administering that system is non trivial. The risk of loss is also non trivial.
Bitcoin or Etherium does nothing to stop that.
In short, this article is flawed.
Previously, you had to carry the cash yourself, or use a service to transfer the wealth for you (through falsified business transfers, casinos, diplomats, flight attendants, etc.) Now you don't need all that, you can practically do it yourself. There are less people involved and it's harder to trace.
Hrr, I see the Wikipedia page says that Bitcoin doesn't provide "human-readable". But I think it does. You can register names on the blockchain and assign them to bitcoin addresses using OP_RETURN comments, with every party agreeing on who knows which human-readable name, despite having no centralization.
So it is useful for no fraud payments (guaranteed payment) and no trickery transaction/accounting, which is literally all blockchains are when you get down to it. The downside is that the transactions are all public knowledge to anyone contributing transactions. But it could immediately be used to track government spending (yeah right) or non-profit spending which should both be more or less open books.
So "impossible" is a charged word, as is "easy". I would say that it was previously far more costly and difficult to implement the following:
- programmable, highly-reliable, do-it-yourself financial instruments
- services that cannot feasibly be shut down
- verifiably revocable authentication
- data that cannot be modified or deleted
- functionality that cannot be modified or deleted
- complex business interactions involving numerous parties that can be verifiably traced, from start to finish
Disclaimer, because everyone loves to bring up The DAO incident: the above capabilities hold true unless the community decides otherwise after a ridiculously onerous debate. Even then, the unaltered data/code can still live on.
then there is the possibility of true microtransactions. What are the fundamental parameters of internet commerce in our day and age. I would argue that there is roughly three kinds of dominant transaction. One of purchases of goods/services (Amazon etc), software as a service (Spotify), and then there is the vast space of businesses that basically live of the advertising they sell through brokers such as facebook and google. There is really no alternative for this lower limit of transactions. With bitcoin you can imagine a world where people offer content online (say music) and offer consumers the choice of a microtransaction/listen or to consume the same content with ads, without having to give up control over their content to third parties such as spotify. The possibilities are really quite endless.
What I do know: anonymous money transactions. Of course, you'll still have the anonymity loss when converting to/from dollars. While the parties are anonymous, all transactions are visible. In many cases that means that people can end up associating your bitcoin address with your identity (assuming they manage to puzzle out the patterns of your transactions and cross-check that with known addresses). Mechanisms like CoinJoin allow you to mix your transactions with those of others, in order to obscure them, but then the CoinJoin provider still sees your transactions.
ICO is Ethereum's killer app - and that's ok for now.
Ethereum allows for open experimentation, and has brought about the emergence of arbitrary tokens.
Decred has demonstrated that is it possible to dis-intermediate the process of political decision-making for a cryptocurrency.
An online store with:
No Transaction Fees
No Monthly Fees
No Listing Fees
No Bank / CC Required
Live Chat with Customers
Peer to Peer (no middleman)
People tend to miss the bigger picture when it comes to digital currencies. Bitcoin and the blockchain are communication protocols. They allow anyone and everyone to communicate and transact in a single unified language, making it easy for people to put something out into the world. Wether its a purchase or a remittance or a smart contract executed ICO. the currency themselves are just tools for make global statements.
The web application reloads the ml model and then makes predictions based on real time data.
There are also plenty of predictions that do not require real time prediction for example inventory levels, sales for next few days etc. In this case we train on the training machine and write the results back to the DB using spark jdbc. The web just displays this data.
We have scaled up pretty well however in the future we will move to Apache Kafka to real time data transfer and prediction
It depends on how often you want to update your model, how complex it is, how much data it requires to infer, etc. I think splitting up the services/code will be helpful if we get to the point where there are multiple teams working on this stuff.
Sometimes your ml model doesn't need a cronjob and you can update your results near real-time, but the principle still holds, an API separate from the main app.
Assembled battery pack cost to the auto manufacturer is around $190/kWh right now, so the 60 kWh battery in a 2017 Chevy Bolt for example costs GM $11,400 at least. The 100 kWh battery in a 2017 Tesla Model S is a roughly $19,000 part.
Electric motors, inverters, DC-DC converters, AC-DC chargers, etc are also costly parts, but contribute less to the cost than the huge battery packs.
There's no way to take cars that retail for $15,000 -- swap a $3,000 traditional powertrain for a $15,000 electric one -- and not double the selling price. If you double the selling price, you're either in a new vehicle segment or you're not going to sell many units.
Until or unless the cost of batteries comes down significantly, electric cars can't move into the vehicle segments with the most new car buyers. It's not going to happen in 2018; even if there's a revolutionary discovery that allows cheaper and higher density batteries, it would take years to commercialize that discovery, then start manufacturing it at scale.
My prediction: EVs don't become a large portion of non-luxury car sales until the mid-2020s at earliest. Luxury car makers are going to start converting first.
Mostly because there are sooo many factors at play and a lot of it is difficult to predict. Infrastructure needs built and it is possible subsidies of different sorts are needed. We still need a robust used electric car market, and it simply hasn't been long enough. We probably also need an easy way to upgrade gasoline cars to electric (I'd look to something that is adapatable across a few sizes/styles of cars or something relying on 3d printing).
That said, I do think the folks reporting replacement by 2018 or 2020 are a bit too hopeful. 1-3 years is all they are giving, and I highly doubt this turnout. Even where I am - electric cars are quite popular in Norway. 2032 seems more likely, especially if you limit the query to new cars being produced or make sure to have enough monetary intervention so that everyone can afford them.
It's impossible to predict the future. No one can tell you what's going to happen with facts.
Using the same set of facts (current state of the market and regulations), researchers come up with some wildly different projections. That's why you've seen so many different years (as have I).
The real answer is that no one knows.
One thing to note is that India and China have very aggressive electric car requirements. One (or both, I can't remember) of those countries have mandated that all cars be electric by a certain date.
If you just throw everything into a neural network, then you won't really understand the breadth of the problems you're solving, and you'll be therefore ignorant of the limitations of your hammer. While NNs are incredibly useful, I think a deep understanding of the core problems is essential to know how to use NNs effectively in a particular domain.
After getting a grip on those concepts, Szeliski's Computer Vision: Algorithms and Applications (http://szeliski.org/Book/) had some really amazing coverage of CV in practice. Mastering OpenCV (https://www.amazon.com/Mastering-OpenCV-Daniel-Lelis-Baggio/...) was very useful when actually implementing some algorithms.
Before the Deep Learning Craze started in 2011 more classical Machine Learning techniques were used in CV: Support Vector Machines, Boosting, Decision Trees, etc..
These were (and still are!) used as a high level component in areas like recognition, retrieval, segmentation, object tracking.
But there's also a whole field of CV that doesn't require Machine Learning learning at all (although it can benefit from it in some cases). This is typically the area of geometrical CV, like SLAM, 3D reconstruction, Structure from Motion and (Multi-View) Stereo, anything generally where you can write a (differentiable) model of reality yourself using hand-coded formulas and heuristics and then use standard solvers to obtain the model parameters given the data.
Whenever it's too hard to do that (for example trying to recognize many different things in images) you need a data-driven / machine learning approach where the computer comes up with the model itself after seeing lots of training examples.
As for resources the other answers are already giving a great overview. Use Karpathy's course for an intro to Deep Learning for CV but don't expect it to be comprehensive in terms of giving you an overview of CV.
Learn OpenCV for more low level, non-ML and generally more "old-school" Computer Vision.
A personal recommendation of mine is http://www.computervisionblog.com/ by Tomasz Malisiewicz. It's an excellent resource if you want to get an overview of what's happening in the field.
Also, for a general and high level introduction to neural networks, I wrote a Learning Deep Learning in Keras http://p.migdal.pl/2017/04/30/teaching-deep-learning.html, focusing on visual tasks.
Fun and trendy though it may be, I would not focus on deep learning / convolutional neural networks to start off. Deep learning is a small subset of computer vision. I would focus more on understanding the basics of image processing, camera projection geometry, how to calibrate cameras, stereo vision, and machine learning in general (not just deep learning). Working with OpenCV is a good place to start for all of these topics. Set yourself a project with tangible goals and get to work.
A good online reference is: http://opencv-python-tutroals.readthedocs.io/en/latest/py_tu...
disclaimer: not related to any of these
Measure the speed or count the number of cars passing by your street. Try to implement an OCR for utility meter. There are lot's of applications you can train yourself in, and I guarantee that you will learn a ton from each and every one of them.
Princeton CS598F Deep Learning for Graphics and Vision
Stanford CS331B: Representation Learning in Computer Vision
UVa CS 6501: Deep Learning for Computer Graphics
GaTech CS 7476 Advanced Computer Vision
Berkeley CS294 Understanding Deep Neural Networks
Washington CSE 590V: Computer vision seminar
UT Austin CS 395T - Deep learning seminar
Berkeley CS294-43: Visual Object and Activity Recognition
UT Austin CS381V: Visual Recognition
And best of luck to you!
Disclaimer: Never worked with any technology related to Computer Vision, just a bloodboy beginner Python programmer.
I would recommend starting with one of the many OpenCV tutorial books, and maybe work your way through a few of those. Then move into books that cover more of the algorithms behind the library like "Multiple View Geometry" by Hartley and "Machine Vision" by Davies, among many others.
However, I can't tell you if OpenCV is still the framework of choice and/or widely used in the field you want to go into.
Nodes with a map will go to other mind maps with resources. :)
this book: http://shop.oreilly.com/product/9780596516130.do has a number of worked examples that explain things well.
It does touch on Machine Learning, but it focuses much more on the fundamentals of computer vision, like feature detection, that allows things like SLAM to exist.
Even if you end up using neural nets, understanding how to think about the problems is useful.
I started from wanting to develop AR apps during my undergrad, Here are the best resources I have found to date:
Computer Vision is very theoretical and experimental, so the more hands on, the better! My approach has been to go top-down, overview the landscape and slowly progress deeper.
Begin with the best library for CV in my opinion: OpenCV. The tutorials are amazing!
Python tutorials: http://docs.opencv.org/3.0-beta/doc/py_tutorials/py_tutorial...
C++ tutorials: http://docs.opencv.org/3.0-beta/doc/tutorials/tutorials.html
Immerse yourself in these and build any apps you think of!
Then go into: pyimagesearch tutorials http://www.pyimagesearch.com/ and aishack.in http://aishack.in/,
tons of great tutorials to learn different topics of vision with coding walkthroughs. Understand the examples and rewrite applications.
Then Dive Deep:
Get the new OpenCV3 book, a nice deep overview of many topics in computer vision. https://www.amazon.com/Learning-OpenCV-Computer-Vision-Libra...
And watch this course on youtube:
I feel like then, you will have so much exposure that when you dive into formal classes and textbooks, you will really understand and be enlightened.
This was the general way I learned computer vision, and recently I completed a cv internship for nanit.com . I was not hired for my formal knowledge, but they were impressed by all the various projects ive done and knowledge I had on many vision topics.
I also recently took a formal course of vision at Cornell: http://www.cs.cornell.edu/courses/cs5670/2017sp/
All the assignments have starter code in python and opencv.This was an amazing class as it dove deep into 3D computer vision, which is so relevant to augmented reality!
Also, here is a link opencv examples for iOS: https://github.com/Itseez/opencv_for_ios_book_samples
here are links for opencv example for Android: https://web.stanford.edu/class/ee368/Android/
Hope this helps! Shoot me a dm if you or anyone has more questions!
Also, your be usage experience may depend on how you're using it. In-branch/separate-branch/without-vcs? As a single user, I use it outside vcs and am reasonably happy with it.
He argues that a leading indicator is when free food/drinks are removed, as it's a sign that the company is moving from a growth, "we're all in it together" mentality to a cost-cutting one.
I, personally, focus on who's getting promoted and who's leaving. If a company is promoting internally and retaining people, then it's typically in a good place; if a lot of people are getting hired above others, and new employees aren't staying long, then it's in poor health.
- How is the company doing against its goals for the year? - What does our runway look like? - What signs of product success are we expecting? What are we seeing?
In the responses, be wary of blithe positivity more than bad news. Bad news is normal; a healthy organization learns from it and improves. Optimism disconnected from reality is either an attempt to mislead you or a sign of blindness to results.
Health note: Employee churn when churn is not the norm.
Health warning: Certain people leaving with enough business knowledge it's noticeable they're gone
Health crisis: Multiple health warnings in quick succession (within 2 years).
At warning level I make sure my CV is updated and start setting up job alerts. At crisis I'm actively applying for jobs to keep my options wide open.
Edit: Ooh reading another comment - I watch the public docs of the company I'm working for. It's a year or so out financials-wise but you can get some info from it.
Other indicators: delayed salary reviews, senior staff leaving (and not being replaced, because money) or minority shareholders trying to sell their stakes.
This is what "real" culture fit actually is, whereas what culture fit means in 2017 as currently deployed is "we only hire young white ivy-league(-ish) males" which is a totally different concept or problem.
A big warning sign was that my employer interview great candidates, make offers, and then the candidate didn't accept. The problem was that we weren't paying competitively.
I tried to express this to upper management, and then instead of fixing the problem, they just gave me a raise. (From below market rate to below market rate but able to start putting money in the newly-offered 401k.)
Shortly afterwards, I interviewed at one of our major competitors. The next day I looked at one of the founders and said, "if there's a chance to exit via acquisition, we need to take it."
Turns out there was an acquisition deal in the works, but we couldn't know due to how US law works. One of the higher-ups asked me to investigate "a bug," and when I looked at her logs, all I saw were references to an upcoming acquisition. I then knew to stick around and give the new owners a chance.
There's a lot to be said for sticking through a few months of uncertainty when it works out to be a great job in the long run.
That mindset presupposes a few things:
A) that you always have your finger on the market and the skills that are in demand
B) your network is strong - including recruiters.
C) You live below your means and have enough in liquid savings to survive a job loss and getting a new job.
Say a company is becoming corporate and dull, but at the same time becoming more profitable. Are they in good or bad health? As a short-term shareholder you might see them in good health, but as an employee you might see them in bad health.
That said, my experience is to look at team meetings. If they are full of conflict that is resolved respectfully by the end of the meeting, that's usually a good sign. If the same person is dominating and everyone else is quiet, that's a bad sign. If the same arguments keep repeating themselves, that's a bad sign. If there is no conflict at all, and people just stare out of the window while others are talking, that's a bad sign.
At bad companies, everyone knows the real story, but nobody says it out loud. Good people leave, bad people stay, and the problem gets worse.
For figuring out the current health status, I'd check:
the product line - is it understandable? is it modern? is it efficient?
the customer base - do they have customers that wouldn't easily change to alternative options?
the management team - do they have visions? are they cooperating? are they lying psychopaths, ambitious inventors, calm survivors (thinking Merkel here), idiotic burocrats?
HR - HR is managements comm channel to the employees. Does the promo material look good? How close is the promo material to the actual day-to-day work?
People - are there smart people you like to work with? How many of them are currently joining? How many of them are currently leaving?
Hiring - you are either new and just got hired or there for a long time and probably at least hear things about the hiring process at the water cooler. how reasonable does it sound? does it filter out idiots? does it assess quality attributes like culture? Does the feedback from the interviewers have influence on the hiring decision (more often than you think they actually just hire anybody, if they are hiring at all).
It's wise to have a bit of cynicism when discussing company goals, progress, outcomes - things may not always be as bright as they seem. It's a good exercise to take these numbers and reduce them by a certain percentage, and see if those numbers are still good for company growth & stability.
Does your company have paid lunches?
Does it have a snack vending machine or something similar?
A coffee machine with k-cups?
Other little perks that seem insignificant but are nice to have.
If these things start to go away, the company is experiencing financial stress.
Other questions to consider:
- Are staff able to be honest?
- Is the company able to be honest with itself?
- Does the company have a vision that actually sells itself?
- Is the company actually pursuing that vision with it's actions?
- Does the company leverage the intelligence of it's employees, or does it just hand them work to perform?
Managers (a) love to brag about success and (b) it's their job to retain you, and part of retention is informing you about the company's financials.
It's totally okay to ask questions like 'how long can we survive if we don't grow' and 'how long does this continue before we close our doors or fire people'.
The good news is if you don't know about the health of the company you're probably too junior to be first on the chopping block.
If you're asking the harder question of 'are we going to be #3 in our sector in 5 years', you can't trust your managers on that one. They're too optimistic. Do serious competitive market research like you'd do when starting a company -- find a way to measure comparative sales, marketing activity, team strength. Read the linkedin pages of the leadership and key players and look for missing skillsets.
* Banker-looking people coming by
* Drawn out fund raising periods with promises every month that next month something will be announced.
* Churn in the C-suite or at VP level.
* Plants being carted away
- Making sure that everybody had their work laptops/phones properly secured, requiring RSA tags for VPN access etc.
- Lots of new policies, mainly things that we did anyway, but just fully documented and meetings to make sure that everybody understood their roles in them.
- Lots more focus on 'customer satisfaction' and making sure that deadlines were met
- Rewards for helping to clear the backlog of things that needed doing
Basically, a lot of dotting the I's and crossing the T's. Oh, and a lot more visits from the head guys over in the US.
Edit: Not a startup, just a company doing well.
If it's a public company, an employee can look at the health in many of the same ways that Warren Buffet would look at it. Look at it's profit & loss statements for the last few years. If it took on debt, try to find out what the debt was used for. Look at the credit agencies' bond rating for the company. If it's not AAA, research why. Look at the company's major customers. Is it a growing marketplace?
If it's a private company, intelligence gathering is going to be harder and you often won't have good info until you actually work there. You can try to synthesize information from glassdoor, Google News (e.g. lawsuits, settlements, etc), and other sources.
>I mainly meant "startup" (i.e. not Fortune 500)
In this case, I would ask the hiring manager (often the founder) if the company is cash-flow positive. If not, ask how much "runway" is left before the company runs out of money. Some founders may push back with "I can't disclose financials, yada yada" ... maybe because of his paranoia about competitor espionage. You then have to ask yourself if you're willing to join a company with limited information. You can join a not-yet-profitable company because sometimes, it all works out. That said, the idea of concrete financial dialogue is to make the risks transparent to the employee.
Cash in the Bank / Burn Rate - How much cash does the company have? How much of that cash is it spending each month? How long until the company reaches profitability? Could the company be profitable now if it wanted to be?
Headcount - LinkedIn actually tracks this now. How has the total headcount of the company changed over time, particularly recently? Headcount is certainly not a measure of success, but a significant decrease in headcount may be a red flag.
Growth Rate - How fast is the company growing? Ideally you're looking at this in terms of revenue.
Unit Economics - Even if the company is growing, is it making money from every sale? Or is it "spending $1 to earn $0.95" ? Getting a handle on the bottoms-up unit economics of whatever the company is selling is important to really getting a picture of its overall health.
Grit of the Founders - This may be more important than everything else on the list! Every startup is going to feel - frequently - like it's in "bad health." Founders with determination, grit, and the ability to fight through the tough times will overcome a lot of the problems presented by other items on this list.
When a company is doing well, it's usually the opposite.
I've never delved deep into actual statistics on this, though, so consider this just an anecdote.
If the bullshit level is high, I think about leaving. If the first derivative of the bullshit level is also positive (bullshit is increasing) I lean heavily toward leaving. (If the first derivative is negative, the company might be healthy and pivoting after a setback.)
If both the first and the second derivatives of bullshit are positive (bullshit is not only increasing but accelerating) it's time to leave immediately.
It really doesn't matter. Any company can blow up at any time due to fraud or mergers or whatever. You might get fired because your boss might want to replace you with their old college roommate. Or the CEO decides to kill your whole division because they're chasing some dumb fad.
If you're not customer-facing, talk to a customer-facing engineer or even account manager. "How's the X account?" "Tell me about a customer we've made successful." Don't accept "The account is fine." Drill down and ask for details; they're the only things that matter.
You're internal, so unless your company is really $&#+ed up and silo'd, you shouldn't have a problem getting a feel with a modicum of social skills.
If you're not making customers happy, and management is proceeding with business as usual, start looking for a new job.
1) Financial/Stakeholders - Are we raking in revenue? What type of revenue (high-touch, low-touch. high-volume/low-margin or low-volume/high-margin)? Are we consistently making this or is it totally dependent on the connections of 1-2 people? Can it be recreated? A bad sign is if people are being shifted to different projects all the time without one being totally completed/closed.
2) Customer/External Relationships - #1 is dependent on this. You can't make money with people giving you money. Do we have sufficient customers/market to provide the type of revenue needed? Do customers like us? What's the market feedback? A bad sign is if sales is overcommitting through the teeth about the products/services just to get them onboard.
3) Activities/Internal processes - #2 is dependent on this. You cant continually create things to sell and build customer relationships without a proper cycle of operations. Do we have processes? Does the process last long enough to get feedback? Or are the activities fickle and do not have solid implementations? A fishy sign is if there seems to be a totally new sales/engineering process every month, or isn't implemented rigidly and the org chart changes every 2 quarters.
4) Learning and growth (People-aspect) - Most important. #1, #2, #3 is dependent on this. You can't have processes/services/products without people. Based on the product/value that the company is providing to customers, are they valuing the people that creates this value? (training, leadership roles, ownership of product/services, etc.). Is there career growth for people that create this value? A fishy example would be: leadership positions in a product-based tech startup where there isn't at least one person with a history of software-engineering/operations and is instead filled with a group of salesmen. That startup would probably best be a consulting business, since the way things would be led hampers any kind of effort in building an effective product development pipeline/operation. Another bad sign for that type of startup is when key staff engineers are leaving, their positions are left empty and more managers are hired instead.
If there's none at all, then people likely are afraid to talk openly. When there's cynicism about everything (revenue goals, vision, hiring, retention, ...), that's a sign that most everybody has lost hope.
- key people churn
- business traction graph - depending on the market you are in you can get some sense through similarweb and the likes
We took it to the next level at Yodas and provide detailed analysis. We help individuals make better, more informed career decisions.
Basically we're pretty good at transparency, so most people just know all of this. It's a nice environment to work in!
- When you get rid of your QA team in the name of "quality" with everyone being responsible for testing, but then never provide adequate testing resources or environments. And when quality and velocity inevitably drop, and everyone claims they want to improve quality, but it's never actually prioritized.
- More generally, when your company is saying one thing and doing another.
- When your executive team flat out lies, and doesn't even blink when questioned about it.
Companies that are successful are often unwilling to risk any element of their success and can be rigid/inflexible.
- If executive insiders are buying stock: a good sign!
- If executive insiders are selling stock: could be a good or bad sign (e.g., they might sell because they are purchasing a house.)
- If executive insiders are selling everything: very bad sign
Learning, what types of opportunities are employees given to develop skills and learn new skills?
Looking back to a few layoffs, that was a common sign. I think I can spot it next time.
(Of course, a startup can still pivot to uncover opportunity.)
* Stock price * Attitude of employees * Attitude of management * Statements and sometimes rumors heard around the office
User and revenue growth rate.
One bad sign is if the CEO is replaced. Another bad sign is if the company can't figure out how to make money.
Some things I observed that led me to doing a job search.
> Insurmountable Recruiting difficulties
I was promised a team of 5 junior devs under myself, but that never happened. There was always a new process, or a new form that had to be filled out; they got filled in and nothing happened.
Eventually the company started projects to hire people with disadvantaged career histories (Chinese / Korean residents, women who had left their previous job after pregnancy, et cetra). I felt this was a great policy but I was eventually clued into the real origin of the policy and why I never got the team I was promised.
Apparently, we had (and still have) an excessively poor reputation. Not criminal; just in terms of leadership (at all levels), salary and work load. Successful mid-career job seekers could not be expected to join. As such, disadvantaged workers and the lowest level of university graduate comes (the kind who has "Tennis Club" as a prominent part of their university "experience"). My lack of experience at large Japanese corporations is also why I didn't have the foresight to check 2chan or Vorkers (glassdoor-like company in Japan)
> New Emmanuel Goldsteins on a regular basis.
"We would be great but... is terrible" is a constant refrain at these sorts of companies. You can fill in the blank with a C-Level executive, a new employee, or a clique in the office. If you are assigning real people in a capitalist enterprise the role of "villain", then the environment is not going to improve. It is like saving a marriage after you tell friends to take sides.
> Inappropriate focus on loyalty
I have literally experienced a C-level officer making these statements in a work environment, about people who are so low in rank so as to be below his level of concern. If a junior accountant leaves for a better position at another company, one with less stress and better pay, it is the obvious and correct decision, not an act of "disloyalty".
> No objective source of truth or success
While I ran a business previously, I could be convinced by objective measures of truth (profit being #1). At my current office, there is no single source of truth, nor a single measure of success. This creates a difficult spiral of wasted time and effort when starting projects; in the end, calling in "outsiders" to resolve the issue (by giving them superuser access over the project structure) simply delays the hard questions (who is in charge / gets credit & blame / by what measure are we doing something), and further infantilizes the office.
> Senior people left and were never replaced
Literally the second most senior person in my part of the org left and wasn't replaced for more than 2 years. Junior managers reported straight to the C-suite. His eventual replacement lacked his depth of knowledge and greatly damaged the collegial atmosphere that existed within the Japanese team before her hire.
> Easy things are difficult
There are X (where X is a number greater than 5) different approval processes for me to pay a vendor who has already finished the work.
A "normal turn over" in IT is 10%
In normal companies it is less.
If more, flee.
More importantly, any company that has negative marginal profit, is definitely not healthy (i.e. Uber)
You should also pay attention to other employees; ask yourself why folks who leave are leaving. This seems easy, but I know one start-up well where a small trickle of occasional high-level departures turned into an eventual flood and bankruptcy.
Beyond that, it's the usual. Anything you can tell about sales growth, competitive intensity, leadership, etc. are all helpful and good data points.
Also, the MOOCs will sell user data and serve ads.
The biggest education providers today are Google/YouTube/Quora/Reddit/Stack Exchange.
I don't think this will change. These things scale, people want to use them, and they seem to work.
[This question is subjective depending on your definition of what education is and what goals it serves]
I also purchased a two sets of white linens that I bleach between rentals, having twice as many as I need for a stay and having the ability to bleach out stains has made dealing with linens easier. I have a professional cleaning crew that handles everything else.
I have an August lock that integrates with AirBnB that automatically sets up access during the guest's stay. I also have a backup lock box for when guests have trouble with that. In general it's been pretty good.
I have had a few issues where guests are expecting a townhouse to have hotel style amenities, different people have different expectations of what AirBnB is supposed to provide and for what price (I'm significantly cheaper than hotels in the area). For the most part I feel like people read the descriptions and reviews on places to find somewhere that meets their expectations but it would be helpful if there was some kind of "service level" ranking that had a policy associated with it or something.
Airbnb is relatively straight forward. Check-in and check-out can be done via a key drop (typically the mailbox with a combination lock). The main thing you have to worry about is cleaning up after every guest... some guests don't know how to clean up after themselves. Get second hand furniture to save costs.
I really recommend that you try it. The business model behind Airbnb is quite brilliant.
I'm a 30 yo self-taught programmer from Romania and I've found this page a couple of months ago... since then this is my point of entry to the WWW, this is really adictive! :D
Great job maintining this!
The thing I love about the experience can be summed up as:- no click bait headlines- no endless "engagement", notifications, round navigation and noise (incredible quality of content curation)- amazing community (comments are often more insightful than the source)
Basically there comes a moment when you're up to date - reading done - and can carry on with life afterwards.
You might think "oh but I like it to stay in touch with people!" but eh... pick up the phone and call someone, or send them a text message. Actually communicate with the people you want to keep in touch with. Casually observing what someone is doing via internet voyeurism is not staying in touch.
I think that there's a huge space, a huge potential for a new social network which we, early adopters, will jump in and love.
Like they say in Canada : "Peace Ooooot"
I use Facebook to keep up with friends and family.I use HN, among others, to keep up with technology.
I see no reason for dropping one or the other, they don't even intersect for me.
But shunting data in and out of sql databases and making REST APIs is not novel tech work, it's just a very fragile way of describing and maintaining policy. The tech sites of old had more interesting and novel implementations in a handful of articles than passes through HN in a week, and it wasn't stuck behind a SaaS wall either.
As for VR or AI, one is stuck in a rut of uninspired arcade shovelware and the other is being used for terrifying totalitarian purposes. Welcome to cyberpunk dystopia, population you.
Go read some n-gate to put things in perspective.
Same as with creating a community around anything.
1. Define a group of outsiders, explicitly (politics) or implicitly (privilege).
2. This scaffolding sets up the emotional payoff necessary to motivate people to be involved and belong. The nature of community is also the essence of how you create it. Tap into people's reward circuitry. Their tribalistic instincts. If you find such notions repellant, you could be in the wrong business.
3. Apply optimizations, such as letting people advertise recognition and status (reputation), develop mastery ("my skills are improving"), and act autonomously ("I got this").
4. Make a safe space for them to congregate. You need boarder control / bouncing / moderation. You can take an editorial stance yourself, or work with the community to develop it collaboratively.
5. Let them communicate.
Do you really want to do this? A community is like a ginormous multiheaded baby. It will suck you dry and lay waste too all your other plans. But maybe it will also be among the most beautiful and amazing things you've ever helped create. Your call, buster.
Edit: Apparently it's no longer free. The course isn't really worth $100 in my opinion, so here's a short writeup of the videos http://cmxhub.com/article/product-hunt-erik-torenberg-commun...
As far as putting my own products on there, I did put a link up which is on every page of the website, and I do get clicks that lead to it. For my more prominent products, I tend to write an article about the product or find similar products and write comparisons. Pretty much rather than selling.. I'm just trying to "make known" that this product is here for you.
Community is your market, and crucially, you.
You should have found the community first. Then, if you're truly part of it, you'll know what your product should be.
If you're asking the question you're asking, it means you built a product without a market which is going to be... challenging.
1. Creating value for a specific target group. An early product/market fit lets word-of-mouth spread.
2. Let people participate. Giving people the feeling to be heard is crucial. A proper feedback management / cycle, helps.
3. Inform people what is happening. Let's call it "content marketing".
4. Start becoming an expert / create a personal brand
For step 1) you need to reach out to those people. Do things that don't scale. Go to meetups or wherever you find your target group. Talk to them, build relationships, ask for feedback, identify influencers. Try to understand the market, their problems, identify their needs, build relationships and build on that.
For step 2) have a proper feedback solution in place. Facebook Groups, an on forum are some options. We developed a platform exactly for this part. It's called STOMT (disclosure: i'm the founder). But we used our own product to build our own community. We invited anyone to checkout the product and leave us feedback on our profile: https://www.stomt.com/stomt - That way you can easily collect wishes, discuss, vote, manage and react on them.It works great and from time to time more and more people started using us. Have a public dialog and people get a community feeling. The question is which tool you are using and if you can efficiently combine it with feedback management. As this can create a huge overhead. Another example which works even better than ours: https://www.stomt.com/empires-of-the-undergrowth - just check out the stomt/reaction ratio. And those guys are not on the market with their game yet.
For step 3) This costs time. But to get feedback/engagement/participation and to get people excited you need to share your status on certain aspects from time to time. I like how Taylor Otwell (Laravel Founder) does it on Twitter. Bloggig is great.
For step 4) Share your knowledge, use your relationships to speak on a stage, be the expert. This works great for me => for us and let people follow you.
Edit: It is important to mention to start early. Be the expect (step 4) from the first second on. Talk to your customers (step 1) from the first second on. Invite them to a place you define (step 2) as soon as possible. And share if you have something to share (step 3).
It depends on so many things it's hard to define specific things, as each combination is distinct. It's like striking up and holding a conversation. How do you do that? That is what you are doing with the community.
Find out who they are.Find out what they want.Find out what they likeFind out what they need.Try a bunch of combinations of these 4 observations that makes them happy enough with you to engage.
For example, when I bought my DSLR, I looked at various camera rental sites and used prices of year old models. It showed me that I should buy the camera because even if I sell it after couple of years, my overall cost of camera would be only couple of weekends rent.
So generally I buy cars, books, video games, furniture, music CD (yes still buy CDs) etc. Selling is really easy. (Lately, books have no resale value but there is no book rental service other than library. Also I like to gift books so it evens out.)
Only thing I rent because of above math is movies.
Then there are a few things I rent just because it is convenient to rent or cost too much to own for short time period. So I pay for gym because I don't want gym equipment at home. Or rent cars when traveling.
If I had a mortgage somewhere I couldn't live like I do now when I can freely move to another country for a year for a gig, then move again. So renting gives you flexibility to move after jobs quite easily and travel the world while you're young, gain international experience and see other cultures.
Of course, once I settle down in one place where I'd like to stay I will buy a property instead. But I haven't decided where I want to live yet.
Once you buy a house somewhere you pretty much have to stay in that area for next 20 years and are limited to jobs in your local area. Of course, you can sell, but 1) that's a hassle and takes time 2) there might be a down market when selling for good price is difficult and then you're stuck in your place until market turns around. If you're renting you can move whereever economy is booming or there is some interesting niche job.
Long story short, if you rent, relocating for jobs or expatriating to a different country is easy. So I'd recommend renting while you're very young (<30-35) and buy a property later once you are more settled down.
For personal use:
I prefer to rent things I don't intend to reuse indefinitely (movies, for instance). But I'm very careful about recurring subscription fees. They add up quickly. Netflix is my one non-utility subscription - mostly because it costs so much less than a cable TV subscription while offering such a better experience.
I prefer to purchase anything that might inhibit my access to data I intend to use in the long term (basically, any software for creating/editing non-ephemeral data). Also, a lot of software is ridiculously overpriced at rental prices.
I rent my apartment because purchasing an equivalent home would cost multiples of my rent every month - I basically couldn't afford it. Also, real estate is already overpriced where I live and thus a poor investment, I don't want the responsibility for upkeep, and I don't intend to stay in this location for more than a few years.
I rent cars because I only need one once or twice a year. I don't even take cabs more than about once a month.
Basically everything else I buy. Or don't need and thus don't buy OR rent.
For business, cash flow and spending money to make money flip some of the considerations on their head.
Renting software for collaboration makes more sense than self hosting as long as the costs are less than the value of the time you'd spend maintaining it. Other software is worth renting or buying (whatever the business model the producers use) simply because you need its features and you don't get a choice of how to pay. The increased productivity of the right package over the wrong one for an employee's core function is easily worth hundreds, often thousands per year.
Office space: rental is a no-brainer unless you're Apple or Google.
Furniture: if you expect your company to exist for more than a few years, buy. Furniture lasts a long time.
Computers: Buy Macs, rent Windows. Your engineers and designers need the latest and greatest once every couple years, sure. But the rest of the company will do fine with their hand me downs. However, the build quality on windows computers is a race to the bottom, and I've seen too many laptops fall apart within 18 months. Whereas probably 80% of Mac laptops are just fine 5 years in, if a little cosmetically blemished.
Appliances: rent. Rental companies seem to have fewer qualms about replacing your appliance and taking the old one back to repair, instead of stringing you along scheduling repairman visit after repairman visit. And you just don't want to be without a coffee machine or dishwasher for three weeks.