ThreatGRID/Cisco Looking for Clojure Developers (again)
[ Full disclosure: I am the technical lead on this product and the hiring manager in this case. Feel free to contact me with questions, and to pass this gist around: https://gist.github.com/AlexBaranosky/7cb700d032d26946e9587a599f5aa80c ] Clojure Developer for Malware Analysis Product The ThreatGRID team at Cisco is looking for experienced clojure developers to work on our large scale, malware analysis product. Our entire platform is built on Clojure, from the the API services, around the event processing subsystem, and down to the core.logic analysis engine. Our system runs as a distributed cluster in the cloud, and shrunk down to a single on-premises appliance. This keeps us focused on simple solutions, clear abstractions between services, composition of services, functional data processing, and minimal state. We are analyzing 300k+ malware files a day, and will be scaling to millions a day as we integrate more with the Cisco product line. We need experienced hands in executing this scaling task. Our team is distributed across the U.S. and works from home with occasional office visits and travel -- this requires excellent written communications, self-confidence, trust in your co-workers, and assuming ownership of the problems you encounter. We work with these technologies: * Clojure, core.logic, riemann * ElasticSearch * PostgreSQL * Redis We are looking for experience in some of the following problem domains: * Web Services Scaling -- Ok, but what happens if 2 million devices ask that question? * Cloud Deployment -- A herd of containers, a society of JVMs. Multiple data centers. * DevOps -- Developers and Operators working together to reduce mean-time to discovery and remediation. * System Monitoring and Alerting -- Kiries is Kibana, Riemann and Elasticsearch * Data Modeling -- Applied JSON epistemology in a world of hostile actors * Micro-Services Architecture -- Towards NetFlix OSS, but in a Clojure way. * Continuous Integration/Deployment -- Keep it green, push the button to deploy We offer: * An endless supply of interesting problems, and people to solve them with * Work in one of the fastest growing product lines in Cisco * Competitive salary and benefits to support a stable, high-quality life outside of work * Decades of collective experience with Clojure and Common Lisp * Support in developing your skills and talents, we love to help each other grow * Work from home, or a Cisco office, as you please. # CONTACT Email - j...@threatgrid.com -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Prgram uses a lot of swap
I've had great luck with the G1 garbage collector when running lots of JVMs on a single (linux) box. It's different from the default by actually freeing memory back to the OS on a full collection, this would result in lower total memory use thus lower swapping when multiple JVMs are running. The JVM command line parameter is as follows: -XX:+UseG1GC When using lein, it needs to be in the project profile and additionally the LEIN_JVM_OPTS environment variable to cover both JVMs lein spins up (trampoline notwithstanding). On Mon, Feb 27, 2017 at 12:35 PM Thomas Heller wrote: > What is the best way to determine the right value for this? I remember > that in the past I had a lot of little Java > > programs running and got a much better performance by limiting memory > usage. > > > > That is not an easy question to answer. If you make it too small your > process may crash with OutOfMemory errors, if you give it just enough it > will constantly be running running garbage collections making your program > slower. So "just right" is very dependent on your program and also on what > else is happening on the machine running it. You can use tools like > JVisualVM or Java Mission Control to better understand your system but that > takes a lot of time and effort. > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Prgram uses a lot of swap
> > What is the best way to determine the right value for this? I remember > that in the past I had a lot of little Java > > programs running and got a much better performance by limiting memory > usage. > That is not an easy question to answer. If you make it too small your process may crash with OutOfMemory errors, if you give it just enough it will constantly be running running garbage collections making your program slower. So "just right" is very dependent on your program and also on what else is happening on the machine running it. You can use tools like JVisualVM or Java Mission Control to better understand your system but that takes a lot of time and effort. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Prgram uses a lot of swap
2017-02-26 21:06 GMT+01:00 Thomas Heller : > Ideally you would run your program without lein, probably as an uberjar. > Going to look at that in the near future. > But if you insist on lein you can do "lein trampoline run -m your.main/fn" > which will allow the lein process to exit after setting up your program > leaving you with only one JVM. > Have this working now. > To control the memory you can add :jvm-opts ["-Xmx512m"] to your > project.clj. It will set the max memory of the JVM to 512mb which should be > enough for your program. > What is the best way to determine the right value for this? I remember that in the past I had a lot of little Java programs running and got a much better performance by limiting memory usage. -- Cecil Westerhof -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Prgram uses a lot of swap
2017-02-27 14:37 GMT+01:00 Thomas Heller : > Last thing I can come up with is your environment variables or something > in your ~/.lein/* folder. Beyond that I'm out of ideas. > That was the problem. In .lein I had profiles.clj, which contained: { :repl { :dependencies [ ^:displace [org.clojure/clojure "LATEST"] ] } :user { :jvm-opts ^:replace ["-Xmx4096M"] :plugins [[lein-ancient "0.6.10"]] } } I removed the :jvm-opts and problem solved. Because it was in .lein it was not found with the grep. And in the project.clj I removed the ^:replace. By the way why is the value of profiles.clj taken instead of project.clj? I would expect that the profiles.clj value only would be used when there is no value in project.clj. -- Cecil Westerhof -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Prgram uses a lot of swap
Last thing I can come up with is your environment variables or something in your ~/.lein/* folder. Beyond that I'm out of ideas. On Monday, February 27, 2017 at 2:15:18 PM UTC+1, Cecil Westerhof wrote: > > 2017-02-27 13:57 GMT+01:00 Cecil Westerhof >: > >> Maybe you have some other conflicting configuration somewhere that sets >>> it explicitly to 4G? Usually no maximum is set and the JVM will >>> automatically adjust it based on your system. >>> >> >> Not that I know of, but I will try to find it out. >> > > In the Clojure directory I gave: > grep -r -- '-Xmx' * > > And this only gave: > data.int-map/project.clj: :jvm-opts ^:replace ["-server" "-Xmx1g"] > Quotes/project.clj: :jvm-opts ^:replace ["-Xmx512m"] > > > So I would say it is not set. (But in a way it is.) > > -- > Cecil Westerhof > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Prgram uses a lot of swap
2017-02-27 13:57 GMT+01:00 Cecil Westerhof : > Maybe you have some other conflicting configuration somewhere that sets it >> explicitly to 4G? Usually no maximum is set and the JVM will automatically >> adjust it based on your system. >> > > Not that I know of, but I will try to find it out. > In the Clojure directory I gave: grep -r -- '-Xmx' * And this only gave: data.int-map/project.clj: :jvm-opts ^:replace ["-server" "-Xmx1g"] Quotes/project.clj: :jvm-opts ^:replace ["-Xmx512m"] So I would say it is not set. (But in a way it is.) -- Cecil Westerhof -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Prgram uses a lot of swap
2017-02-27 7:59 GMT+01:00 Thomas Heller : > Maybe you are running an old version of leiningen? > Yes, I installed it a long time ago. It was 2.6.1. I updated it to 2.7.1 > This might work although JVM_OPTS works fine for me as well > > :jvm-opts ^:replace ["-Xmx512m"] > My project.clj: (defproject quotes "0.0.1" :description "Initial quotes application" :url "http://example.com/FIXME"; :dependencies [[org.clojure/clojure"1.8.0"] [clj-time "0.12.0"] [com.h2database/h2 "1.3.176"] [instaparse "1.4.2"] [org.clojure/math.numeric-tower "0.0.4"] [seesaw "1.4.5"] [yesql "0.5.3"]] :main quotes.core :jvm-opts ^:replace ["-Xmx512m"] ) (I also tried without ^:replace.) But I keep having: -Xmx4096M. Is there something wrong with my project.clj? Maybe you have some other conflicting configuration somewhere that sets it > explicitly to 4G? Usually no maximum is set and the JVM will automatically > adjust it based on your system. > Not that I know of, but I will try to find it out. > On Sunday, February 26, 2017 at 10:14:22 PM UTC+1, Cecil Westerhof wrote: >> >> 2017-02-26 21:59 GMT+01:00 Cecil Westerhof : >> >>> To control the memory you can add :jvm-opts ["-Xmx512m"] to your project.clj. It will set the max memory of the JVM to 512mb which should be enough for your program. >>> >>> Did not work either, but at the moment I use: >>> export JVM_OPTS=-Xmx512m >>> >>> For the moment that does the trick. >>> >> >> No it does not. :'-( When looking to the commandline parameters I see: >> -Xmx512m-Xmx4096M >> >> I need to invest some time. >> > -- Cecil Westerhof -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.
Re: Raynes' legacy
Hi Matthew, On Monday, February 27, 2017 at 5:11:19 AM UTC+1, Matthew Boston wrote: > > I'm happy to hear that others are willing to step up to the plate in > regards to continuing Anthony's legacy. > > I started a thread specifically about tentacles a month ago here: > https://groups.google.com/forum/#!searchin/clojure/tentacles%7Csort:relevance/clojure/15x_LWE2IMM/CGULJTXLBQAJ > Ah yes, I remember it, I had merely forgotten it was about tentacles :) > We, at CircleCI, have built our entire business around the use of > tentacles, so seeing this library succeed is paramount to our success. > Right now, we're on an older version of tentacles and we're currently > working to upgrade to the latest so we can begin to maintain a fork; or at > the very least, help others in maintaining a "de facto fork". > This is for an open source project I will be starting work on soon, not something business critical, but on the bright side, it'll be "up to date" when I start. Personally I'd be quite happy to see CircleCI take over maint of tentacles. You have a trusted name and reputation and you have a good incentive to keep improving the code. We will still offer to take whatever of Raynes' modules people haven't started maintaining de facto forks of. Cheers, James On Saturday, February 25, 2017 at 12:09:02 AM UTC-7, James Laver wrote: > > I'm pleased we've dealt with a new maintainer for a couple of Raynes' > modules, but Raynes contributed a lot of things and half the community > depends on one or more of his modules at this point. > > My current focus is tentacles, which has been gathering issues and PRs > recently and is something I'm about to use in a project. If no-one else > steps forward, we at the irresponsible clojure guild ( > https://github.com/irresponsible ) will take on the maintenance for it, > but we don't want to end up causing multiple forks. > > I think it would be awesome if *somebody* would step up and take care of > Raynes' remaining modules. Aside from being his legacy, they're really > useful and too many of rely on them. Irresponsible is a community-run > organisation (currently just three of us). If more people were willing to > pitch in with reviewing PRs and issues and such, we would be happy to > assume responsibility for releases. In effect, we're happy to keep Raynes' > work alive rather than bitrotting. But we can't do all of that alone, it's > just too much work (something other contributors have noted). We are happy > to give them a home and push releases, but there are simply too many of > them to take up proper maintenance without more volunteers > > So, with that: > > 1. Does this seem like a good idea? > 2. Can you help with reviewing the backlog on Raynes' modules? > 3. Is this going to be enough to prevent multiple forks of everything? > > Cheers, > James > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.