Skip to main content

Home/ Arquitectura?/ Group items tagged coding

Rss Feed Group items tagged

Pablo Lalloni

reactive-web - 0 views

  •  
    Reactive-web is a new framework for writing highly interactive and dynamic web applications. It's written in Scala , sits on top of Lift, and uses the Functional Reactive Programming library reactive-core (it's in the same repository). As in GWT, you can code the user interface in the same language as the rest of your application (except in Scala instead of Java), rather than writing JavaScript. Unlike GWT, however, you don't need an extra build step to convert your code to JavaScript. You can easily combine code that runs on the browser with code that runs on the server. And, you can declare dynamic relationships between components, like binding in Flex/JavaFX/etc. (only much more powerful).
Pablo Lalloni

Slick 2.0.0 - 0 views

  •  
    "These are the major new features added since Slick 1.0.1: A code generator that reverse-engineers the database schema and generates all code required for working with Slick. New driver architecture to allow support for non-SQL, non-JDBC databases. Table definitions in the Lifted Embedding use a new syntax which is slightly more verbose but also more robust and logical, avoiding several pitfalls from earlier versions. Table definitions (and their * projections) are not restricted to flat tuples of columns anymore. They can use any type that would be valid as the return type of a Query. The old projection concatenation methods ~ and ~: are still supported but not imported by default. In addition to Scala tuples, Slick supports its own HList abstraction for records of arbitrary size. You can also add support for your own record types with only a few lines of code. All record types can be used everywhere (including table definitions and mapped projections) and they can be mixed and nested arbitrarily. Soft inserts are now the default, i.e. AutoInc columns are automatically skipped when inserting with +=, ++=, insert and insertAll. This means that you no longer need separate projections (without the primary key) for inserts. There are separate methods forceInsert and forceInsertAll in JdbcProfile for the old behavior. A new model for pre-compiled queries replaces the old QueryTemplate abstraction. Any query (both, actual collection-valued Query objects and scalar queries) or function from Column types to such a query can now be lifted into a Compiled wrapper. Lifted functions can be applied (without having to recompile the query), and you can use both monadic composition of Compiled values or just get the underlying query and use that for further composition. Pre-compiled queries can now be used for update and delete operations in addition to querying. threadLocalSession has been renamed to dynamicSession and the corresponding methods have distinct names (e.g. w
Pablo Lalloni

GravityLabs/HPaste - 0 views

  •  
    "HPaste unlocks the rich functionality of HBase for a Scala audience. In so doing, it attempts to achieve the following goals: Provide a strong, clear syntax for querying and filtration Perform as fast as possible while maintaining idiomatic Scala client code -- the abstractions should not show up in a profiler! Re-articulate HBase's data structures rather than force it into an ORM-style atmosphere. A rich set of base classes for writing MapReduce jobs in hadoop against HBase tables. Provide a maximum amount of code re-use between general Hbase client usage, and operation from within a MapReduce job. Use Scala's type system to its advantage--the compiler should verify the integrity of the schema. Be a verbose DSL--minimize boilerplate code, but be human readable!"
Pablo Lalloni

Microservices and PaaS - Part I | ActiveState - 0 views

  • Instead of building software that resembles our existing organizations, we should figure out how we want our software to look, then build the organization around that. Or reorganize it if it's already in place.
    • Pablo Lalloni
       
      Las implicancias de esta idea en nuestra organización...
  • When deploying a new feature, enhancing or fixing an existing capability, or deploying an experimental line of code, the previous code remains available and accessible. New code is deployed alongside the old code, with mechanisms in place to instantly route to one or another version.
  • Importantly, the old code is not replaced, but remains part of the system, and is kept running. If, as is often the case, the widespread introduction of the new feature results in unforeseen consequences, the feature flag can be toggled off, and the old version is instantly used instead.
  • ...13 more annotations...
  • In a microservices architecture, an application is comprised of a number of small, independent composable services that interact by way of an external published protocol, such as REST, or a messaging service.
  • Each service is focused on an individual targeted business capability, and thus its scope is minimized. For functionality out of scope, the microservice calls out to other microservices via the published protocol.
  • Small independent microservices can be built using the technology best suited for their requirements. No longer does every application component need to be built on a common company-mandated language and framework such as Java/Spring or Ruby on Rails.
  • Similarly, there's no reason to standardize on a single persistence layer across an entire application. Some microservices might best be served by Redis, others by Oracle.
  • Each microservice can be updated independently, no longer requiring the entire application to be redeployed.
  • Microservices drastically improve the time required to push out a new update, allowing a much more agile development process.
  • Many organizations consist of specialized silo teams (UI, database, API, etc) where costly handoffs and intercommunication are required to coordinate all the pieces of application construction. These handoffs cause overhead, and the need for them should be eliminated.
  • With small teams, each focused on an individual microservice, Netflix enables developers to push code to production, instead of getting mired in a complex deployment process involving several teams.
  • With microservices, the old IT mindset just doesn't work.
  • A centralized IT department cannot possibly cover the wide array of technologies spanning all microservices.
  • Instead a DevOps structure, where each team is responsible for the management of the corresponding microservice, is essential.
  • Enable developers to concoct systems of their choosing with minimal or no interaction from IT, management, VPs, hardware or other groups. "Self Service" is one of the major capabilities offered by the cloud and there's every reason to take advantage of this.
  • Now, IT can be considered as a cloud API available to the developer on-demand 24x7, instead of a complex, process-mired division hidden behind obscure process.
Sebastián Zaffarano

Cloudreach Dev Blog: Asynchronous Code Reviews as an Efficient Way of Ensuring Code Qua... - 3 views

  •  
    Interesante para probar de ponerlo en práctica y ver qué resulta, ¿no?
  •  
    En github funciona muy muy bien el mecanismo, lo vengo usando bastante. El análisis, comprensión y diálogo que se genera a partir de los pull requests (y los reviews implícitos que esto produce, sumado a que la herramienta es muy muy buena, permitiendo cosas como poder poner comentarios y responderlos directamente en las lineas de código) son sumamente beneficiosos, ágiles y los resultados son muy buenos. Nosotros, localmente, venimos trabajando de manera similar a lo que se propone (y se acostumbra en github), tenemos branches por temas y se hace review y refactoring de las mismas antes de mergear al tronco de avance. Obviamente en este caso se extrañan MUCHO las herramientas de comunicación que provee github y que NO tenemos localmente.
Pablo Lalloni

twitter/algebird - 0 views

  •  
    "Abstract algebra for Scala. This code is targeted at building aggregation systems (via Scalding or Storm). It was originally developed as part of Scalding's Matrix API, where Matrices had values which are elements of Monoids, Groups, or Rings. Subsequently, it was clear that the code had broader application within Scalding and on other projects within Twitter."
Pablo Lalloni

Enterprise Git Repository Management | Atlassian - 1 views

  •  
    "On-premises source code management for Git that's secure, fast, and enterprise grade. Create and manage repositories, set up fine-grained permissions, and collaborate on code - all with the flexibility of your servers."
Pablo Lalloni

Buck: An Android (and Java!) build tool - 1 views

  •  
    "Buck is a build system for Android that encourages the creation of small, reusable modules consisting of code and resources. Because Android applications are predominantly written in Java, Buck also functions as a Java build system. Learn more about the strategies Buck uses to build Java code so quickly."
glarriera

Visual Studio Code - 1 views

  •  
    "Build and debug modern web and cloud applications. Code is free and available on your favorite platform - Linux, Mac OSX, and Windows."
Pablo Lalloni

Introduction - Terraform - 2 views

  •  
    "Terraform is a tool for building, changing, and versioning infrastructure safely and efficiently. Terraform can manage existing and popular service providers as well as custom in-house solutions. Configuration files describe to Terraform the components needed to run a single application or your entire datacenter. Terraform generates an execution plan describing what it will do to reach the desired state, and then executes it to build the described infrastructure. As the configuration changes, Terraform is able to determine what changed and create incremental execution plans which can be applied. The infrastructure Terraform can manage includes low-level components such as compute instances, storage, and networking, as well as high-level components such as DNS entries, SaaS features, etc. The key features of Terraform are: Infrastructure as Code: Infrastructure is described using a high-level configuration syntax. This allows a blueprint of your datacenter to be versioned and treated as you would any other code. Additionally, infrastructure can be shared and re-used. Execution Plans: Terraform has a "planning" step where it generates an execution plan. The execution plan shows what Terraform will do when you call apply. This lets you avoid any surprises when Terraform manipulates infrastructure. Resource Graph: Terraform builds a graph of all your resources, and parallelizes the creation and modification of any non-dependent resources. Because of this, Terraform builds infrastructure as efficiently as possible, and operators get insight into dependencies in their infrastructure. Change Automation: Complex changesets can be applied to your infrastructure with minimal human interaction. With the previously mentioned execution plan and resource graph, you know exactly what Terraform will change and in what order, avoiding many possible human errors."
Pablo Lalloni

Athens - 0 views

  •  
    "Athens provides a server for Go Modules that you can run. It serves public code and your private code for you, so you don't have to pull directly from a version control system (VCS) like GitHub or GitLab."
Pablo Lalloni

365Git | Writing Git commit messages - 0 views

  • The use of the imperative, present tense is one that takes a little getting used to. When I started mentioning it, it was met with resistance. Usually along the lines of “The commit message records what I have done”. But, Git is a distributed version control system where there are potentially many places to get changes from. Rather than writing messages that say what you’ve done; consider these messages as the instructions for what applying the commit will do. Rather than having a commit with the title:Renamed the iVars and removed the common prefix. Have one like this:Rename the iVars to remove the common prefix. Which tells someone what applying the commit will do, rather than what you did. Also, if you look at your repository history you will see that the Git generated messages are written in this tense as well - “Merge” not “Merged”, “Rebase” not “Rebased” so writing in the same tense keeps things consistent. It feels strange at first but it does make sense (testimonials available upon application) and eventually becomes natural.
    • Pablo Lalloni
       
      Motivos para usar imperativo presente en comentarios git.
Pablo Lalloni

[#AS7-3719] Grails app load with Jboss 7 - JBoss Issue Tracker - 0 views

    • Pablo Lalloni
       
      Aparentemente en los comments de mas abajo hay una solución propuesta por Graeme Rocher para deployar correctamente aplicaciones Grails en JB7+
    • Pablo Lalloni
       
      Marqué el comentario relevante con amarillo.
  • Hide Permalink Graeme Rocher added a comment - 19/Mar/12 12:52 PM Building the Grails war with: grails -Dgrails.project.war.osgi.headers=false war Will remove the OSGi headers from the WAR file which is what is confusing JBoss 7. The above can also be configured in BuildConfig.groovy
Pablo Lalloni

Rosetta Code · twitter/scalding Wiki - 0 views

  •  
    A collection of MapReduce tasks translated (from Pig, Hive, MapReduce streaming, etc.) into Scalding for comparison.
Pablo Lalloni

Typed ask for Akka | Java Code Geeks - 0 views

  •  
    Idea interesante para implementar usos del patrón "ask" (request-reply) con mayor seguridad de tipos.
Pablo Lalloni

lihaoyi/scalatags · GitHub - 0 views

  •  
    "ScalaTags is a small XML/HTML construction library for Scala. The core functionality of Scalatags is less than 200 lines of code, and yet it provides all the functionality of large frameworks like Python's Jinja2 or C#'s Razor. It does this by leveraging the functionality of the Scala language to do almost everything. A lot of different language constructs can be used to help keep your templates concise and DRY, and why re-invent them all yourself when you have someone else who has done it before you."
1 - 20 of 101 Next › Last »
Showing 20 items per page