What you must be referring to is the stock price, which has dropped from 200 dollars a couple of years ago to like 120 these days.
I can't claim to understand this company, I think very few people can. There are 300,000 employees and more teams/products/departments than you can imagine. It's absolutely insane.
However, what I can say is the following: IBM is shifting it's strategy completely and that would've been very difficult to do without a drop in revenue and stock price. IBM is going from whatever it was before to a cloud-based company. All services and products will need to have some sort of cloud offering. I'm not sure if you can imagine what moving 300k employees worth of work to the cloud means. IBM has existed for like 100+ years now, this industry has not existed until a couple of years ago and, right now, all teams must re-evaluate their work and make the steps towards making this transition happen.
Many of the employees are stuck in their old ways, many people have been working at IBM their whole career (20-30-40 years) and it might be hard to adjust to so many new directives coming from the top. There's much bureaucracy and many old ways that need to be absolutely obliterated. Also, IBM doesn't have a great reputation for being cool or anything... almost everybody hates Lotus Notes, as an example.
This was sort of all over the place, I didn't spend a lot of time thinking about this. Please let me know if you have any specific questions...
As I comprehend it, the features were originally intended to allow fat mainframes to dole out tiny resource portions for distinct jobs. As it seems to have turned out, every CPU these days is the equivalent of a fat mainframe, and the greater challenge is around integrating this form of rapid SOA micro-provisioning in to developer workflow through tooling and education. I just upgraded this few year old Macbook Pro to run Docker 1.1.0: 200MB Linux ISO + Virtualbox + kludgey go wrapper = better solution than IBM ever provided. With a different management culture, they could have released this in 2010, pre-empting stable docker by 5+ years with a kernel commit history and adequate marketing funding.
Buffett's position is that IBM has succeeded in turnarounds throughout its 100+ year history. Also, their advantage is in the Public/Private hybrid cloud. Buffett also believes the cloud business is not a "Winner Take All" game.
Buffett also applauds what industry pundits have dubbed, IBM's "Financial engineering". IBM has financed share buybacks with debt. With interest rates and share prices at low-levels, he believes the buybacks are sound.
In my time, I remember when IBM jumped on the Linux and Java bandwagons with great success. I think most people respect the contributions they made with the Eclipse IDE for example.
It will be interesting to see what they do with Bluemix and AI. I still respect them as a technology company.
This kind of business is extremely hard to scale, compared to a true software or hardware company innovating and licensing/selling products. IBM does have a ton of resources behind Watson, but that's still basically an enterprise services contract sale, and not much of a cloud product.
Power may be a bit quicker than Intel, but it's unfamiliar to many. Nvidia is breaking new ground, it's sexy, accessible, and cheaper.
On the software side it's a similar story. Why use their unknown proprietary cloud stuff when I can just make use of the plethora python/julia/clojure/R stuff? AWS is fancy and ever expanding, Softlayer is a PITA.
IBM biz news http://finance.yahoo.com/q/h?s=ibm
Also they calculate the Wimbledon serve speeds, so they've got that going for them which is nice.
IBM is down 17% percent in the last 6 months. (https://www.google.com/finance?q=ibm) As far as tech stocks go, that's not crisis-mode.
As far as newsworthyness, Watson and Bluemix have been making the press rounds.
They are still trying to sell, sell something, via those branch offices to those businesses but they have run out of things to sell. And the sales culture is not good at thinking of good, new products/services to sell.
Maybe they should focus on unionizing Amazon.
IBM is losing its old accounts and old business agreements faster than it can generate new revenue with Softlayer/Bluemix/Watson. IBM makes 4.5B from Cloud revenue. In contrast, total revenue in 2015 was 81.7B. So IBM revenue is going to be a bloodbath until Cloud revenue can catch up. Unfortunately, Cloud is a razor thin margin business, where Amazon, Microsoft, and Google are willing to sell at, or below cost to gain marketshare, which will likely continue to hurt IBM's cloud revenue at a time it needs it most. IBM is the underdog here, so it can not bring any of the other cloud giants to the table and make them end the price wars, so IBM cloud revenue is likely to remain anemic.
IBM also suffers from a number of management mistakes. IBM is way behind on automation and lacks the talent, so they've had to make acquisitions and "strategic partnerships" to buy it. IBM previously tried to outsource as much software and operations to China or India, and the unskilled labor available in those countries simply don't have the skill sets to do devops or any sort of basic automation. So you've got datacenters where people still ssh into each box and run commands by hand thousands of times because the skill level isn't there. But hey, a few quarters of lower labor expenses in exchange for long term growth is a great deal when you can just parachute out.
Other mistakes IBM has made includes massive buildup of debt and stock buybacks to inflate the stock price. As bad as the stock looks now, just consider how bad it would be if IBM hadn't spent 8B+ buying back stock. These buybacks have largely been financed by new corporate debt. IBM's market cap is nearly 40% less than only a few years ago. These buybacks hide a lot of the stock price damage (the stock would be worth about $75 instead of ~$130). In addition, buybacks are essentially returning money from the corporation to the shareholders, unwinding the assets. This means IBM management has no plans which could return a higher yield to investors than simply handing back their money -- not great for investor confidence or long term future for IBM.
Big companies are no longer buying the buffet and are increasingly opting to go ala carte. Or alternatively, they are negotiating IBM down on prices for the buffet.
It's true that IBM is switching its focus to Cloud services and Watson. However, these are just new, unproven items on the buffet menu.
Fortune 500 IBM software is also dying because IBM has let DBAs running scripts by hand not version control be the source of truth.
When the IBM PC was made it started the PC Era that became the Post-Mainframe era. When mobile devices took off it became the Post-PC era and IBM had to sell its PC and Server lines and focus on services.
Now even if it is the Post-PC era PCs are still being used. IBM had to get rid of OS/2 and migrate to GNU/Linux.
Right now it is also the Cloud-Era and IBM has to work on Cloud technology.
When a company shifts technology like that it takes a while to find a way to turn a profit.
Apple went to the mobile technology market and it took off like a rocket. IBM had the Simon Smart Phone in the 1990s but couldn't market it.
IBM has a lot of technical debt in maintaining Mainframes and Minicomputers that are still in use. The Lotus products also are outdated and they tried to use OpenOffice.Org to make Lotus Symphony and it didn't take off.
IBM Opened up its Power technology:http://openpowerfoundation.org/
A lot of things have happened to technology that IBM suffered from losing money because the technology became outdated. IBM has to invent new technology to replace it.
IBM is focusing on services and the cloud right now. Sort of moving away from hardware because it is hard to earn money from hardware and moving to software and services instead.
Everything I used to know about IBM has changed, IBM has to reinvent themselves. The technology and markets have changed and IBM has to adapt.
Yeah, but dat Earnings Per Share though... /s
Network (which really means just keep in touch with folks you have worked with or met).
At your current employment situation, keep your ear to the ground. You don't need to move to a big company (they have layoffs too) but you want to be aware of what is happening.
Ask your boss questions about the business, and do your own research too. If your company is "default dead" then ask how you can help make it "default alive".
Cut your unneeded expenses.
Start a company if you have the drive to so, don't worry about the macroeconomic climate.
Source: reading, living through the 2000 and 2008 recessions as a developer.
On nothing to do with tech: I'm desperately trying to find something that covers general world news without too much of a US slant, in a nice concise way. Next Draft (mentioned elsewhere in this thread) is pretty good, but is very US heavy.
When I trialled subscribing to The Economist their Espresso app-- which is essentially a daily curated newsletter-- was pretty decent, so if you sub to them you should definitely check it out.
These days I'm trying the qz daily digest, which I think is working out OK: they talk about what to expect in the next day, what happened while you were asleep etc. If anyone has any better suggestions I'd love to hear them: I like how the economist actually talks about other parts of the world apart from the states, but I don't love it enough to pay their standard sub rate.
In terms of general flowery writing I get emails from Medium based on what I've read, emails from Pocket based on what I read, and longform.org's newsletter. Depending on how snowed under I feel at any given time I either just delete them without opening them, of potentially skim them to see if anything is interesting.
I like Dave Pell's Next Draft, which is just interesting general news stories, and also Azeem Azhar's Exponential View, which covers tech, with a slant towards AI/ML. In terms of stuff the HN crowd is less likely to already know about, I like Archinect, which covers architecture. It's not really a curated article roll-up so much as it is an architecture news site, but their weekly email is a nice way to stay on top of what's going on in the field.
DISCLAIMER: I'm the curator and janitor of the newletter
Dave, who runs it, also built https://curated.co, which is a tool for producing these kind of hand-curated newsletters.
It's sent once a week and you should find at least one or two good articles that are worth reading.
Then there is https://www.brainpickings.org where the author reads a bunch of books and sends out a newsletter with a resume of each book. I personally don't think there's anything like this out there!
Some RSS-Feeds I follow and which might be of interest: http://kernelmag.dailydot.com/ - http://www.rand.org/blog.html - https://blog.codinghorror.com/ - https://bsdmag.org/
(PS: You can also get rss-updates about new entries in Youtube-Playlists (google it) and if you use Twitter and follow some interesting people, that might also be a good way to stay up to date)
- For coffee, I learned people in the know are after 24/7 changes in the commodities market.
- For worldwide airport news, well, I don't think there is much of a market there (though I would regularly capture 30-50 pertinent articles per day).
- For Brazil news, cultural awareness is nice to have but in order for something like that to be needed, I would think the focus would have to be Business, and very specific (in fact, I played around with making newsletters like this).
- For Brazil tech, I think it was too early on in its development because there were only around 10-15 items per day.
There's a final component I failed to consider with the first two newsletters above, I had no product dev, no one on the inside to say "hey, focus on this aspect, that's what people need."
* http://softwareleadweekly.com/ - about people, culture, leadership
* http://www.devopsweekly.com/ - DevOps, by Gareth Rushgrove
Just my pick. Indeed, I've found links there that haven't popped up anywhere else (HN, Twitter), so I second the original poster's opinion that mail newsletters are a good thing - wouldn't have thought that.
Take a look at some of their past newsletters -http://us10.campaign-archive2.com/home/?u=d7f0f45160075006b2...
2nd Place : Weekly Newsletter + Podcasts from Andreessen Horowitz (A16z). The podcasts are amazing - discussions with entrepreneurs working on bio-tech, AI, Fin-tech, Quantum Computing. All the people I would love to hang out with.
Non-tech: Brain Pickings FTW!
Curates a personalised list of electronic music/soul jazz vinyl releases based upon items you add to your Saves list
Cron.weekly is a weekly newsletter (every Sunday) with news on Linux and open source. Focussing on the technical side mostly, featuring new tools & projects and guides & tutorials, as well as the latest news, releases, ... pretty much anything noteworthy in open source.
It's available here: http://www.cronweekly.com/
And all archives are available here: http://www.cronweekly.com/archives/
https://summitroute.com/blog/ - (mine) Infosec news.
http://ben-evans.com/#newsletter - Email only newsletter from Benedict Evans of A16Z mostly related to large mobile business moves.
https://www.feistyduck.com/bulletproof-tls-newsletter/ - TLS crypto news (monthly)
http://golangweekly.com/ - Golang links
I like how they post the weekly newsletter on the website. I'm not subscribed, but I read it every week. It's a nice way to stay up to date of some technologies I use daily.
Example link from yesterday's I liked: https://twitter.com/HenryHoffman/status/694184106440200192
Recently, though, I signed up for the "cron.weekly"  newsletter and it's actually pretty decent. I think I first saw it mentioned here.
The "archives"  are available as well, so you can get an idea of what it's like before you sign up.
MarketingDay does an amazing job curating posts from around the web as well as give you the top stories published on MarketingLand that day. It is a must read for anyone involved in any area of digital marketing.
Great source of wisdom
It's a newsletter directory where you can search and find all kinds of newsletters even with subjects outside the tech world. (I've got no affiliation with them, just found it a while back on OpenHunt and thought it's useful.)
Morning Reader, for general tech news - https://morningreader.com
hackernewsletter for avoiding lurking on HN too much - http://www.hackernewsletter.com
I don't always have time to read it. But, when I do, I never regret it.
Alvin Ashcroft's Morning Dew http://www.alvinashcraft.com/
Chris Alcock's Morning Brew http://themorningbrew.net/
Regular Geek http://regulargeek.com/category/geek-reading/
For Machine Learning I can't recommend Talking Machines (http://www.thetalkingmachines.com/blog/) highly enough. It is a podcast though.
The format is the top 5 links of the week + 1 mini article.About 1100 subscribers now, I also welcome contributions!
It (a) assumes no knowledge coming in, (b) provides a linear progression from no knowledge to a portfolio of web applications, (c) lets you move as fast or slow as you want, (d) lets you skip lessons and topics you're already familiar with, and (e) has phenomenal online support. (EDIT: and it's free)
Once your friend has the fundamentals, I'd also suggest checking out http://flukeout.github.io/ and http://flexboxfroggy.com/ . They're fun little games to introduce lots of css and flexbox features.
He will get context on what HTML is, and how it interacts with the browser. It's much easier to internalize knowledge with this website than it is elsewhere.
- choose a small project. Something that creates discomfort but not crippling anxiety (this will require self-awareness - too small, you won't learn much, too big, you may give up and take a confident hit).
- split the project into parts so you have a bunch of questions. 'How do I build a site in HTML/CSS?' is fairly broad. Perhaps "how do I build a header?" is too. Break it down until you either know how or you can find the answer quickly, i.e 'how do I insert an image?' or 'how do I set a width, background colour and consistent space inside the edges of a box?'
- have someone who you can call upon to answer questions or help convert what you are trying to do into a phrase that uses industry terminology for which you can find ample resources. Forums/IRC can help here - there are some jerks who will kick off about you not using google but many will be understanding if you explain you are new and still need to pick up terminology to make searching easier
- repeat the above endlessly, expanding your skills and integrating new discoveries
An interesting example of this is of someone who built 200 or so Rails projects over a year. I may have got the numbers wrong.
Good books can help get started and reading certainly helps but making the process multi-modal by reading from many sources, listening (such as videos or a local web meet), doing via projects and experiments and seeing your results will be most effective.
I don't have recommendations for books - the only thing about HTML I read in a book was a small section of a cheap internet guide that got me started when I was a kid. This wasn't required when training an apprentice but probably useful.
It will give them a good foundation and confidence to setup a website from scratch.
Have them purchase a domain and setup a simple shared hosting account to publish a website. Shared hosting like hostgator is good enough to start, learn the basics, use FTP (recommend, MAMP/WAMP, sublime text, filezilla).
Then they can move on to more advanced topics.
It has alot of good resources and a wealth of information. As a seasoned web developer, this is still one of my go-to sites for documentation on web related stuff.
Or is it like with LaTeX that you just start and on-demand google the pieces?
https://www.bento.io/tracks/front-end - front end track
https://www.bento.io/grid/ - all their tutorial recommendations
They hand-pick some of the best free tutorials for each of the technologies you might need (including the other ones mentioned here) and even have curated tracks for front end.
Right now the biggest hump for me is figuring out how to make mobile-friendly sites WITHOUT resorting to a framework. I feel like the vast majority of books or e-courses right now will go the following route:
1) Teach basic HTML/CSS for barebones basic and legacy pages
2) Introduce HTML5 syntax
3) Briefly show how to do a "pure" mobile-friendly page using viewports, flexbox, and media queries.
4) Spend fifteen minutes on the above, and then say, "But that's too much work. So now we're gonna use Bootstrap and never do Step #3 again!"
That above has happened consistently, and it disappoints me. I can do Bootstrap, but frankly I hate writing it. I feel like I have to go five or six div's in deep before I'm actually writing any text that's going to be visible to the end-user.
Anyone have any suggested resources for building mobile-friendly pure HTML/CSS sites?
Best online resource: http://learn.shayhowe.com/
I found it very helpful to look at how other people implemented certain components.
The videos spell things out nice and slow, sometimes a bit too slow but you can fast forward if you already know a section.
It's meant for web designers, so I'd imagine it would work for your friend. The site also has courses for a few web programming languages and Wordpress etc.
Anyone else used this?
All the tutorials & videos are available there as well as the curriculum and assignments for each week.
It's not always the case but for html/css, learning by doing is amazing.
1. Check out Jennifer Dewalt's project 180 websites in 180 days - http://jenniferdewalt.com
2. Free Code Camp is quite good (but the focus is more on coding rather than design) - http://www.freecodecamp.com
3. Nathan Barry's books are great - http://nathanbarry.com/books
4. [Plug] - I'm starting a new site for online courses and need beta testers for some HTML and CSS courses which go from scratch to pro level. Happy to give your friend early access for free - http://learnetto.com
It is my opinion that this leaves a large gap in ones education, and so supplemental / lower-leveled resources should be sought out if one wants to have an "expert-level" understanding of HTML and CSS.
Imo it is the best editor you can use to learn HTML and CSS.
Here's a blog post I wrote about learning web design: http://hypertexthero.com/logbook/2012/04/web-design-where-to...
Plus the website is also open source :)
- when building new projects, dont automatically include bootstrap, or other libraries. Only include what you need AS you need it
- dont look at other peoples code before trying to write your own solution first, this helps you clarify your needs!
- when you do look at other peoples code, NEVER copy/paste it, read and earn and rewrite what you need
- only ever copy/paste code you have personally written in the past
- dont be afraid to rewrite code at any time
- code is expendable, and the more code you write the better you will write code
- avoid preprocessors and compilers, they create extra work
- anything that can be built depending on a library can be built more efficiently without it
HTML Questions for Learning:
- can I still do it without that containing <div> as a wrapper?
- is there any HTML like <div style=clear:both></div> trying to solve CSS problems using markup?
- how could this be rewritten without using any classes at all?
- whats the fewest amount of tags I would need to mark up this design from scratch?
- whats the most relevant or correct HTML5 tag for this ([and there are a lot of them!) https://developer.mozilla.org/en/docs/Web/HTML/Element
CSS Questions for Learning:
- how could I write this CSS without using any classes at all?
- if I remove this line, does anything break?
- what styles can this element inherit from other CSS rules?
JS Questions for Learning:
- if jQuery didn't exist, what would the solution designed to meet my needs look like?
And in addition to that, all I can say is that the more you do it the better you will get! Create some basic templates and get used to creating throwaway HTML pages to test one thing, or check something. Dont get invested in and finesse and polish every project or page you build or youll have a very shallow level of skill and spend too much time on too few pieces.
One good habit would be to start pushing code to Github. You can view the traffic there, so if people are viewing and using your code you can be motivated by that.
Also, CodePen is like a social front-end coding playground. I would highly recommend you check that out and get the habit of testing and trying things out in the open.
The other last thing I will say is this: simplify! in 2013 my idea of a barebones HTML page was a whole site template like this: https://github.com/tomhodgins/5keleton
By 2015 I had it pared down to this: https://gist.github.com/tomhodgins/c09dd6f9485d77d14e55
But that was still so heavy it was slowing down my learning. Now when I want to test something heres the HTML snippet I pop into a new text file:
<!DOCTYPE html> <html> <head> <meta charset=utf-8> <title></title> <style></style> </head> <body> <script></script> </body> </html>
- HTML5 Specification for HTML reference: https://www.w3.org/TR/html5
- You Might Not Need jQuery for learning JS: http://youmightnotneedjquery.com
There is not a lot of utility in HTML + CSS on its own, unless you want 1996 style web pages that are static.
Knowing HTML is one thing, being able to build something in Wordpress will be far more CV worthy.
don't! Just use boostrap studio ( https://bootstrapstudio.io ) or something (there exist free alternatives if you don't like paying 25 bucks) :)
Pro:- Dirt cheap (pay only what you need)- Scales fast and large- Just works
Cons:- Getting swift to run is very hacky
Considering to replace the game backend (scala on ec2) with Swift on Lambda (plus API gateway)
ps:Lambdas do run in containers/instances that get reused ... unless they are idle for too long.
Large burstiness would also be amazing.
Imagine running Spark where a hundred workers are allocated for 30 seconds. It makes it possible to build services like BigQuery.
Lambda seems designed for internal trusted use for offline or background data processing, not for writing a public API endpoint.
Lambda passes the data to another component on AWS to be processed.
The input sources for data range from APIs calls on Lambda, data from partners, data from legacy components, etc. So we split our data sourcing/fetching and data processing. They all flow into the same funnel (component) to be processed.
I'm a Technical Evangelist at Amazon Web Services.
Here are some videos from re:Invent 2015 on AWS Lambda : technology, use cases, customer stories. I hope you find them useful :)
I use Lambda for a lot of aws backup jobs that boto can do. For example
* RDS hourly snapshots* EBS daily snapshots* checking contents of s3 buckets
Works great for that type work for me as long as the job doesn't run for more then 300 seconds.
Anyone got a one or two line description of the sort of problems it would be good at solving?
There is no such thing as "inherent value" like taste, its all relative.
For example, $5 for a 1 litre bottle of water sounds expensive right? But if you're in the desert without any other water supply in range, its a bargain.
Twitter valued it because it convinced it's self it needed it. Its as simple as that, its the same logic that convinced HP to spunk out however much it was for autonomy, or News international for myspace.
Maybe they thought it was a good product, maybe they they knew the founders, maybe they talked a good game about facebook acquiring them. Either way it was valued that high not because it was a stunning product, but because twitter thought it needed that company and was prepared to spend 100million on it+.
+Yes that could be construed as cyclical login.
It's the same for individuals, some rich guy would pay millions of dollars for a piece of art while it's just a piece of crap for another rich guy.
For any pre-launch company, this would mean looking at the product, the team involved (as in acquihires), and the fit with the parent company.
Also, they were very shrewd with their sales process. I can't recall where I read it, but they made a private pitch where they got people from all the major players, so that must have given Twitter pause.
After all, Periscope allows anyone to have a live broadcast show - and perhaps, just perhaps, to become the pointless celebrities of their own lives.
I know people who are actively doing, or trying to follow someone else's periscope shows, and it took me a couple of months to realise just why the entire idea rubs me the wrong way.
These models are used to determine the probability of an account/customer/contagion risk group defaulting (aka PD) and the loss incurred, given a default (LGD).
The current models require a lot of historical data to train them, and need to incorporate economic cycle factors.
There are some vendors in this space, but their products are very dated, expensive and leave a lot to be desired. Also the products really provide a platform for an actuarial team to build upon, rather than having an out of the box solution (which is probably desirable in the banking space)
Obviously a standard would be nice but in practice I'm sure each institution would come up with their own or embrace and extend the standard. e.g. FIX with trading.
List of Unsolved Problems in Econ:
What happens when central bankers run out of ammo and realize monetary policy may not be an ideal path to fiscal stimulus? Or having the bright idea of devaluing your currency to depreciate your outstanding liabilities results in a mutually assured destruction scenario when every sovereign on earth implements the same idea simultaneously? And when "too-big-to-fail" entities amass derivative exposure that is 100X global GDP does it become time to panic yet?
But still its innovations like ZeroCoin and SmartContracts that give one hope that out of the rubble, creative solutions will arise. As long as they are grounded in economic reality and not fantasy, humanity will abide...
But pinning risk down "mathematically" is kind of tricky. There are several proxies for risk under modern portfolio theory, including variance, standard deviation, shortfall, half-normal variance. Why are there so many different measures? If analytical tractability was not a concern, what should risk models look like?
2. Multi-horizon portfolio optimization. Portfolios are typically optimized one time step (horizon) into the future. However, if one wishes to optimally allocate a portfolio with extremely long-term investment periods (think Berkshire), one needs to subdivide that period into multiple horizons and optimize over these together. This is computationally expensive - is there a way to do this efficiently?
I could consider cryptocurrency as the ultimate solution but online if everywhere its being used in equal importance and liquidity. For more traditional money, banks are squeezing fees & spreads out of regular people. Companies like TransferWise are trying to resolve some of these problems but still they rely on the existing banking system to move the funds around.
So there you go - open problem!
A good start would be a readable and round-trippable format that Excel documents can be saved as
There is no consistent mathematical standard of measurement by which money is created. Instead, the monetary value of some good or service used as capital for a loan is largely up to the arbitrary appraisal of the bank.
In fact, I suspect there's a Superpac somewhere that would fund research showing the net effect it might have. Or some organization that would want to know what that does to algorithmic trading.
I'm guessing though, the likelihood of a bill like that making it all the way is pretty low.
Personally, I cringe when I hear talking heads correlating then Fibonacci number with the stock market.
And I've come to realize, if Jim Crammer recommends a stock, don't buy it. I would like to know which professional out there has the best track record in stock speculation. It seems like something that we could accurately study, and publish the data?
I don't have the money to speculate in the stock market. It just seems like it's as bad as gambling at this point in history. It interests me though. If I had money it would go to realestate speculation. I'm so wrong on my stock picks, I've though about contrarian investing. Supposedly, there are such people?
The selfmade millionaires under 40 are statistical outliers ;)
(Not strictly "auto"biographies, but most of them have ghostwriters anyway)
"Virgin Rebel" (Richard Branson)"Return to the little Kingdom" (Steve Jobs)"Enter the Dragon" (Theo Paphitis)
(There are lots more, but they are in my bookshelf at home...)
George Orwell's Down and Out in Paris and London. He gives up his bourgeois lifestyle to live among the poor. I'm not sure he started anything at the end though. Besides himself, with a wider perspective of the world.
That out of the way, an area like that covered by StatusPage will cause you grief, at least with doing it at 'business scale'. People expect a status page to never go down and to be available even when The Worst occurs. It's not merely a software challenge but a huge operational and customer service one. Good luck though!
I want to offer a counterpoint to B, which is that a market with a clear leader is a market that isn't nearly as big as you think it is. The reason for this is that peeling customers off an incumbent is a lot more difficult than it seems at first. The temptation is to tell yourself, "This is a success if I get even a little bit of the market." That may be true for a market that's wide open, or that doesn't have a clear market leader. But if there is one, then your market size is really more like 20% of the addressable market, and your little slice of success has to be a lot larger than you think it is. And if its a good market, you've probably got a LOT of competitors thinking the same thing, and you're fighting it out over the slice of the market you can actually get to. I've experienced this in the event registration space, where a few companies like EventBrite dominate, and 300 other ticket companies fight it out for the 10% of the market that's actually up for grabs. Your marketing costs skyrocket, the customer acquisition costs are dramatically increased, and you're looking at a long slog to get to profitability.
All of that said, this doesn't mean don't do it. I'm a big fan of niche products, and being able to do the technical side means you've got an advantage over some potential competition who have to hire or contract out that part. But be aware that business success in a venture like this is harder than it may seem at first.
I think that no matter what your idea is, it always has some other competitor already establish in that industry. Think of it this way: we have car, Toyota, Honda, Ford,...Lots of car company. We have beer, bunch of beer. So I don't see why we shouldn't build a product even it's already has a clear leader. Why do Gitlab build their product when Github BitBucket is so big...
At the end of the day, business is all about finding client. All you have to do it build a product, good enough, find some client, and go from there. You can even pivot your product to something completely different. You may gain more experience, knowledge deal with the system which may leads to other production.
You gotta start something first. The purpose is to have a sense of what is going on. No matter how good a product is, I always see someone complains about some aspect of it. That means it has room to improve, it has another way to do it, to make it better and sell to those people.
So, yes. Go ahead. Build it. And let it know when you launch it.
That said, the risky thing about this in particular is infrastructure products like StatusPage and PagerDuty and Runscope have to work all the time, every time.
If your site is down and PagerDuty doesn't alert you - you're an ex customer. If Runscope gets bogged down and you miss out on metrics for 10-20 minutes, and your clients start leaving - you're an ex customer. If StatusPage goes down in the middle of your outage, you're an ex customer.
And in all those situations, you're going to make noise on your way out (twitter, medium, whatever).
This is incredibly difficult for a solo, bootstrapped operation to achieve. It costs real money and takes real expertise to get that level of performance and availability out of your infrastructure (not to mention what you need to do in the application). This stuff is completely orthogonal to, say, writing the app itself. You can be an amazing Rails/Django/whatever developer and totally mess up your infrastructure - it's super easy to do so.
On the other hand, being a generic SaaS operation charging reasonable fees - no one has expectations of 100% availability, and if people can't access your invoicing app or recruiting backend or whatever for 20-30 minutes in the middle of the night - no one is going to complain.
What are your goals? To build some income? To learn AWS, PHP, etc? It sounds like you've got a couple of different goals here.
A few years ago I saw a keynote at a game development conference talking about how on the app store most developers copy successful games. The presenter (David Whatley) called it mining for gold where others have already turned up every nugget possible (paraphrased because it's been a while...).
I think that's a good way to look at this as well. As a user of statuspage.io I can tell you that they leave a lot to be desired + their pricing isn't attractive. They have however a pretty robust and compelling solution.
Can you do something that will make me leave statuspage.io (after spending hours customizing my page) and _need_ to move over to your service? If so the answer is GO FOR IT and don't look back. I have a feeling the answer is no, and that's why you're unsure, at which point I'd start looking for other problems to solve.
Peter Thiel makes a good argument in his book Zero to One that every company needs to be designed to be a monopoly. While I disagree with some of that (competition is healthy), as a founder I know the importance of your differentiator being leaps ahead and not just an update away.
P.S. - The reason we pay for statuspage.io is because we don't have to build (and maintain) the whole management system and don't want to worry about it. For any legit company it's worth it.
Unless you wanted to try your luck in the social network space, because there's no way anyone could achieve anything against the clear leader MySpace.
So, if you can find sufficient differentiators (or the market is big enough), I'd say yes. Otherwise no.
- start with a product that solves one or two pain points of the incumbent tool.
- compete on price in the beginning and as you add value, raise prices for new users.
- you can do things that don't scale early on like offer great support. Your big customers have the founders phone number. That sort of thing.
- find some shelf space you can own by targeting seo in chosen, winnable verticals. It's hard to do successful sem when you're small. You don't even have enough traffic to split test easily. Acquiring free traffic sources is necessary.
- remember, saas is a ramp up. 10% month over month growth gets pretty big before too long.
Breaking that "first paying customers" barrier is difficult. Don't get discouraged when you show your project and no one pays attention, because that's what's going to happen and that's when you will really have to work hard for your dreams.
Programming is easy. Keeping your morale high is extremely difficult.
I think you've made up your mind but are just looking for a bump on the right direction. Go do it! You know you want to try. At worst, you learned some new stuff.
Then yes, absolutely!
Even if you were driven by revenue opportunity, it can still be worth starting a SaaS in a niche with a clear leader as long as you can clearly beat them in a few ways (ie. undercutting price, better UI / UX, etc).
So if this is a $5M potential market, probably there is a clear winner. If this is a $100M potential market, things are just starting.
You go to a flower market - there are tens of different vendors selling similar quality, similar product at the same price and at the same closed space. And they are doing fine.
Or look at a traditional marketplace - you have tens of farmers selling very similar product. And yet they are coming together to sell their fruits and vegetables. True, maybe there are different dynamics there, there are more buyers than vegetable stands and if the line is longer than 5 people you move to another stand.
But I believe the same works with software and Internet Businesses. It does not harm anyone if there are different tools doing similar things. Look at digital cameras - there are hundreds of them and there is a market for each.
A great example is Coca Cola and Pepsi. Pepsi was created because it was understood that with the market saturated with one product there would obviously be people who would buy Pepsi just because it's not Coca Cola.
Competition is a very sound and healthy environment to work at because you can perfect your product and narrow down your target audience. As @petercooper said: because you see that there already is a business that thrives, you save yourself a lot of trouble testing if anybody wants to buy such a product.
Now marketing is the key.
Ask yourself not whether there is a leader in the market, but whether that industry is in flux and whether the buyers in the industry are apt to seek and adopt something new.
If you don't get the sense that things are fluid in your target market, then I'd recommend staying away. In some markets people just don't like change.
IMO it's not about whether there is a leader, or whether it's an untapped market, it's all about how the market reacts to new things.
Look for reactions to other products in the same market on social media. Was there excitement? apathy? Why? Consider this a preview of the kind of reactions you're going to get. If you don't like it stay away.
Choose an existing market/app and go after it, but only if you bring a 10x differentiator.
> I would love to learn, I'd class it as a success if it paid for its own hosting and made me more than say $100 a month
I think you know the answer you're looking for. Go for it.
Speaking of unknown players in this space, check out the wonderfully minimalistic updown.io. It's much cheaper than SP and really is quite good.
Here's our dashboard: https://updown.io/szug
2) Whatever niche you initially pick - please make the effort to do some basic customer discovery. Call some folks up who are directly experiencing the problem you are trying to solve. Even talking to 20 people will give you a lot more to go on. People are much more willing to talk if you aren't selling them anything.
Just make sure to have definite goals to make sure you are making progress along the way. If you miss goals continuously, maybe you should readjust your goals, maybe the niche is too difficult to break into, or maybe you need a different approach to marketing & getting traction - learning the "art" of finding out what it is will in itself be an invaluable experience.
If you can "niche", absolutely. A market leader cannot be serving everyone's needs precisely.
Note that "better" does not necessarily mean "better product". It could mean better marketing, better sales force, all of the above, or "other".
I suggest that you read The Discipline of Market Leaders, Marketing Warfare, and Differentiate or Die, and give serious thought to those ideas.
Are there niches in the statuspage space? I doubt it.
A lot of engineer types don't understand the sales cycle and how to design their sales funnel to capture curious visitors and cultivate them into paying customers.
Before launching a SAAS, look at whether you have a plan on attracting your "ideal customer" at a rate that makes economic sense to start your business venture.
However my advice would be to find something truly uniquely different to your business, not just incrementally better or just incrementally different.
There's definitely a lot of sites that don't use anything like statuspage.io, go out and convince them it'll help.
Talk to people who you think would be your customers. Good ol' fashioned market research.
If you can't sell it, build it anyway - but don't quit your job :)
Depending on how big they are you might not be able to beat them, but that doesn't mean you still can't be successful.
For example, t-shirts were invented forever ago. Plenty of people start t-shirt companies and make money doing it. Hanes sells WAY more t-shirts than you will. It doesn't matter.
An established market is a better place to play than a totally new thing. You can be a very small operator and still make a very good living for yourself.
Think about Basecamp as another example. Microsoft Project owned project management. Basecamp came into the same market with a different angle and made a business out of it.
Traditional wisdom says stay away from existing big fish. I would say swim right next to them or in their wake. There are always little subniches and different ways you can sell the same basic solution in a different way.
Another way to look at it is software is a bit of fashion. People get tired of the same thing. So, sometimes they go buy a new thing that might have one feature they care about that the old thing didn't.
Most huge products you know about, use, and love started in niches that had established leader. This is true for iPhone, iPod, Mac, MacBook, Chromebook, Github, Facebook, Google, Twitter, MySql, Firefox, Chrome, Android, BlackBerry, Galaxy S, Xbox, Playstation, GoPro, and on and on and on and on and on.
Do yourself a favor, make a pitch page, have a beta sign up form, and start finding people to sign up for your beta. It doesn't even have to be a built product yet. It can be unfinished.
The only thing you need to have a business is customers that pay you money. You figure that out and it doesn't matter what niche you are in.
If there are automated tools, they should run on the entire asset directory and dump to a new directory in whatever hierarchy makes sense to the tool. When that turns out to be slow, check "file modified" timestamps in the tool instead of dumping required knowledge on the artist.
Getting artists to actually use source code control instead of having personal folders full of things like rock01_retouched_new_final_final.3ds is a bit of a pipedream, but you can at least put the asset directory under source control and make that the only way to see things in the engine.
3-4-dd-rhand-07 - episode 3, scene 4, dirty dog, right hand, from keyframe #7
(there were naming conventions for background elements too but they were somewhat looser IIRC)
We had a cheat sheet for this with standard abbreviations for all the recurring characters, and a list of body part names. Everyone had a copy stuck to the wall or floating around their desk. I think that was an important part of what made it work. Don't expect new hires to pick it up by looking at the results of the naming scheme; codify it into a document you hand to them as part of orientation.
(We also accessed a lot of this stuff visually; the file handed to an animator would have all of the keyframe drawings in each scene laid out in sequence, with the raw art separated out into individual parts and turned into named symbols right there on the working canvas.)
All of this was something we hashed out over time; early stuff had a horrible mishmash of naming schemes. I'd advocate having a discussion about Organization as soon as possible, agreeing on a standard and sticking with it for new assets. Get the old stuff reorganized when you have a chance, maybe throw that task to an intern if you have one.
Code Game UI Gameplay GFX Physics Editor ThirdParty SourceAssets Levels Fire Ice Swamp Volcano Sewer Characters Player Models playerInital.fbx playerAwesome.fbx playerGodlike.fbx Animations Materials Merchant Thug ThugFat ThugTall Objects Urban Indoor Outdoor UI Menus Boot Main Options Icons ProcessedAssets Pak1 (UI stuff) Pak2 (Level 1 stuff)
But yeah, Perforce version control is pretty important. It's almost designed to help manage assets, especially large ones. And it's free for under 20 users, I think.
Beyond that, you might want to include the level, screen, and/or date for the assets in your naming structure. Pretty much every company, and sometimes every project, uses a different structure, though.
For the latter, most large games use an asset management system. Either homebrew, or something like Alienbrain. (Well, people used Alienbrain when I left. Not sure what's hip these days)
For in-game, there's usually a fairly strict organizational scheme. It depends on the game, but usually folders are about "location" - which map, which part of the world, which episode, etc. Asset names indicate a name, and various other bits like left/right hand hold, color, or whatever matters for that asset.
It's usually the lead artists job to come up with said scheme, unless you have a tech lead for the asset pipeline.
If you look for assets, you do a search in the asset management system, which also contains the in-game name and location.
For smaller games, you make do by manually organizing, but as things grow, you'll start hand-rolling tools.
An asset browser allowed you to perform queries (e.g. show me all the characters from level X which reference materials which reference texture Y). We had tags/labels, comments, everything you could want.
When you do it like this your folder organization becomes irrelevant. You can store everything in a single directory with a GUID for a filename if you want. Or store all textures in one place and all 3d models in another. The down side is it's quite opaque, everything must be done within your toolset, so you need great tool support.
Like daodedickinson recommends; you want to look at how AAA game designers design their systems, then imitate them. Your best avenue to figuring out how games are designed is by understanding how game modding is carried out in AAA games. In many games, almost all of the content and mechanics within the game are defined using the same scripting interface that mods are created through.
I recommend using games like Skyrim, Morrowind, Mount and Blade, and The Witcher (i forgot which one shipped with all the game's scripts in the install folder, might have been 2).
Being able to mine as much metadata from a file name and path is a plus. As is having a logical naming convention that can be queried from the string programmatically. Not to mention fast lookup and asset name generation merely from string concatenation...
This is a good problem to have, mfcecilia! You are on the path to making great games. Its stuff like this that gives you the confidence to say my solution is just as good as anyone else's and I am just going to do it and learn from my mistakes. Time pressure is actually your best ally. If you want your game to be playable by the end of the decade you will solve this challenge and level up to the next big one. Such as figuring out how to organize your assets in a single compressible pak that is laid out to support fast and efficient patching via binary diffs!
Good luck! And if you are still stuck check out the Unity and Unreal engine docs and forums for further tips on pipeline production. And of course, post a link when you build a playable alpha ;)
I wouldn't be so sure...
The most important thing, from the technical standpoint, is that your asset pipeline is robust and can handle weird things. The engine shouldn't consume files haphazardly, it should deal with "built" assets, where you can trace things from the in-game content back to the source file. A configuration layer usually appears to give an in-engine ID to a loaded asset, because files and assets do not map 1-to-1. You can choose to fight the organization battle in that layer, rather than in the file system. When you have a slick IDE like Unity, this is all built into the GUI, but a custom engine can just use a batch process to do the same.
Version control is useful - not a DVCS, because it doesn't scale to binary assets, but SVN or Perforce. Artists will groan about waiting around for the VCS to resolve things and the inevitable problems with locking, renaming, and deleting stuff, but their lives will be better off overall if it's in their workflow loop. It's "10 hours waiting on SVN Updates" vs "30 hours debugging project history".
Here's an article on "import" vs "export" based pipelines, where the thing being "imported" to the engine is a common, standardized format that every tool can export - rather than one proprietary tool the team happens to use:
Also most of what you see in the final game output is packaged and minified to a high degree in order to improve performance/memory/etc.
Usually the lead tech artist just sets a standard and everyone conforms to that standard. Art assets(.psd, .ma, etc) are usually stored in a separate section than in-game assets.
The desired result is that related names are convenient grouped together in an alphabetical sort.
A rule of thumb is: the most important part is at the beginning, and most specific part is at the end.
But what is convenient, important or specific is context sensitive and debatable, since there are many ways to name the same thing in different kinds of hierarchies.
Sometimes it's ambiguous what's most important, like when you're classifying things along two or more dimensions, like x y and time.
Should it be (MouseXCurrent, MouseXLast, MouseYCurrent, MouseYLast) or (MouseCurrentX, MouseCurrentY, MouseLastX, MouseLastY)?
In that case I'd put the most tightly bound dimension last (x and y, which are usually used together as a 2d vector, so keep them adjacent).
For example, you can use MPQ Explorer to look inside the package files of World of Warcraft, and see how they organise their tens of thousands of assets.
Generally, as others have said, it's by "where" rather than "what", or sometimes "what"/"where".
Beyond that - Perforce is the usual asset control system for these things. It offers the ability to tag files, which makes searching easier. When you're dealing with a huge pile of art, searching is basically the only way to go, so good tagging is very important.
(Source: I'm not a game designer, but I've worked with the complete art libraries of multiple triple-A games over the last two decades creating Machinima films, either working directly with the studio or on a modding basis. I know far more about the internal file structure of WoW, for example, than is probably healthy.)
Quake's pak0.pak: https://quakewiki.org/wiki/pak0.pak
Quake 3 Arena's pak0.pk3: http://openarena.wikia.com/wiki/Pak0.pk3
The Scheme hacker Shiro Kawai has, as one of his claims to fame, having written an asset management system for Squaresoft (now Square Enix) -- not for any of their games but for the movie Final Fantasy: The Spirits Within.
But from games which do have somewhat logical structures, it's usually that the files are seperated by purpose. So the music and sound effects in one folder, the textures in another, some level files in another folder, etc. And the names would be somewhat descriptive of the content, like 'course_desert_1.lvl' If you're lucky, this is also backed up in a git repository somewhere and has version control.
There is nothing particularly special about game development. Yes, there is an emphasis on real-time operation that changes the specific design of applications. But there is no reason to believe that should have any impact on project management.
//depot/main/game - all your code + exported (but not yet converted) data lives there. You can give this to QA, Build manager, scripter, coder and they can build a level, compile the game, tools, etc. if needs so. By exported here is what I mean: - Exported textures, models, sound, etc data ready to be further on converted to platform specific formats. The original data was kept in //depot/source
Keep several department oriented //depot/source p4 views. Each specific department would get mapped this in their view, others would not.
//depot/source/sound - For example big huge 24-bit sound files + whatever other extras ProTools or other software writes. Suitable for sound folks to keep their project settings, experiments, settings, but not suitable for everyone else to see.
//depot/source/textures - Your big ass huge PSD, or whatever else source files - containing all layers that you've built your textures, or whatever else a texture/material department might see fit (there might be more than one - character, environment, etc. departments with different organizations). Not suitable for the main team, great for whoever works on textures.
//depot/source/animations - For example big huge FBX MotionBuilder or something else files. Suitable for animation people to edit, but not suitable for the game tools to read them and convert them every time.//depot/source/models - etc. - your big ass again .3DS, .MA/.MB, even .FBX files. Great for modelers, not great for everyone.
You might even have external people working for you, you don't put their stuff directly with your stuff (legal maters, payment, review process, etc.)
You also don't want them to have access to everything you do, and you need to establish way to review their assets and how to communicate work - what needs to be done, requirments, etc.
So a typical game developer would only need
some studios would even submit back converted data, for example:
others prefer to convert while building. For example all huge ass PSD files with lots of layers were probably exported as .TIFF, .PNG, even .JPG for insanely big backdrops, and from then on these would get converted to swizzled optimized textures - for example on all iPhone/iPads you get PowerVR chip, and it has PVRTC texture compression, unlike ETC, DXT for PC.
It all depends also on your team.
So a WiiU only programmer, might just sync
# Not ideal locations, but something that might work:
First of all: a good company will let you choose your own tools, whatever you feel the most productive with.
So why Apple? The hardware is nice but i think the key here is the operating system. It gives you a painless UNIX experience out of the box, without the Desktop Linux quirks (driver incompatibilities, multimedia issues etc.).
What are you using right now? Windows? The majority of "modern" software development seems to happen on UNIX-based systems (see: https://news.ycombinator.com/item?id=3786674), so Windows is often treated as a second class citizen. It misses many essential command line utilities and in general simply does not encourage a command line workflow. Setting up a decent Node/Ruby/Python/whatever environment can be a real pain on Windows. I'm not saying it's impossible, just very painful. So unless you are working exclusively with Microsoft technology, Windows seems to becoming worse every year in regards to software development.
By the way this is coming from someone who has used a Debian/Windows dual boot setup for many years and switched to a MacBook just two years ago.
This is the first laptop that I've touched and felt, "this is quality hardware". The touch gestures on the trackpad are so natural feeling that I swipe to change desktops rather than use keyboard shortcuts that I had set up. There is much irrational developer happiness at my workstation. ;) Sit down and play with one for a day, and you might be sold (I was).
You can drive two 4k monitors (at 30 hz, not 60) with it, too, which nets you three screens. That lets me have code/terminals on the monitors, and a browser or Slack instance open on the Mac. Code editors and dev tools are often native for the Mac (aside from Docker, which has some decent support but not perfect).
It doesn't hurt that its screen is gorgeous. I spent a year with dual 4k monitors, and this thing looks even better.
Is it worth it? Oh gosh yes!! Like a hundred times yes!
My development productivity has been measurably an order of magnitude greater after getting the laptop. Just the simple act of opening the laptop and getting to work in a couple of seconds with the machine running at full speed is such a blessing. My experience with windows and even Linux (on laptops), has been that there's a slightly long delay in waiting for everything to come alive. Reopening apps would cause slight bits of sluggishness. And overall the performance degraded with each screen close and open cycle (this last bit mostly applies to windows)
And the battery life is nuts! Having my MBP has meant that I can pack it up and take it to the car wash place and hack from there since I know the battery is going to last more than 2 hours effortlessly (it actually does 6+ when doing just dev work on a slightly dimmed screen).
If someone ever made a linux laptop with this kind of quality and no hardware issues, I'd switch in a heartbeat. But that laptop doesn't exist yet (from my experience), so hands down, for development, if you can afford it, buy the macbook! Zero regrets guaranteed :)
I'm not sure if this applies everywhere but if you don't use a Mac you are mostly seen as a cheap developer.
I have encounter Windows laptop (you bet even a Lenovo Yoga 3 screw is defective itself, loose screw) faulty too many times due to defective parts. It's why Macbook are well built the most and although it doesn't have any tools to control power management that Windows have, intensive running programs e.g. video processing or may overheat Macbook to 105'C but it's still working fine if you read SSD could still lasted a few more years depending on the temperatures.
Get Intel Power Gadget which is certainly useful to monitor the temperature and such.
I am surprised at how many developers I see at meetups with Apple as opposed to x86 + Linux, and I am an oddball running Windows!
Just make sure you are not on Windows. For example I am on windows and have failed to start using Tensorflow because its developers (Google guys) claim the build system they use (Guava) does not support windows.
Basically because Apple laptops are better.
Firstly... and I do not mean this to sound like hurt pride, but... a discipline would need to be quite trivial to be understood by cursorily surveying a few online texts. There's a corpus of several centuries of findings, derivations, and unresolved controversies precisely _because_ it is nontrivial. (Side note: the existence of controversies that divide different schools of thought does not mean that everything is in question and that absolutely anything goes because, hey, we can always argue with words by distancing ourselves from observable reality that makes for religion not science, albeit even the dismal kind.)
Second: the general idea is that there exists a dynamic, complex system constituted of agents (people, sometimes aggregated into firms and/or nations, being almost always simultaneously consumers of something in need of everything except that which they are suppliers of, be it labour, materials, knowledge, time in the form of lending money, whatever) each doing their best to maximise the enjoyment (utility) of what they have by interacting in a series of markets, which for the sake of analysis we generally are forced to assume are in equilibrium (i.e. We're at the end of history where no external bumps or surprises are leaking into the market and nudging it in any direction) but in truth we know to be in perpetual disequilibrium as information percolates in, surprises happen, and generally guesstimates of everybody involved are shown to right at best on average. An equilibrium price comes to exist where supply and demand cross and we spend many a happy hour calculating that and then trying to figure out how a shocked system returns to equilibrium if we jolt it.
Thirdly: money is (surprisingly enough, for the public which seems to conflate economics and accounting) not necessarily the domain of economics. As a whole the discipline deals with incentives (most usefully and generically regarded as differences in subjective utility) and responses thereto (utility maximising strategies). Money is at best something that serves as a denominator to give everything a common unit and, at worst, an irksome distortion. This is one of those school of thought controversies I mentioned above: there are monetarists within the domain of economics and there is the separate domain of finance, somewhere between accounting and economics, and to which risk (uncertain future outcomes) is an essential ingredient and governmental fiscal policy (taxation and public spending)... that's yet another thing.
For the sake of reading I suggest (no offence intended) Managerial Economics For Dummies, The Origin Of Wealth (Eric Beinhocker), and The Social Atom (Mark Buchanan).
P.S. On mobile so I've had to edit this a few times... sorry if you caught me in flux but it's great to have a chance to mention stuff that amuses me once in a while.
2. Pragmatic answer: prime numbers are generally coprime with the modulus, and so they're an easy answer, and so RSA public exponents tend to be prime.
3. Best-practice answer: just use 65537, in all cases. The other popular answer is 3, which is mathematically fine, but leaves less room for implementation error; there are some implementation flaws for which attacks are untenable with e=65537.
4. Long-term answer: don't use RSA. RSA is well on its way to obsolescence. Most problems you'd ever want to solve with RSA are better solved with Curve25519 (for DH) and Ed25519 (for signing). Not coincidentally, these are the algorithms implemented by Nacl, the only crypto library you should consider using.
5. Scolding answer: if you have to ask, please don't try to implement any of this yourself. It is very difficult to get RSA right.
Curious to hear if others have had success with other methods or if anyone else has tried going back to a non-smartphone.
What I learned in one of my courses where we talked about addictions, is that people with addictive personalities tend to replace one addiction with another. Now, saying this doesn't present it as a positive thing, but it can be.
I started by completely taking these socials medias out of my life for a whole entire month, strictly. I didn't get on a single time to any of them once. And I replaced the addictions with something else. At first I thought maybe games would be good, but it was hard to get on my phone without going to these sites. So what I did is I replaced them with reading. I would take 2 minutes to read a couple pages, read on my ten minute breaks, read on my lunches, etc.
You don't have to do that, although I recommend it, but I would try to replace it with something that didn't have access to it, and then you'll have more control over it.
$ cat /etc/hosts|grep face127.0.0.1facebook.com127.0.0.1www.facebook.com
I'm really only addicted to HN these days, but I solve it by not going to HN at all when I need to be in Get Shit Done mode. After a day or two I don't find myself thinking about it that much.
I also put my laptop in a bag once in a while, padlock the bag, then put my phone and padlock key in my ksafe (http://www.thekitchensafe.com/). Offline heaven.
Come to think of it maybe I should delete Tweetbot from my phone for a while. It feels about time.
Coming at it from the other end, I find that the "Pomodoro Technique"  of timeboxing works pretty well to keep me on task, when I go through the whole ceremony of picking up the cute ladybug-shaped kitchen timer I've modified by painting out anything beyond 25min, giving it a twist, and having that kinesthetic memory plus the soft ticking reminding me that I have A Thing I Have Promised Myself I Will Work On For This Block Of Time.
I haven't been doing that much lately either. I should start doing it again.
I like this question. I'll see what other better answers come out out of it.
1 - No social media apps on my phone that might be tempting to check during the work day
2 - No social media logins on my work laptop of a distinctly personal nature
3 - Only checking social media when getting home and after a few minutes it's just tiring to wade through stuff and it makes it a lot easier to close it up and not be conditioned to think those outlets are worth the consistent attention
 This doesn't count Periscope which I use for promotional purposes or might come in handy in a pinch for sharing (but I don't open during work or watch many other streams)
 Social media doesn't include some forums, I'm strictly speaking FB/Twitter/etc. Forums are a different beast. Thankfully I tend to get tired of some which enable me to avoid them, or if I return, I've deleted my account and just read.
If I really feel the urge to read non-work stuff then I have my phone, which costs money, has a useless keyboard and a diminutive screen. If I am making a cup of tea then there is plenty of time there to see if anyone has sent me email etc.
Regarding work email, I do not read a lot of it and I expect my colleagues to know that I don't read emails. I do read important ones but social events and other work emails that are non-critical I just move to the 'almost read' folder. Generally my email is just used for test purposes, lots of systems cc me in on things so real emails are hard to find amongst the reports etc.
I do have problems with 'slack' at the moment, some people are a little evangelical about it and I just find it to be lots of noise. I wish 'slack' would go and that I could return to the lame 'Skype' as that did work well for my needs.
I don't really manage it. I just let it flow, I don't feel guilty. That's the first step.
I also disable browser & desktop notifications. It's fine to see a highlighted tab or a number in the systray.
My mobile is always on vibration. Social apps are muted. All of them. I wear a Fitbit wristband synced by Bluetooth for phone calls notifications.
I use Serializer as main input of news. I check it between tasks, scanning the titles and sending the articles to Pocket (important!).
I let myself check anything at any moment. When I feel "the urge" I just ask myself "should I check something?". Take a few seconds to answer that and I usually keep going on my task and check later. If not, it just happened. No big worry.
I also keep myself away from Twitter & Facebook using Buffer to plan my publications. I use Goofy or Pidgin to connect to Facebook chat.
Finally, I use Evernote with a keyboard shortcut to open my "brain dump" note. Here I jot down quick ideas that come across my mind while I'm doing a task. You can use anything else but Evernote is useful even walking. You can write down in your mobile and sync it later at home/office.
Keeps me addicted to the right things :).
When you think about it, it is not human, you have far more things to do than being distract by these little sounds. Most of the applications makes possible to set precisely when you want to be notified or not. Don't worry, even with notifications, you will still be distracted by your kids, cat, neighbors, flying birds and dust.
I don't think the browser extensions are a solution to this. You have to learn to control it by yourself.
I really recommend it.
I think a bit part of it for me, was finding another site that interested me enough to not have me thinking "man, I wonder what <enter in lame fb user> is saying.
Hope this helps :)
It used to take so much energy for me to start working. But on Modafinil I switch to emacs and start hacking.
I bet I'm going through a honeymoon period, but I'd say I've learned more about programming this week than in any (any!) month of my life. I feel really focused.
Many use it to avoid sleep. I don't; I get eight hours of sleep a night. I'm trying to avoid crashing, burning out, dependency et cetera by using Modafinil like an antidepressant, not a five hour energy.
- Newsfeed Eradicator. Keeps me from consuming FB. I can still post, lookup the groups I'm in, lookup specific people, use FB Messenger etc. But it's no longer a black hole.
- StayFocusd in Chrome to block Reddit/Twitter/FB/HN from 8am to 2pm. By afternoon, either I'm engrossed in my work and don't need to worry about distractions or my brain is mush and no more work is getting done today. Most crucial time is when I first get to the office. Can still use Firefox if necessary, but this eliminates the mindless CMD+T.
Sometimes I'll do an /etc/hosts block and shift that site I'm over visiting to another device. Makes me realize I'm using it too much. Once that moment hits I unblock when I feel I'm ready for it on my laptop again.
I don't have a problem with most of these. Facebook can demand a lot of attention though. I learned others expect what you give. So I don't give much, others are fine with that and Facebook isn't a problem.
My Mac at home is the entertainment computer. It has all the problem stuff on it, potential problem stuff too. When I have time, I can hop onto that computer and enjoy. No worries.
Take 20 minutes one day and block all those on facebook that you really don't care to follow or post too much stuff. You don't need to 'Unfriend' them, just 'unfollow' them. This way you only see the stuff you care about and will inevitably spend less time on Facebook. This can be applied to twitter/snapchat etc.
For example, if we always check emails just to see how many new-emails we have got, so that we can act on them asap, Its a good case as its going to improve our productivity and time-to-respond lower.
Another example, if we always check fb to see what other people's activities are. Well, we can turn this around and make us the person who is doing lots of personal activities (outside of internet domain) and posting it to facebook (may be weekly), or restrict it to closer pals/family.
Personally, if we interact more with Nature around us, it feels great.
Restrict the use of these "virtual" worlds and try to participate more with the world around us. Instead of posting a message on facebook, may be call your best friends and say hi. Its million times better than seeing 1 like for the post in the virtual world.
There is value for me in having a FB account. There are some people that I only communicate with through the service, and I'm part of some groups that do all their event organization through FB. Deleting my account, for me, was both undesirable and impractical. But I sure as hell wanted to break my addiction.
I started using a simple habit tracker on Android call Rewire to track my progress in breaking this habit. After a few false starts, "don't break the chain of success" became more motivating than I originally thought it would be.
I also ramped up the severity of my FB diet instead of going cold turkey right off the bat. This was roughly my progression:
1. Delete the phone app. There's not a great way around this. I still use Messenger, and for the first time I find myself really glad that the services are separated.
2. I started logging in and out of the service in a browser. When I finally tore myself away from the newsfeed, I'd sign out. When I was tempted to go back, having to sign in again was a usability barrier, but also a reminder to myself of what I was trying to accomplish. Sometimes it was enough to help me resist actually logging in.
3. No mobile FB. I did my best not to log in through a mobile browser. I still allowed myself to browse on a laptop or desktop.
4. No more FB. I configured my email settings to get notifications about very specific things and then looked at my news feed on a desktop browser for what would hopefully be the last time. My personal rule: if I get an email about something that was directed particularly to me, whether it's somebody posting on my page or somebody tagging me in a comment, I will log in through a desktop browser, address that event, and immediately log out. No looking at the newsfeed, no browsing to friends' pages. I also unsubscribed from all the promo emails FB started sending me when it detected that I was inactive.
I hope this helps! Breaking my FB addiction was tough, but very rewarding. I don't miss my newsfeed full of political vitriol and worthless clickbait. I've had more rewarding conversations with friends I care about through other means. I don't miss being part of "the conversation." So, A++, would recommend, but be realistic and gentle with yourself as you progress.
I really suggest reading Deep Work by Cal Newport.
For my phone - I deleted all of my social apps (apart from Instagram, Swarm etc) and keep it in another room or in my bag as much as possible.
When you no longer feel a need to use it, then it is safe to use it. This has been the best cure for addictions for me in the past, but YMMV.
Like the OP, I'm using StayFocusd and I've used RescueTime in the past, and it's actually been very helpful for me. Right now I've given up Facebook and I'm tackling Reddit next. I don't have a solution for my phone, but it hasn't been a problem for me because I leave it charging across the room when I'm working. It's still difficult for me during evenings, but I'll probably try something similar for that soon.
Like to what extent their software is used in planning drone strikes and other military operations. And what, exactly, Palantir knows about the number of civilians killed and maimed in these operations. Let alone how any of the engineers working there, behind their hoodies and their high-end headphones -- perhaps reading this very thread right now, as we speak -- personally feel about this situation.
At least one of the non-clone ones mentions a strong Palantir internal push to pad GD with positive reviews.
The company itself is essentially an elite technology consulting firm (albeit one that is actually technically competent). They have a set of core generic products (they have a finance analysis product, government analysis product, some other ones). BWStearn's description is accurate (a tool for analyzing entities and their relationships). But the key to their success is they take that generic product and then dispatch teams of engineers to customize each deployment for each client (hence consulting). Often clients will hire them because the client has engineering talent and has to hire Palantir because of that.
From what I've noticed the culture does learn fratty, but I didn't find it uncomfortably fratty. However, the people there work hard and they work long hours.
I have no experience of their software, but the people I know who work there are very smart. Some of the best developers I've ever known. OTOH, many of the other best developers I've known refuse to work there on principle.
For me, the important distinction has become: Is my interest in X as a professional or as a hobbyist? Treating X as a hobby takes the pressure off...and lets me make sense of why the overhead of something like Android development creates enough friction that it doesn't feel sustainable. YMMV.
Here's an example of the effect it creates: https://www.youtube.com/watch?v=8GfKBvs53Ss
When users click through and buy something, you'd get a percentage of the sale. It could also be a lot more beneficial to users than just showing banner ads.
If you combine it with actually providing a benefit (i.e. a diamond block linking to the wiki page on diamond blocks), your users might very much appreciate the functionality.
Minecraft hosting affiliate program. Bonus if they have a recurring cost per sale model
If that's so, making sure you are very mobile-friendly and looking at app-install ad networks might be better than adsense.
verification codes don't have to be long. 4-7 numbers with limited amount of retry is plenty.
Online version here  is not evaluatable and is rendered to images, but otherwise it's the same content as the desktop version. Specific example .
 http://reference.wolfram.com/language/ http://reference.wolfram.com/language/ref/Histogram.html
It's a comprehensive, yet not too dense, set of documentation for getting people up to speed on how to do things with FreeBSD. You may not find a better one even today.
It is useful not just for using ZeroMQ, but about learning about distributed systems in general.
I also like Stripe documentation
It's a recently written tech interview for a startup named Baatna. Good read!
Deep learning is a hot topic right now and if you have any aptitude in that direction you will get hired very quickly.
1. Figure out who the primary person or type of person they will be selling to. e.g. are they selling to C level execs or engineers?
2. Are you selling enterprise software that requires a lot of hand holding? Or are you selling simple deals?
3. What is your deal flow like, do you have solid leads but need closers, or do you need lead generators?
I mention these because I would recruit different types of people depending on the answers to at least these. In general too, if someone makes you feel uncomfortable when you are talking to them rather on the phone or in person, your customers will also feel uncomfortable. I don't care how good their resume is, if you have any feeling of uneasy or being uncomfortable then you don't hire. You are hiring a people person who's job it is to make people feel at ease and open their wallets, they should be able to make you comfortable and interact with you.
I always make them sell me their last software or product. And then I make them flip the script and sell me the competitor to their prior product. This helps me see if they see all sides of the products they are selling and how well researched they are. Then I will give them my product/software pitch and then tell them to sell me on it. They should be able to put a good effort to sell you your software without having a huge background in it, even if it is complex. I also ask them to tell me the holes they see where competitors could attack my product offering.
If you want more ideas, you can shoot me an email or respond here with more details and I'll give you at least my experience and some more specific ideas.
Also lead generating sales staff is different then closers. You can of course get someone that can do both, but it is a hard job to do both efficiently for a growing business.
Internally: Is there anyone that's been in tech long enough to get the feeling they want to do 'business' more than development? Get them coached by the above.
Two people is enough to be a great sales team, for a company anywhere from 20-2000 people, as long as they understand each other and the product.
Be worried about a sales person who brings quick deals, especially if in locations or fields you're unfamiliar with. Could be very likely they have a 'friend on the inside' of deals they've brokered, but these deals are mainly contracts of understanding and are yet to have revenue attached.
Go back to LinkedIn and start using the advanced search feature. Keyword in on individuals you see with promising sales profiles.
Build a list of 10-30 people, in your space. Reach out to these people 1:1, you must have a live conversation with them (in-person preferably) network with them, make a friend, seek their advice, share what you are working on and ask for a referral!
That is where you will find your sales people. You won't find them with a job board post. They must be hunted & wooed. Done right this process will take several weeks and require dozens of conversations.
It's exhausting, and deeply satisfying once you've pulsed the market and know you've found the right people.
In other settings it was apparent to me that 1/3 to 1/2 the sales force was a net negative for the company. The problem is getting those people cycled out to make way to try another person. And, here is another thing it often takes 6 months to even a year to figure out who is good and who needs to be let go.
Your best options are:
* Hire sales reps who come with a personal reference from someone whose opinion you value.
* Find a recruiter who specializes in hiring sales reps and be prepared to pay up to 25% of the sales rep's total compensation as recruiting fee.
But for the love of God, do not hire sales reps without having an experienced sales manager on your recruiting team. Most people cannot judge a good sales rep from an interview. But a good sales manager can ask the difficult questions and help you make the right choice. As anyone will tell you, building sales teams is neither easy nor cheap.
I could you refer you his way if you are interested.
Haven't tried it personally but the founders are very clever.
That said: since you were in fintech you may well be aware of this, but programmers at financial firms don't exactly have the same status or workplace conditions as programmers in software driven companies. If you don't know exactly what I mean, shake your network and find someone in the industry to have a frank discussion with.
What you want to do is become a better software engineer, the title & money will come by itself.